You're reading the documentation for an older, but still supported version (GL013300).
For information on the latest version, please have a look at GL013301.

TOnMonitoringAnalogWeldingDataCB

This is a callback function for monitoring analog welding signals (e.g., current/voltage analog feedback) from the robot controller during welding operations. Because it is invoked automatically on each update, avoid heavy work in the handler and keep execution within 50 msec.

Defined in: DRFLEx.h

// typedef (DRFLEx.h)
typedef void (*TOnMonitoringAnalogWeldingDataCB)(const LPMONITORING_ALALOG_WELDING);

// registration API (internal + wrapper)
DRFL_API void _set_on_monitoring_analog_welding_data(LPROBOTCONTROL pCtrl,
                                                     TOnMonitoringAnalogWeldingDataCB pCallbackFunc);
void set_on_monitoring_analog_welding_data(TOnMonitoringAnalogWeldingDataCB pCallbackFunc)
{
    _set_on_monitoring_analog_welding_data(_rbtCtrl, pCallbackFunc);
};

Parameter

Parameter Name

Data Type

Default Value

Description

pAnalogWeld

MONITORING_ALALOG_WELDING

Pointer to structure holding analog welding feedback (e.g., current/voltage channels, status).

Return
None

Example

#include "DRFLEx.h"
#include <iostream>
#include <iomanip>
using namespace DRAFramework;
using namespace std;

// Analog welding feedback callback (DRCF v2)
void OnMonitoringAnalogWeldingDataCB(const LPMONITORING_ALALOG_WELDING pAnalogWeld)
{
    if (!pAnalogWeld) return;

    cout << fixed << setprecision(2);
    cout << "[WELD-ANALOG] updated" << endl;

    // Example access (field names may vary by firmware; adjust to your struct definition)
    // Current/Voltage analog readings
    cout << "Current(A): " << pAnalogWeld->_fCurrent << " | "
         << "Voltage(V): " << pAnalogWeld->_fVoltage << endl;

    // If multiple channels exist, print a few as an example
    // for (int ch = 0; ch < pAnalogWeld->_iNumChannels; ++ch)
    //     cout << "CH" << ch << ": " << pAnalogWeld->_fChannel[ch] << endl;
}

int main()
{
#if DRCF_VERSION == 2
    CDRFLEx drfl;

    if (!drfl.open_connection("192.168.137.100")) {
        cout << "Failed to connect to controller." << endl;
        return -1;
    }

    // Register analog welding monitoring callback
    drfl.set_on_monitoring_analog_welding_data(OnMonitoringAnalogWeldingDataCB);

    // Keep running to receive updates
    while (true) std::this_thread::sleep_for(std::chrono::milliseconds(100));

    drfl.close_connection();
#else
    cout << "TOnMonitoringAnalogWeldingDataCB requires DRCF_VERSION == 2." << endl;
#endif
    return 0;
}

Notes

  • Use for quality monitoring, traceability logging, or adaptive control based on analog welding feedback.

  • Keep handler code lightweight (no blocking I/O, minimal console prints) to maintain controller responsiveness.