For information on the latest version, please have a look at 1.33.5.
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 |
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).