|
|
@@ -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:
|
|
|
break;
|
|
|
}
|