.. _cb_tonmonitoringanalogweldingdatacb: 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 :ref:`DRCF Version Compatibility `. See :ref:`Rules for callback functions `. **Defined in:** ``DRFLEx.h`` .. code-block:: cpp // 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** .. list-table:: :header-rows: 1 :widths: 20 25 15 40 * - Parameter Name - Data Type - Default Value - Description * - pAnalogWeld - :ref:`MONITORING_ALALOG_WELDING ` - - - Pointer to structure holding analog welding feedback (e.g., current/voltage channels, status). **Return** |br| None **Example** .. code-block:: cpp #include "DRFLEx.h" #include #include #include #include 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).