Signed-off-by: huhui <huhui@sharkgulf.com>
@@ -276,6 +276,17 @@ void process_bms_message(can_frame_t *frame, int len){
protocol_send_bms_info(frame->head.can_addr, frame->key, event, sizeof(event_record_t) * num + 1);
break;
}
+ case CAN_KEY_POWERDOWN: {
+ if (len < 4) {
+ return;
+ }
+ /*magic 0xFF005AA5*/
+ if (frame->data[0] == 0xA5 && frame->data[1] == 0x5A && frame->data[2] == 0x00 && frame->data[3] == 0xFF) {
+ bms_work_mode_set(WORK_MODE_PCBA_TEST, 1);
+ system_power_down();
+ break;
default:
@@ -163,6 +163,7 @@ typedef struct {
#define CAN_KEY_GET_EVENT 0xac /*»ñȡʼþÐÅÏ¢*/
+#define CAN_KEY_POWERDOWN 0xad /* power down, magic:0xFF005AA5*/
#define CAN_KEY_IAP_ENTER 0xF0
#define CAN_KEY_IAP_BEGIN 0xF1