return_value_t can_init() { can_state.init_return = RET_OK; if(!canInit(1000)) { //fail can_state.init_return = RET_ERROR; return can_state.init_return; } LED_1; initTimer(); //initialize CanFestival //reset callback Sensor_Board_Data.NMT_Slave_Node_Reset_Callback = can_reset; #ifdef CONF71 setNodeId(&Sensor_Board_Data, 0x71); #else setNodeId(&Sensor_Board_Data, 0x01); #endif can_state.is_master = 1; setState(&Sensor_Board_Data, Initialisation); // Init the state setState(&Sensor_Board_Data, Operational); #ifdef CONF71 can_enable_slave_heartbeat(0x73,200); can_enable_slave_heartbeat(0x72,200); can_enable_heartbeat(200); #else can_enable_slave_heartbeat(0x04,200); can_enable_slave_heartbeat(0x03,200); can_enable_slave_heartbeat(0x02,200); can_enable_heartbeat(200); #endif PDOInit(&Sensor_Board_Data); return can_state.init_return; }
/*! ** ** ** @param d ** @param newCommunicationState **/ void switchCommunicationState(CO_Data* d, s_state_communication *newCommunicationState) { #ifdef CO_ENABLE_LSS StartOrStop(csLSS, startLSS(d), stopLSS(d)) #endif StartOrStop(csSDO, None, resetSDO(d)) StartOrStop(csSYNC, startSYNC(d), stopSYNC(d)) StartOrStop(csHeartbeat, heartbeatInit(d), heartbeatStop(d)) StartOrStop(csEmergency, emergencyInit(d), emergencyStop(d)) StartOrStop(csPDO, PDOInit(d), PDOStop(d)) StartOrStop(csBoot_Up, None, slaveSendBootUp(d)) } /*! ** ** ** @param d ** @param newState ** ** @return **/ UNS8 setState(CO_Data* d, e_nodeState newState) { if (newState != d->nodeState) { switch ( newState ) {