示例#1
0
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;
}
示例#2
0
/*!
**
**
** @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 ) {