|
@@ -6,10 +6,13 @@
|
|
|
#include "app/sox/state.h"
|
|
#include "app/sox/state.h"
|
|
|
#include "bsp/gpio.h"
|
|
#include "bsp/gpio.h"
|
|
|
#include "bsp/ml5238.h"
|
|
#include "bsp/ml5238.h"
|
|
|
|
|
+#include "bsp/fmc_flash.h"
|
|
|
#include "libs/logger.h"
|
|
#include "libs/logger.h"
|
|
|
#include "protocol.h"
|
|
#include "protocol.h"
|
|
|
#include "bms_message.h"
|
|
#include "bms_message.h"
|
|
|
|
|
|
|
|
|
|
+extern char* bsp_get_fversion(void);
|
|
|
|
|
+
|
|
|
static uint8_t bms_insert = 0;
|
|
static uint8_t bms_insert = 0;
|
|
|
static uint8_t bms_insert_ack = 0;
|
|
static uint8_t bms_insert_ack = 0;
|
|
|
//主要用来告知PSxxx是否刚插入,PSxxx答复后需要清除
|
|
//主要用来告知PSxxx是否刚插入,PSxxx答复后需要清除
|
|
@@ -149,16 +152,24 @@ void process_bms_message(can_frame_t *frame, int len){
|
|
|
protocol_send_ack(frame->head.can_addr, frame->key, result);
|
|
protocol_send_ack(frame->head.can_addr, frame->key, result);
|
|
|
break;
|
|
break;
|
|
|
case CAN_KEY_SET_SN:
|
|
case CAN_KEY_SET_SN:
|
|
|
|
|
+ fmc_write_sn((uint8_t *)frame->data, len);
|
|
|
protocol_send_ack(frame->head.can_addr, frame->key, result);
|
|
protocol_send_ack(frame->head.can_addr, frame->key, result);
|
|
|
break;
|
|
break;
|
|
|
case CAN_KEY_GET_SN: {
|
|
case CAN_KEY_GET_SN: {
|
|
|
- data = (u8 *)"SP730FL123223431";
|
|
|
|
|
- data_len = strlen((char *)data);
|
|
|
|
|
|
|
+ uint8_t sn[32];
|
|
|
|
|
+ int sn_len = sizeof(sn);
|
|
|
|
|
+ fmc_read_sn(sn, &sn_len);
|
|
|
|
|
+ if (sn_len == 0){
|
|
|
|
|
+ memset(sn, 0, sizeof(sn));
|
|
|
|
|
+ sn_len = 21;
|
|
|
|
|
+ }
|
|
|
|
|
+ data = (u8 *)sn;
|
|
|
|
|
+ data_len = sn_len;
|
|
|
protocol_send_bms_info(frame->head.can_addr, frame->key, data, data_len);
|
|
protocol_send_bms_info(frame->head.can_addr, frame->key, data, data_len);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
case CAN_KEY_GET_VERSION: {
|
|
case CAN_KEY_GET_VERSION: {
|
|
|
- data = (u8*) "HSP730FL_V2_13032048";
|
|
|
|
|
|
|
+ data = (u8*)bsp_get_fversion();
|
|
|
data_len = strlen((char *)data);
|
|
data_len = strlen((char *)data);
|
|
|
protocol_send_bms_info(frame->head.can_addr, frame->key, data, data_len);
|
|
protocol_send_bms_info(frame->head.can_addr, frame->key, data, data_len);
|
|
|
break;
|
|
break;
|