top of page
5.14. Wait for Control Box Digital Input
/**
@brief Wait for control box digital input
@param [in] id IO number, range [0~15]
@param [in] status 0-off, 1-on
@param [in] max_time Maximum wait time, unit ms
@param [in] opt Strategy after timeout, 0-stop program and prompt timeout, 1-ignore timeout and continue, 2-wait indefinitely
@return Error code
*/
errno_t WaitDI(int id, uint8_t status, int max_time, int opt);
5.15. Wait for Control Box Multi-Channel Digital Input
/**
@brief Wait for control box multi-channel digital input
@param [in] mode 0-multi AND, 1-multi OR
@param [in] id IO number, bit0~bit7 correspond to DI0~DI7, bit8~bit15 correspond to CI0~CI7
@param [in] status 0-off, 1-on
@param [in] max_time Maximum wait time, unit ms
@param [in] opt Strategy after timeout, 0-stop program and prompt timeout, 1-ignore timeout and continue, 2-wait indefinitely
@return Error code
*/
errno_t WaitMultiDI(int mode, int id, uint8_t status, int max_time, int opt);
5.16. Wait for Tool Digital Input
/**
@brief Wait for tool digital input
@param [in] id IO number, range [0~1]
@param [in] status 0-off, 1-on
@param [in] max_time Maximum wait time, unit ms
@param [in] opt Strategy after timeout, 0-stop program and prompt timeout, 1-ignore timeout and continue, 2-wait indefinitely
@return Error code
*/
errno_t WaitToolDI(int id, uint8_t status, int max_time, int opt);
5.17. Wait for Control Box Analog Input
/**
@brief Wait for control box analog input
@param [in] id IO number, range [0~1]
@param [in] sign 0-greater than, 1-less than
@param [in] value Input current or voltage percentage, range [0~100] corresponding to current [0~20mS] or voltage [0~10V]
@param [in] max_time Maximum wait time, unit ms
@param [in] opt Strategy after timeout, 0-stop program and prompt timeout, 1-ignore timeout and continue, 2-wait indefinitely
@return Error code
*/
errno_t WaitAI(int id, int sign, float value, int max_time, int opt);
5.18. Wait for Tool Analog Input
/**
@brief Wait for tool analog input
@param [in] id IO number, range [0]
@param [in] sign 0-greater than, 1-less than
@param [in] value Input current or voltage percentage, range [0~100] corresponding to current [0~20mS] or voltage [0~10V]
@param [in] max_time Maximum wait time, unit ms
@param [in] opt Strategy after timeout, 0-stop program and prompt timeout, 1-ignore timeout and continue, 2-wait indefinitely
@return Error code
*/
errno_t WaitToolAI(int id, int sign, float value, int max_time, int opt);
5.19. Code Example for Waiting for Control Box Digital and Analog Input Signals
Changed in version C++SDK-v2.1.2.0.
int TestWaitDIAI(void)
{
ROBOT_STATE_PKG pkg = {};
FRRobot robot;
robot.LoggerInit();
robot.SetLoggerLevel(1);
int rtn = robot.RPC("192.168.58.2");
if (rtn != 0)
{
return -1;
}
robot.SetReConnectParam(true, 30000, 500);
uint8_t status = 1;
uint8_t smooth = 0;
uint8_t block = 0;
uint8_t di = 0, tool_di = 0;
float ai = 0.0, tool_ai = 0.0;
float value = 0.0;
rtn = robot.WaitDI(0, 1, 1000, 1);
cout << "WaitDI over; rtn is: " << rtn << endl;
robot.WaitMultiDI(1, 3, 3, 1000, 1);
cout << "WaitDI over; rtn is: " << rtn << endl;
robot.WaitToolDI(1, 1, 1000, 1);
cout << "WaitDI over; rtn is: " << rtn << endl;
robot.WaitAI(0, 0, 50, 1000, 1);
cout << "WaitDI over; rtn is: " << rtn << endl;
robot.WaitToolAI(0, 0, 50, 1000, 1);
cout << "WaitDI over; rtn is: " << rtn << endl;
robot.CloseRPC();
return 0;
}
5.20. Set Whether to Reset Control Box DO Output After Stop/Pause
New in version C++SDK-v2.1.5.0.
/**
* @brief Set whether to reset control box DO output after stop/pause
* @param [in] resetFlag 0-do not reset; 1-reset
* @param [in] reloadFlag Whether to reload after pause recovery, 0-do not load; 1-load
* @return Error code
*/
errno_t SetOutputResetCtlBoxDO(int resetFlag, int reloadFlag = 0);
5.21. Set Whether to Reset Control Box AO Output After Stop/Pause
New in version C++SDK-v2.1.5.0.
/**
* @brief Set whether to reset control box AO output after stop/pause
* @param [in] resetFlag 0-do not reset; 1-reset
* @param [in] reloadFlag Whether to reload after pause recovery, 0-do not load; 1-load
* @return Error code
*/
errno_t SetOutputResetCtlBoxAO(int resetFlag, int reloadFlag = 0);
5.22. Set Whether to Reset End Tool DO Output After Stop/Pause
New in version C++SDK-v2.1.5.0.
/**
* @brief Set whether to reset end tool DO output after stop/pause
* @param [in] resetFlag 0-do not reset; 1-reset
* @param [in] reloadFlag Whether to reload after pause recovery, 0-do not load; 1-load
* @return Error code
*/
errno_t SetOutputResetAxleDO(int resetFlag, int reloadFlag = 0);
5.23. Set Whether to Reset End Tool AO Output After Stop/Pause
New in version C++SDK-v2.1.5.0.
/**
* @brief Set whether to reset end tool AO output after stop/pause
* @param [in] resetFlag 0-do not reset; 1-reset
* @param [in] reloadFlag Whether to reload after pause recovery, 0-do not load; 1-load
* @return Error code
*/
errno_t SetOutputResetAxleAO(int resetFlag, int reloadFlag = 0);
5.24. Set Whether to Reset Extension DO Output After Stop/Pause
New in version C++SDK-v2.1.5.0.
/**
* @brief Set whether to reset extension DO output after stop/pause
* @param [in] resetFlag 0-do not reset; 1-reset
* @param [in] reloadFlag Whether to reload after pause recovery, 0-do not load; 1-load
* @return Error code
*/
errno_t SetOutputResetExtDO(int resetFlag, int reloadFlag = 0);
5.25. Set Whether to Reset Extension AO Output After Stop/Pause
New in version C++SDK-v2.1.5.0.
/**
* @brief Set whether to reset extension AO output after stop/pause
* @param [in] resetFlag 0-do not reset; 1-reset
* @param [in] reloadFlag Whether to reload after pause recovery, 0-do not load; 1-load
* @return Error code
*/
errno_t SetOutputResetExtAO(int resetFlag, int reloadFlag = 0);
5.26. Set Whether to Reset SmartTool Output After Stop/Pause
New in version C++SDK-v2.1.5.0.
/**
* @brief Set whether to reset SmartTool output after stop/pause
* @param [in] resetFlag 0-do not reset; 1-reset
* @param [in] reloadFlag Whether to reload after pause recovery, 0-do not load; 1-load
* @return Error code
*/
errno_t SetOutputResetSmartToolDO(int resetFlag, int reloadFlag = 0);
5.27. Example Code for Setting LUA Program Output Reset After Stop/Pause
New in version C++SDK-v2.1.5.0.
int TestDOReset(void)
{
ROBOT_STATE_PKG pkg = {};
FRRobot robot;
robot.LoggerInit();
robot.SetLoggerLevel(3);
int rtn = robot.RPC("192.168.58.2");
if (rtn != 0)
{
return -1;
}
robot.SetReConnectParam(true, 30000, 500);
for (int i = 0; i < 16; i++)
{
robot.SetDO(i, 1, 0, 0);
robot.Sleep(200);
}
int resetFlag = 0;
int resumeReloadFlag = 0;
rtn = robot.SetOutputResetCtlBoxDO(resetFlag, resumeReloadFlag);
robot.SetOutputResetCtlBoxAO(resetFlag, resumeReloadFlag);
robot.SetOutputResetAxleDO(resetFlag, resumeReloadFlag);
robot.SetOutputResetAxleAO(resetFlag, resumeReloadFlag);
robot.SetOutputResetExtDO(resetFlag, resumeReloadFlag);
robot.SetOutputResetExtAO(resetFlag, resumeReloadFlag);
robot.SetOutputResetSmartToolDO(resetFlag, resumeReloadFlag);
robot.ProgramLoad("/fruser/test.lua");
robot.ProgramRun();
robot.Sleep(2000);
robot.PauseMotion();
robot.Sleep(2000);
robot.ResumeMotion();
robot.Sleep(2000);
robot.CloseRPC();
return 0;
}bottom of page