TOnMonitoringAnalogWeldingDataCB

This callback function is used to monitor analog welding signals (e.g., current/voltage analog feedback) from the robot controller during welding operations. It is called automatically on each update.

The registration function set_on_monitoring_analog_welding_data is declared only when DRCF_VERSION is set to 2, for example with -DDRCF_VERSION=2. See DRCF Version Compatibility.

See Rules for callback functions.

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 <thread>
#include <chrono>
#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;

    // Current/Voltage analog readings
    cout << "Current(A): " << pAnalogWeld->_fActualCur << " | "
         << "Voltage(V): " << pAnalogWeld->_fActualVol << 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.

  • Each callback receives the most recent data. If the callback takes longer than the data period (100 ms before DRCF 3.5, 20 ms from DRCF 3.5), intermediate samples are not delivered. Do not rely on receiving every sample (for example for integration or differentiation).