717 lines
20 KiB
C
717 lines
20 KiB
C
|
|
|||
|
|
|||
|
#include "CanNw.h"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
CAN_NW_STATE euNwState;
|
|||
|
|
|||
|
unsigned char ucNwSendPduType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>ѡ<EFBFBD><D1A1> 0<><30><EFBFBD>رշ<D8B1><D5B7><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP<50><50><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>APP<50><50><EFBFBD><EFBFBD>
|
|||
|
unsigned int uiNwTimCnt;
|
|||
|
unsigned int uiNwToutCnt;
|
|||
|
unsigned int uiNwRMSCnt;
|
|||
|
unsigned int uiNwBsSlpCnt;
|
|||
|
unsigned int uiSetNwPduCycVal;
|
|||
|
unsigned int uiNwPduCycCnt;
|
|||
|
unsigned int uiNwLocWkpOffCnt;
|
|||
|
|
|||
|
unsigned char ucActiveWakeupBit;
|
|||
|
unsigned char ucRemoteWakupFlg;
|
|||
|
unsigned char ucNwPowerUpFlg;
|
|||
|
unsigned char ucNwNetIdelCheck;
|
|||
|
unsigned char ucNwNetIdelFlg;
|
|||
|
unsigned char ucPreLocWkpStu;
|
|||
|
|
|||
|
unsigned char ucNetActiveFlg;
|
|||
|
|
|||
|
unsigned char ImmediateNM_count;
|
|||
|
unsigned int DiagCnt;
|
|||
|
unsigned char RepeatMessageReq;
|
|||
|
|
|||
|
unsigned char DiagMsgRcvFlag;
|
|||
|
unsigned char RSSDiagReq;
|
|||
|
|
|||
|
unsigned char CanNwWakeupSourceCheck(unsigned char LocalSource,unsigned char *RemoteSource);
|
|||
|
|
|||
|
unsigned char CanNwNetIdelCheck(unsigned char *IdelFlg);
|
|||
|
|
|||
|
void CanNwInit(void)
|
|||
|
{
|
|||
|
|
|||
|
euNwState = CAN_NW_RESERVED;
|
|||
|
uiNwTimCnt = 0u;
|
|||
|
uiNwToutCnt = 0u;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR;
|
|||
|
uiNwBsSlpCnt = 0u;
|
|||
|
uiSetNwPduCycVal = REPEAT_NW_CYCLE_TIMER_THR;
|
|||
|
ucActiveWakeupBit = PASSIVE_WAKEUP;
|
|||
|
ucRemoteWakupFlg = 0u;
|
|||
|
ucNwPowerUpFlg = 0u;
|
|||
|
ucNwSendPduType = SEND_DISABLE;
|
|||
|
uiNwPduCycCnt = 0;
|
|||
|
ucNwNetIdelCheck = 0;
|
|||
|
ucNwNetIdelFlg = 0;
|
|||
|
ucPreLocWkpStu = PASSIVE_WAKEUP;
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
ucNetActiveFlg = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
|
|||
|
Can_Nw_Init();
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void CanNwHandle(void)
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣺10ms
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѽ<EFBFBD><EFBFBD>⣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
void CanNwHandle(void)
|
|||
|
{
|
|||
|
static unsigned char FlgTemp = 0,FlgTemp1 = 0;
|
|||
|
|
|||
|
//if((euNwState == CAN_NW_RESERVED)||(euNwState == CAN_NW_GOTO_SLEEP))
|
|||
|
if(euNwState == CAN_NW_RESERVED)
|
|||
|
{
|
|||
|
if((ucRemoteWakupFlg == 1)||(I_IGN_SIGN == IGN_ON))
|
|||
|
{
|
|||
|
FlgTemp1 = 0;
|
|||
|
if(FlgTemp == 0)
|
|||
|
{
|
|||
|
FlgTemp = 1;
|
|||
|
C0CTRH &= ~0x0300; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
FlgTemp = 0;
|
|||
|
if(FlgTemp1 == 0)
|
|||
|
{
|
|||
|
C0CTRH |= 0x0300; // <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ģʽ
|
|||
|
FlgTemp1 = 1;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if(DiagMsgRcvFlag == 1)
|
|||
|
{
|
|||
|
DiagCnt = 5000;
|
|||
|
DiagMsgRcvFlag = 0;
|
|||
|
if(euNwState==CAN_NW_READY_SLEEP)RSSDiagReq=1;
|
|||
|
}
|
|||
|
ucActiveWakeupBit = CanNwWakeupSourceCheck(ucIgnStus,&ucRemoteWakupFlg);
|
|||
|
ucNwNetIdelFlg = CanNwNetIdelCheck(&ucNwNetIdelCheck);
|
|||
|
//CAN_2F6.Msg_Bit.NWM_STATE = euNwState;
|
|||
|
switch(euNwState)
|
|||
|
{
|
|||
|
case CAN_NW_RESERVED:
|
|||
|
{
|
|||
|
if((ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)||(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP))
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
euNwState = CAN_NW_RMS_SLEEP; //˯<><CBAF>ģʽ<C4A3><CABD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>Ϣģʽ
|
|||
|
//<2F><><EFBFBD><EFBFBD>100ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
uiNwPduCycCnt = 0;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP) //<2F><><EFBFBD>ػ<EFBFBD><D8BB>ѽ<EFBFBD><D1BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
ImmediateNM_count = 0;
|
|||
|
uiSetNwPduCycVal = IMMEDIATENM_CYCLE_TIMER_THR;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ImmediateNM_count = 5;
|
|||
|
uiSetNwPduCycVal = REPEAT_NW_CYCLE_TIMER_THR;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
euNwState = CAN_NW_RESERVED;
|
|||
|
if(ucNwNetIdelFlg == 1)
|
|||
|
{
|
|||
|
if(uiNwTimCnt > 5000) //5sec goto sleep
|
|||
|
{
|
|||
|
ucNwSendPduType = SEND_DISABLE;
|
|||
|
SleepDetect();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case CAN_NW_RMS_SLEEP:
|
|||
|
{
|
|||
|
if(ImmediateNM_count >= 4 )uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
if((ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)||(ucNetActiveFlg == NW_NET_ACTIVE))
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
else /*if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)*/
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//if(uiNwTimCnt > REPEAT_MESSAGE_TIMER_THR) //<2F><><EFBFBD><EFBFBD><EFBFBD>źų<C5BA>ʱ1S<31><53>
|
|||
|
//if(uiNwLocWkpOffCnt == NM_TIMEOUT)
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP; //<2F>ظ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><D7BC>˯<EFBFBD><CBAF>ģʽ
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case CAN_NW_RMS_PREPARE_SLEEP:
|
|||
|
{
|
|||
|
if(ImmediateNM_count >= 4 )uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
else /*if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)*/
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//if(uiNwTimCnt > REPEAT_MESSAGE_TIMER_THR) //<2F><><EFBFBD><EFBFBD><EFBFBD>źų<C5BA>ʱ1S<31><53>
|
|||
|
/*
|
|||
|
if(uiNwLocWkpOffCnt == NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP; //<2F>ظ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><D7BC>˯<EFBFBD><CBAF>ģʽ
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
*/
|
|||
|
//SW030BT03
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP; //<2F>ظ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><D7BC>˯<EFBFBD><CBAF>ģʽ
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case CAN_NW_RMS_NORMAL_OPERATION:
|
|||
|
{
|
|||
|
if(ImmediateNM_count >= 4 )uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else /*if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)*/
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//if(uiNwTimCnt > REPEAT_MESSAGE_TIMER_THR) //<2F><><EFBFBD><EFBFBD><EFBFBD>źų<C5BA>ʱ1S<31><53>
|
|||
|
/*
|
|||
|
if(uiNwLocWkpOffCnt == NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP; //<2F>ظ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><D7BC>˯<EFBFBD><CBAF>ģʽ
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
*/
|
|||
|
//SW030BT03
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP; //<2F>ظ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><D7BC>˯<EFBFBD><CBAF>ģʽ
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case CAN_NW_RMS_READY_SLEEP:
|
|||
|
{
|
|||
|
if(ImmediateNM_count >= 4 )uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
else /*if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)*/
|
|||
|
{
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT) //1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
euNwState = CAN_NW_NOS_REPEAT_MESSAGE; //<2F>ظ<EFBFBD>״̬ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>0<EFBFBD><30>
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>200ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//if(uiNwTimCnt > REPEAT_MESSAGE_TIMER_THR) //<2F><><EFBFBD><EFBFBD><EFBFBD>źų<C5BA>ʱ1S<31><53>
|
|||
|
/*
|
|||
|
if(uiNwLocWkpOffCnt == NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP; //<2F>ظ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><D7BC>˯<EFBFBD><CBAF>ģʽ
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
*/
|
|||
|
//SW030BT03
|
|||
|
if(uiNwRMSCnt == NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP; //<2F>ظ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><D7BC>˯<EFBFBD><CBAF>ģʽ
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case CAN_NW_NOS_REPEAT_MESSAGE:
|
|||
|
{
|
|||
|
//if((ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)||(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP))
|
|||
|
if(RepeatMessageReq == 1)
|
|||
|
{
|
|||
|
RepeatMessageReq = 0;
|
|||
|
euNwState = CAN_NW_RMS_NORMAL_OPERATION;
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR;
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
ImmediateNM_count = 5;
|
|||
|
uiNwPduCycCnt = 0;
|
|||
|
}
|
|||
|
if((ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)||(ucNetActiveFlg == NW_NET_ACTIVE))
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
else /*if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)*/
|
|||
|
{
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//if((uiNwTimCnt > REPEAT_MESSAGE_TIMER_THR)||(uiNwRMSCnt == NM_TIMEOUT))
|
|||
|
//if((uiNwLocWkpOffCnt == NM_TIMEOUT)&&(uiNwRMSCnt == NM_TIMEOUT)&&(DiagCnt==NM_TIMEOUT))
|
|||
|
if(DiagCnt==NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP;
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case CAN_NW_NOS_READY_SLEEP:
|
|||
|
{
|
|||
|
if(RepeatMessageReq == 1)
|
|||
|
{
|
|||
|
RepeatMessageReq = 0;
|
|||
|
euNwState = CAN_NW_RMS_NORMAL_OPERATION;
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR;
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
ImmediateNM_count = 5;
|
|||
|
uiNwPduCycCnt = 0;
|
|||
|
}
|
|||
|
|
|||
|
//if((ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)||(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP))
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
else /*if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)*/
|
|||
|
{
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//if((uiNwTimCnt > REPEAT_MESSAGE_TIMER_THR)||(uiNwRMSCnt == NM_TIMEOUT))
|
|||
|
//if((uiNwLocWkpOffCnt == NM_TIMEOUT)&&(uiNwRMSCnt == NM_TIMEOUT)&&(DiagCnt==NM_TIMEOUT))
|
|||
|
if(DiagCnt==NM_TIMEOUT)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_READY_SLEEP;
|
|||
|
uiNwTimCnt = 500-uiNwPduCycCnt;;
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case CAN_NW_READY_SLEEP:
|
|||
|
{
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
euNwState = CAN_NW_NOS_READY_SLEEP;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0;
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
else if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
/*Wait In CAN_NW_NOS_READY_SLEEP */
|
|||
|
ucNwSendPduType = SEND_APP_PDU;
|
|||
|
if(RepeatMessageReq == 1)
|
|||
|
{
|
|||
|
RepeatMessageReq = 0;
|
|||
|
euNwState = CAN_NW_RMS_READY_SLEEP;
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR;
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
ImmediateNM_count = 5;
|
|||
|
uiNwPduCycCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(RSSDiagReq == 1)
|
|||
|
{
|
|||
|
RSSDiagReq = 0;
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
euNwState = CAN_NW_NOS_READY_SLEEP;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiNwTimCnt = 0;
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
}
|
|||
|
if(uiNwTimCnt > NM_TIMEOUT_TIMER_THR)
|
|||
|
{
|
|||
|
euNwState = CAN_NW_GOTO_SLEEP;
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_DISABLE;
|
|||
|
}
|
|||
|
if(RepeatMessageReq == 1)
|
|||
|
{
|
|||
|
RepeatMessageReq = 0;
|
|||
|
euNwState = CAN_NW_RMS_READY_SLEEP;
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR;
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
uiSetNwPduCycVal = NM_NORMAL_CYCLE_TIMER_THR;
|
|||
|
ImmediateNM_count = 5;
|
|||
|
uiNwPduCycCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
case CAN_NW_GOTO_SLEEP:
|
|||
|
{
|
|||
|
|
|||
|
if((ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)||(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP))
|
|||
|
{
|
|||
|
uiNwLocWkpOffCnt = NM_TIMEOUT_TIMER_THR;
|
|||
|
euNwState = CAN_NW_RMS_PREPARE_SLEEP;
|
|||
|
uiNwRMSCnt = REPEAT_MESSAGE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>1S<31><53>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>ʱ<EFBFBD><CAB1>
|
|||
|
uiSetNwPduCycVal = REPEAT_NW_CYCLE_TIMER_THR; //<2F><><EFBFBD><EFBFBD>100ms<6D><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD>NW_PDU
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_NWAPP_PDU;
|
|||
|
uiNwPduCycCnt = 0;
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP) //<2F><><EFBFBD>ػ<EFBFBD><D8BB>ѽ<EFBFBD><D1BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
|
|||
|
{
|
|||
|
ImmediateNM_count = 0;
|
|||
|
uiSetNwPduCycVal = IMMEDIATENM_CYCLE_TIMER_THR;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ImmediateNM_count = 5;
|
|||
|
uiSetNwPduCycVal = REPEAT_NW_CYCLE_TIMER_THR;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(uiNwTimCnt > WAIT_BUS_SLEEP_TIMER_THR)
|
|||
|
{
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˯<EFBFBD><CBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ִ<><D6B4>˯<EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>Ѻ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD> "euNwState = CAN_NW_RESERVED"
|
|||
|
if(ucNwNetIdelFlg == 1)
|
|||
|
{
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucNwSendPduType = SEND_DISABLE;
|
|||
|
|
|||
|
FlgTemp = 0;
|
|||
|
FlgTemp1 = 0;
|
|||
|
C0CTRH |= 0x0300; // <20><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ģʽ
|
|||
|
|
|||
|
SleepDetect();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//waiting can bus idel
|
|||
|
uiNwTimCnt = WAIT_BUS_SLEEP_TIMER_THR;
|
|||
|
ucNwSendPduType = SEND_DISABLE;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
{
|
|||
|
euNwState = CAN_NW_GOTO_SLEEP;
|
|||
|
uiNwTimCnt = 0;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Address=0x36;
|
|||
|
/*
|
|||
|
if(euNwState == CAN_NW_RMS_SLEEP || euNwState == CAN_NW_RMS_PREPARE_SLEEP)
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_RMR=1;
|
|||
|
else
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_RMR=0;
|
|||
|
*/ //20190707һֱ<D2BB><D6B1>0
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_RMR=0;
|
|||
|
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_AWB = 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_AWB = 0;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if((euNwState == CAN_NW_NOS_REPEAT_MESSAGE)||(euNwState == CAN_NW_NOS_READY_SLEEP))
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_NMSts = 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_NMSts = 0;
|
|||
|
}
|
|||
|
|
|||
|
if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_2=0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_2=0;
|
|||
|
}
|
|||
|
|
|||
|
if(ucActiveWakeupBit == REMOTE_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Wakeup_reasons=2;
|
|||
|
}
|
|||
|
else if(ucActiveWakeupBit == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Wakeup_reasons=1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Wakeup_reasons=0;
|
|||
|
}
|
|||
|
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_1=0;
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_4=0;
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_5=0;
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_6=0;
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_7=0;
|
|||
|
TxCanNwMsg_6B7.Msg_Part.RCP3_Stayawake_reasons_8=0;
|
|||
|
|
|||
|
Copy_Array_to_Array(TxCanNwPdu_436.DB,TxCanNwMsg_6B7.Msg_Byte,8);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
unsigned char CanNwWakeupSourceCheck(unsigned char LocalSource,unsigned char *RemoteSource)
|
|||
|
{
|
|||
|
static unsigned char ucRemWkpTemp = 0u;
|
|||
|
unsigned char ucRtnTemp;
|
|||
|
ucRtnTemp = PASSIVE_WAKEUP;
|
|||
|
if(ucNwPowerUpFlg == 0u) //<2F>ϵ<EFBFBD><CFB5><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>"0"
|
|||
|
{
|
|||
|
ucNwPowerUpFlg = 1u;
|
|||
|
uiNwTimCnt = 0u;
|
|||
|
ucRemWkpTemp = 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(uiNwTimCnt > (NM_NORMAL_CYCLE_TIMER_THR+REPEAT_NW_CYCLE_TIMER_THR)||(*RemoteSource == 1)) //300ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Զ<EFBFBD>̱<EFBFBD>־λ
|
|||
|
{
|
|||
|
if(*RemoteSource == 1)
|
|||
|
{
|
|||
|
*RemoteSource = 0;
|
|||
|
uiNwTimCnt = 0;
|
|||
|
ucRemWkpTemp = 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ucRemWkpTemp = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if(LocalSource == IGN_ON)
|
|||
|
{
|
|||
|
ucPreLocWkpStu = LOCAL_ACTIVE_WAKEUP;
|
|||
|
ucRtnTemp = LOCAL_ACTIVE_WAKEUP;
|
|||
|
}
|
|||
|
else if(ucRemWkpTemp == 1)
|
|||
|
{
|
|||
|
if(ucPreLocWkpStu == LOCAL_ACTIVE_WAKEUP)
|
|||
|
{
|
|||
|
ucRtnTemp = PASSIVE_WAKEUP;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ucRtnTemp = REMOTE_ACTIVE_WAKEUP;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
ucPreLocWkpStu = PASSIVE_WAKEUP;
|
|||
|
ucRtnTemp = PASSIVE_WAKEUP;
|
|||
|
}
|
|||
|
return ucRtnTemp;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
unsigned char CanNwNetIdelCheck(unsigned char *IdelFlg)
|
|||
|
{
|
|||
|
static unsigned int suiIdelTimCnt = 0;
|
|||
|
static unsigned char sucIdelCheckCnt = 0;
|
|||
|
|
|||
|
if(++suiIdelTimCnt > 30)
|
|||
|
{
|
|||
|
if(*IdelFlg == 0)
|
|||
|
{
|
|||
|
if(++sucIdelCheckCnt > 3)
|
|||
|
{
|
|||
|
sucIdelCheckCnt = 3;
|
|||
|
return 1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
suiIdelTimCnt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
*IdelFlg = 0;
|
|||
|
suiIdelTimCnt = 0;
|
|||
|
sucIdelCheckCnt = 0;
|
|||
|
}
|
|||
|
|
|||
|
if(suiIdelTimCnt > 40)
|
|||
|
{
|
|||
|
suiIdelTimCnt = 40;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|