For information on the latest version, please have a look at GL013301.
TOnMonitoringAccessControlCB
This is a callback function that monitors control authority (access control) changes in the robot controller. It is triggered when a control right event occurs, such as request, permission, or rejection of control ownership.
As this function is executed automatically by the controller, you should avoid writing code that takes longer than 50 msec to execute.
Defined in: DRFL.h
// typedef (DRFL.h)
typedef void (*TOnMonitoringAccessControlCB)(const MONITORING_ACCESS_CONTROL);
// internal definition
DRFL_API void _SetOnMonitoringAccessControl(LPROBOTCONTROL pCtrl, TOnMonitoringAccessControlCB pCallbackFunc);
// user-callable API
void SetOnMonitoringAccessControl(TOnMonitoringAccessControlCB pCallbackFunc)
{
_SetOnMonitoringAccessControl(_rbtCtrl, pCallbackFunc);
};
Parameter
Parameter Name |
Data Type |
Default Value |
Description |
|---|---|---|---|
eAccCtrl |
Represents the access control event state (e.g., REQUEST, PERMISSION, REJECTION). |
Return
None
Example
#include "DRFL.h"
#include <iostream>
using namespace DRAFramework;
using namespace std;
// Callback executed on access control event
void OnMonitoringAccessControlCB(const MONITORING_ACCESS_CONTROL eAccCtrl)
{
cout << "[ACCESS CONTROL EVENT]" << endl;
switch (eAccCtrl)
{
case MONITORING_ACCESS_CONTROL_REQUEST:
cout << "Received control transfer request." << endl;
// Example: reject control transfer request
drfl.manage_access_control(MANAGE_ACCESS_CONTROL_RESPONSE_NO);
break;
case MONITORING_ACCESS_CONTROL_RESPONSE_YES:
cout << "Control transfer has been permitted." << endl;
break;
case MONITORING_ACCESS_CONTROL_RESPONSE_NO:
cout << "Control transfer has been rejected." << endl;
break;
default:
cout << "Unknown access control state (" << (int)eAccCtrl << ")" << endl;
break;
}
}
int main()
{
CDRFL drfl;
// Connect to robot controller
if (!drfl.open_connection("192.168.137.100")) {
cout << "Failed to connect to controller." << endl;
return -1;
}
// Register callback for access control events
drfl.SetOnMonitoringAccessControl(OnMonitoringAccessControlCB);
// Keep monitoring
while (true)
std::this_thread::sleep_for(std::chrono::seconds(1));
drfl.close_connection();
return 0;
}
Notes
This callback is triggered by the robot controller when:
- Another device or user requests control transfer.
- The controller grants or denies control authority.The parameter MONITORING_ACCESS_CONTROL indicates the event type.
Common use cases:
- Automatically rejecting external control requests.
- Logging or alerting operators about control state changes.
- Handling cooperative robot operation environments.Callback code should execute within 50 ms to prevent blocking the controller.