|
@@ -17,8 +17,6 @@ END_CTR_SELF_SEND_STATUS end_ctr_self_ss;
|
|
|
END_CTR_SELF_SEND_STATUS end_ctr_self_ss_new;
|
|
END_CTR_SELF_SEND_STATUS end_ctr_self_ss_new;
|
|
|
END_CTR_SELF_SEND_STATUS end_ctr_rsp;
|
|
END_CTR_SELF_SEND_STATUS end_ctr_rsp;
|
|
|
|
|
|
|
|
-DELAY_COMMON end_ctr_self_stimeout;
|
|
|
|
|
-
|
|
|
|
|
uint8_t Get_QD_State(void)
|
|
uint8_t Get_QD_State(void)
|
|
|
{
|
|
{
|
|
|
return end_ctr_self_ss_new.qd_sta;
|
|
return end_ctr_self_ss_new.qd_sta;
|
|
@@ -34,10 +32,15 @@ void Can_End_Ctr_Self_Send_Check(CAN_FRAME*can_ctr_frame)
|
|
|
uint16_t len;
|
|
uint16_t len;
|
|
|
uint8_t *buf = can_ctr_frame->data;
|
|
uint8_t *buf = can_ctr_frame->data;
|
|
|
|
|
|
|
|
- if(!memcmp(&end_ctr_self_ss,&end_ctr_self_ss_new,sizeof(END_CTR_SELF_SEND_STATUS)))
|
|
|
|
|
|
|
+ if(memcmp(&end_ctr_self_ss,&end_ctr_self_ss_new,sizeof(END_CTR_SELF_SEND_STATUS)) != 0) {
|
|
|
|
|
+ memcpy(&end_ctr_self_ss,&end_ctr_self_ss_new,sizeof(END_CTR_SELF_SEND_STATUS));
|
|
|
|
|
+ shark_can_send_pending |= SHARK_SEND_PENDING_4280;
|
|
|
|
|
+ shark_can_send_times = 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ((shark_can_send_pending & SHARK_SEND_PENDING_4280) == 0) {
|
|
|
return;
|
|
return;
|
|
|
-
|
|
|
|
|
- memcpy(&end_ctr_self_ss,&end_ctr_self_ss_new,sizeof(END_CTR_SELF_SEND_STATUS));
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
len = sizeof(end_ctr_self_ss);
|
|
len = sizeof(end_ctr_self_ss);
|
|
|
//
|
|
//
|
|
@@ -51,8 +54,6 @@ void Can_End_Ctr_Self_Send_Check(CAN_FRAME*can_ctr_frame)
|
|
|
can_ctr_frame->len = len;
|
|
can_ctr_frame->len = len;
|
|
|
memcpy(buf,&end_ctr_self_ss,len);
|
|
memcpy(buf,&end_ctr_self_ss,len);
|
|
|
|
|
|
|
|
- end_ctr_self_stimeout.set = 1;
|
|
|
|
|
- end_ctr_self_stimeout.count = 0;
|
|
|
|
|
//
|
|
//
|
|
|
if(!Send_Data_Can(can_ctr_frame,CTR_SELF))
|
|
if(!Send_Data_Can(can_ctr_frame,CTR_SELF))
|
|
|
{
|
|
{
|
|
@@ -344,7 +345,7 @@ int8_t Handle_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
case KEY_END_CTR_HEART_TICK:
|
|
case KEY_END_CTR_HEART_TICK:
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_SELF_UP:
|
|
case KEY_END_CTR_SELF_UP:
|
|
|
- end_ctr_self_stimeout.set = 0;
|
|
|
|
|
|
|
+ shark_can_send_pending &= ~SHARK_SEND_PENDING_4280;
|
|
|
return 0;
|
|
return 0;
|
|
|
#ifdef CONFIG_CAN_IAP
|
|
#ifdef CONFIG_CAN_IAP
|
|
|
case 0x42F0:
|
|
case 0x42F0:
|
|
@@ -372,14 +373,16 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
{
|
|
{
|
|
|
uint16_t key,len;
|
|
uint16_t key,len;
|
|
|
uint8_t *buf = can_ctr_frame->data;
|
|
uint8_t *buf = can_ctr_frame->data;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) {
|
|
|
|
|
+ return 1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
memcpy(&key,can_ctr_frame->data,sizeof(key));
|
|
memcpy(&key,can_ctr_frame->data,sizeof(key));
|
|
|
|
|
|
|
|
switch(key)
|
|
switch(key)
|
|
|
{
|
|
{
|
|
|
case KEY_END_CTR_COMMON:
|
|
case KEY_END_CTR_COMMON:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
end_ctr_rsp.key = KEY_END_CTR_COMMON;
|
|
end_ctr_rsp.key = KEY_END_CTR_COMMON;
|
|
|
end_ctr_rsp.op_result = 0;
|
|
end_ctr_rsp.op_result = 0;
|
|
|
len = sizeof(end_ctr_rsp);
|
|
len = sizeof(end_ctr_rsp);
|
|
@@ -392,9 +395,6 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
|
|
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_SWI_BAT:
|
|
case KEY_END_CTR_SWI_BAT:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
|
|
|
|
|
if(is_intelligent)
|
|
if(is_intelligent)
|
|
@@ -422,66 +422,42 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
|
|
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_BAT_INT_EN:
|
|
case KEY_END_CTR_BAT_INT_EN:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_BAT_INT_PRE:
|
|
case KEY_END_CTR_BAT_INT_PRE:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_SOFT_WARE:
|
|
case KEY_END_CTR_SOFT_WARE:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
memcpy(&buf[len],soft_version,PS100_SOFTWARE_SIZE);
|
|
memcpy(&buf[len],soft_version,PS100_SOFTWARE_SIZE);
|
|
|
len += PS100_SOFTWARE_SIZE;
|
|
len += PS100_SOFTWARE_SIZE;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_SN:
|
|
case KEY_END_CTR_SN:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
memcpy(&buf[len],sn,sizeof(sn));
|
|
memcpy(&buf[len],sn,sizeof(sn));
|
|
|
len += sizeof(sn);
|
|
len += sizeof(sn);
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_WRITER_SN:
|
|
case KEY_END_CTR_WRITER_SN:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_BAT_UPDATE_REQ:
|
|
case KEY_END_CTR_BAT_UPDATE_REQ:
|
|
|
- //if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- // return 1;
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 1;
|
|
buf[len++] = 1;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_BAT_UPDATE:
|
|
case KEY_END_CTR_BAT_UPDATE:
|
|
|
- //if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- /// return 1;
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 1;
|
|
buf[len++] = 1;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_BAT_UPDATE_EXIT:
|
|
case KEY_END_CTR_BAT_UPDATE_EXIT:
|
|
|
- //if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- // return 1;
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_DAN_CI_LI_CHENG:
|
|
case KEY_END_CTR_DAN_CI_LI_CHENG:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = sheng_yu_li_cheng.sy_yu_ji_ke_xing_shi_li_cheng;
|
|
buf[len++] = sheng_yu_li_cheng.sy_yu_ji_ke_xing_shi_li_cheng;
|
|
|
break;
|
|
break;
|
|
@@ -491,8 +467,6 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_TEST_INFO:
|
|
case KEY_END_CTR_TEST_INFO:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
switch(buf[len++])
|
|
switch(buf[len++])
|
|
|
{
|
|
{
|
|
@@ -554,9 +528,6 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
|
|
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_QD:
|
|
case KEY_END_CTR_QD:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
if(work_normal == 1)
|
|
if(work_normal == 1)
|
|
@@ -569,74 +540,48 @@ int8_t Rsp_Can_Ctr_CMD(CAN_FRAME*can_ctr_frame)
|
|
|
|
|
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_LOCK:
|
|
case KEY_END_CTR_LOCK:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
buf[len++] = Lock_Dect();
|
|
buf[len++] = Lock_Dect();
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_L_R_LIGHT:
|
|
case KEY_END_CTR_L_R_LIGHT:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_CARPET_LIGHT:
|
|
case KEY_END_CTR_CARPET_LIGHT:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_TAIL_LIGHT:
|
|
case KEY_END_CTR_TAIL_LIGHT:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_ACC12:
|
|
case KEY_END_CTR_ACC12:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
if(work_normal == 1)
|
|
if(work_normal == 1)
|
|
|
{
|
|
{
|
|
|
- buf[len++] = ACC2_Dect();
|
|
|
|
|
- acc2_dec_delay.count = ACC2_DEC_TIMEOUT;
|
|
|
|
|
|
|
+ buf[len++] = end_ctr_self_ss_new.acc12_sta;
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
case KEY_END_CTR_ACC12_TEST:
|
|
case KEY_END_CTR_ACC12_TEST:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_ACC12_TEST_1:
|
|
case KEY_END_CTR_ACC12_TEST_1:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
if(work_normal == 1)
|
|
if(work_normal == 1)
|
|
|
{
|
|
{
|
|
|
buf[len++] = ACC2_Dect();
|
|
buf[len++] = ACC2_Dect();
|
|
|
- acc2_dec_delay.count = ACC2_DEC_TIMEOUT;
|
|
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
|
case KEY_END_CTR_HEART_TICK:
|
|
case KEY_END_CTR_HEART_TICK:
|
|
|
- if((can_ctr_frame->head.rsp != FRAME_PT_NEED_RSP) || end_ctr_self_stimeout.set)
|
|
|
|
|
- return 1;
|
|
|
|
|
-
|
|
|
|
|
len = 2;
|
|
len = 2;
|
|
|
buf[len++] = 0;
|
|
buf[len++] = 0;
|
|
|
break;
|
|
break;
|
|
@@ -719,12 +664,6 @@ void Check_End_Ctr_Status(void)
|
|
|
end_ctr_self_ss_new.qd_sta = QD_Dect();
|
|
end_ctr_self_ss_new.qd_sta = QD_Dect();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if(acc2_dec_delay.set&&acc2_dec_delay.count >= ACC2_DEC_TIMEOUT)
|
|
|
|
|
- {
|
|
|
|
|
- memset(&acc2_dec_delay,0x00,sizeof(acc2_dec_delay));
|
|
|
|
|
- end_ctr_self_ss_new.acc12_sta = ACC2_Dect();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
//
|
|
//
|
|
|
end_ctr_self_ss_new.charger_in = shark_charger_is_normal();
|
|
end_ctr_self_ss_new.charger_in = shark_charger_is_normal();
|
|
|
end_ctr_self_ss_new.bat1_charge = shark_battery_charge_in1();
|
|
end_ctr_self_ss_new.bat1_charge = shark_battery_charge_in1();
|
|
@@ -754,23 +693,3 @@ void End_Ctr_Initial(void)
|
|
|
{
|
|
{
|
|
|
E_CTR_Initial();
|
|
E_CTR_Initial();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-void End_Ctr_Self_Send_Timeout(void)
|
|
|
|
|
-{
|
|
|
|
|
- if(end_ctr_self_stimeout.set)
|
|
|
|
|
- {
|
|
|
|
|
- ++end_ctr_self_stimeout.count;
|
|
|
|
|
- if(end_ctr_self_stimeout.count >= 300)
|
|
|
|
|
- {
|
|
|
|
|
- memset(&end_ctr_self_stimeout,0x00,sizeof(end_ctr_self_stimeout));
|
|
|
|
|
- g_event |= END_CTR_SELF_TIMEOUT_EVENT;
|
|
|
|
|
- }
|
|
|
|
|
- else if(end_ctr_self_stimeout.count == 200)
|
|
|
|
|
- g_event |= END_CTR_SELF_TIMEOUT_EVENT;
|
|
|
|
|
- else if(end_ctr_self_stimeout.count == 100)
|
|
|
|
|
- g_event |= END_CTR_SELF_TIMEOUT_EVENT;
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- end_ctr_self_stimeout.count = 0;
|
|
|
|
|
-
|
|
|
|
|
-}
|
|
|