extern void eom_emsappl_hid_userdef_on_exit_RUN(EOMtheEMSappl* p) { // EOtheCANservice: set straigth mode and force parsing of all packets in the RX queues. eo_canserv_SetMode(eo_canserv_GetHandle(), eocanserv_mode_straight); eo_canserv_ParseAll(eo_canserv_GetHandle()); // stop services // motion-control eo_motioncontrol_Stop(eo_motioncontrol_GetHandle()); eo_motioncontrol_Deactivate(eo_motioncontrol_GetHandle()); // stop tx activity of services that may have been started by callback function // strain... no strain in here // eo_strain_Stop(eo_strain_GetHandle()); // eo_strain_Deactivate(eo_strain_GetHandle()); // skin eo_skin_Stop(eo_skin_GetHandle()); eo_skin_Deactivate(eo_skin_GetHandle()); // mais eo_mais_Stop(eo_mais_GetHandle()); eo_mais_Deactivate(eo_mais_GetHandle()); // inertials eo_inertials2_Stop(eo_inertials2_GetHandle()); eo_inertials2_Deactivate(eo_inertials2_GetHandle()); }
extern void eom_emsappl_hid_userdef_on_exit_RUN(EOMtheEMSappl* p) { eOresult_t res = eores_NOK_generic; // set run mode straigth. then read all can frames received eo_canserv_SetMode(eo_canserv_GetHandle(), eocanserv_mode_straight); const uint8_t maxframes2read = 255; // 255 is the max number possible. the function however exits when all canframes are eo_canserv_Parse(eo_canserv_GetHandle(), eOcanport1, maxframes2read, NULL); eo_canserv_Parse(eo_canserv_GetHandle(), eOcanport2, maxframes2read, NULL); // stop skin. the check whether to stop skin or not is done internally. eo_skin_DisableTX(eo_skin_GetHandle()); // stop motion control res = eo_emsapplBody_DisableTxAllJointOnCan(eo_emsapplBody_GetHandle()); if (eores_NOK_generic == res) { // handle the error ... not important } // stop tx of strain, if present eo_strain_DisableTX(eo_strain_GetHandle()); }
extern void eom_emsappl_hid_userdef_on_entry_ERR(EOMtheEMSappl* p) { // pulse led3 forever at 4 hz. eo_ledpulser_Start(eo_ledpulser_GetHandle(), eo_ledpulser_led_three, EOK_reltime1sec/4, 0); // EOtheCANservice: set straight mode and force parsing of all packets in the RX queues. eo_canserv_SetMode(eo_canserv_GetHandle(), eocanserv_mode_straight); eo_canserv_ParseAll(eo_canserv_GetHandle()); // stop services which may have been started // motion-control eo_motioncontrol_Stop(eo_motioncontrol_GetHandle()); eo_motioncontrol_Deactivate(eo_motioncontrol_GetHandle()); // stop tx activity of services that may have been started by callback function // strain... no strain in here // eo_strain_Stop(eo_strain_GetHandle()); // eo_strain_Deactivate(eo_strain_GetHandle()); // skin eo_skin_Stop(eo_skin_GetHandle()); eo_skin_Deactivate(eo_skin_GetHandle()); // mais eo_mais_Stop(eo_mais_GetHandle()); eo_mais_Deactivate(eo_mais_GetHandle()); // inertials eo_inertials2_Stop(eo_inertials2_GetHandle()); eo_inertials2_Deactivate(eo_inertials2_GetHandle()); // inertials3 eo_inertials3_Stop(eo_inertials3_GetHandle()); eo_inertials3_Deactivate(eo_inertials3_GetHandle()); // temperatures eo_temperatures_Stop(eo_temperatures_GetHandle()); eo_temperatures_Deactivate(eo_temperatures_GetHandle()); }