A27R版本修改
This commit is contained in:
@ -92,7 +92,7 @@ int carlink_cp_init();
|
||||
**********************/
|
||||
#ifdef VG_DRIVER
|
||||
#pragma data_alignment=1024
|
||||
#define VG_HEAP_SIZE 0xc00000
|
||||
#define VG_HEAP_SIZE 0xd00000
|
||||
__no_init static uint8_t vgHeap[VG_HEAP_SIZE];
|
||||
#endif
|
||||
|
||||
|
@ -18,13 +18,14 @@
|
||||
// #define MAX_ENTRIES 500 // 假设最大条目数为500
|
||||
#define MAX_ENTRIES 3000 // 假设最大条目数为500
|
||||
uint8_t time_flag = 0;
|
||||
uint8_t wifi_time_flag = 0;
|
||||
|
||||
char bt121_name[50];
|
||||
char bt121_name1[50];
|
||||
char bt121_name[CALL_NAME_MAX];
|
||||
char bt121_name1[CALL_NAME_MAX];
|
||||
// 定义电话本条目结构体
|
||||
typedef struct {
|
||||
char name[50];
|
||||
char phone[20];
|
||||
char name[CALL_NAME_MAX];
|
||||
char phone[PHONE_MAX];
|
||||
} PhoneBookEntry;
|
||||
|
||||
PhoneBookEntry phoneBook[MAX_ENTRIES]; // 存储电话本信息的数组
|
||||
@ -47,6 +48,26 @@ char* findNameByPhoneNumber(const char* phoneNumber) {
|
||||
if (strcmp(phoneBook[i].phone, phoneNumber) == 0) {
|
||||
printf("find> i=%d,name=%s.\r\n",i,phoneBook[i].name);
|
||||
return phoneBook[i].name;
|
||||
}
|
||||
|
||||
// 检查phoneBook中的号码是否有+86前缀,如果有则去掉后比较
|
||||
if (strlen(phoneBook[i].phone) > 3 &&
|
||||
strncmp(phoneBook[i].phone, "+86", 3) == 0) {
|
||||
const char* phoneWithoutPrefix = phoneBook[i].phone + 3;
|
||||
if (strcmp(phoneWithoutPrefix, phoneNumber) == 0) {
|
||||
printf("find> i=%d,name=%s.\r\n",i,phoneBook[i].name);
|
||||
return phoneBook[i].name;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查输入的号码是否有+86前缀,如果有则去掉后比较
|
||||
if (strlen(phoneNumber) > 3 &&
|
||||
strncmp(phoneNumber, "+86", 3) == 0) {
|
||||
const char* inputWithoutPrefix = phoneNumber + 3;
|
||||
if (strcmp(phoneBook[i].phone, inputWithoutPrefix) == 0) {
|
||||
printf("find> i=%d,name=%s.\r\n",i,phoneBook[i].name);
|
||||
return phoneBook[i].name;
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("unfind .\r\n");
|
||||
@ -67,12 +88,10 @@ void BW_121_Switch(uint8_t type){
|
||||
|
||||
switch(type){
|
||||
case 0:
|
||||
printf("send close bt.\r\n");
|
||||
console_send_atcmd("AT+BTEN=0\r\n", strlen("AT+BTEN=0\r\n"));//关蓝牙
|
||||
bt121_state = 1;
|
||||
break;
|
||||
case 1:
|
||||
printf("send open bt.\r\n");
|
||||
console_send_atcmd("AT+BTEN=1\r\n", strlen("AT+BTEN=1\r\n"));//开蓝牙
|
||||
bt121_state = 2;
|
||||
break;
|
||||
@ -245,12 +264,13 @@ void bw121call_number_data_event_handler(char* cAtCmd){
|
||||
static uint8_t flag = 0;
|
||||
|
||||
void parseBtATCommand(char* cAtCmd,int cATLen) {
|
||||
// printf("###");
|
||||
// printf("BW121>");
|
||||
// for(uint16_t i =0;i<cATLen;i++){
|
||||
// printf("%c",cAtCmd[i]);
|
||||
// }
|
||||
// printf("\r\n");
|
||||
|
||||
if(strlen(cAtCmd) >= 2 && !memcmp(cAtCmd,"OK",2))//蓝牙连接设备信息 远端设备信息 蓝牙连接
|
||||
if(strlen(cAtCmd) > 2 && !memcmp(cAtCmd,"OK",2))//蓝牙连接设备信息 远端设备信息 蓝牙连接
|
||||
{
|
||||
switch(bt121_state){
|
||||
case 1:
|
||||
@ -262,26 +282,42 @@ void parseBtATCommand(char* cAtCmd,int cATLen) {
|
||||
default:break;
|
||||
}
|
||||
|
||||
}else if(strlen(cAtCmd) > 8 && !memcmp(cAtCmd,"+A2DPDEV",8))//蓝牙连接设备信息 远端设备信息 蓝牙连接
|
||||
{
|
||||
}else if(strlen(cAtCmd) > 7 && !memcmp(cAtCmd,"+HFPDEV",7)){//设备状态
|
||||
Set_sys_bt_connect_state(1);
|
||||
vTaskDelay(500);
|
||||
//查询电话本信息
|
||||
printf("select phonebook.\r\n");
|
||||
console_send_atcmd("AT+PBDOWN=1\r\n", strlen("AT+PBDOWN=1\r\n"));
|
||||
//获取时间 当前只有苹果小米可用
|
||||
console_send_atcmd("AT+HFPTIME\r\n", strlen("AT+HFPTIME\r\n"));
|
||||
// bt_connect_flag = 1;
|
||||
// vTaskDelay(500);
|
||||
// if(!broadcastStatus){
|
||||
// //查询电话本信息
|
||||
// printf("select phonebook.\r\n");
|
||||
// console_send_atcmd("AT+PBDOWN=1\r\n", strlen("AT+PBDOWN=1\r\n"));
|
||||
// }
|
||||
// }else if(strlen(cAtCmd) > 8 && !memcmp(cAtCmd,"+A2DPDEV",8))//蓝牙连接设备信息 远端设备信息 蓝牙连接 //屏蔽音频后无效
|
||||
// {
|
||||
// Set_sys_bt_connect_state(1);
|
||||
// vTaskDelay(500);
|
||||
// //查询电话本信息
|
||||
// printf("select phonebook.\r\n");
|
||||
// console_send_atcmd("AT+PBDOWN=1\r\n", strlen("AT+PBDOWN=1\r\n"));
|
||||
}else if(strlen(cAtCmd) > 8 && !memcmp(cAtCmd,"+DEVSTAT",8)){//设备状态
|
||||
uint32_t num = 0;
|
||||
num = cAtCmd[9] - '0';//状态 0 off 1 on
|
||||
printf("bt>state = %d",num);
|
||||
switch(num){
|
||||
case 0:
|
||||
Set_sys_bt_on_off(0);
|
||||
break;
|
||||
case 1:
|
||||
Set_sys_bt_on_off(1);
|
||||
break;
|
||||
}
|
||||
printf(".ok\r\n");
|
||||
// 提取数值部分
|
||||
char *valueStr = strchr(cAtCmd, '='); // 查找 '=' 字符
|
||||
if (valueStr != NULL) {
|
||||
valueStr++; // 移动到 '=' 后面的字符
|
||||
num = (uint32_t)atoi(valueStr); // 将字符串转换为整数
|
||||
}
|
||||
// 判断蓝牙开关状态和广播状态
|
||||
uint8_t bluetoothStatus = (num & 0x01); // bit0
|
||||
uint8_t broadcastStatus = (num & 0x02) >> 1; // bit1 //1为可发现 0为不可发现
|
||||
|
||||
Set_sys_bt_on_off(bluetoothStatus);
|
||||
// printf("broadcastStatus = %d,",broadcastStatus);
|
||||
if(!broadcastStatus) Set_sys_bt_connect_state(0);
|
||||
// Set_sys_bt_connect_state(broadcastStatus?0:1);
|
||||
// printf("bt_state=%d,",Get_sys_bt_connect_state());
|
||||
|
||||
|
||||
}else if(strlen(cAtCmd) > 8 && !memcmp(cAtCmd,"+HFPSTAT",8)){//来电 或 蓝牙断开
|
||||
if(strlen(cAtCmd) == 10){
|
||||
@ -307,6 +343,15 @@ void parseBtATCommand(char* cAtCmd,int cATLen) {
|
||||
Set_sys_bt_connect_state(0);
|
||||
}else if(strlen(cAtCmd) > 5 && !memcmp(cAtCmd,"+NAME",5)){//远距离断开 设备丢失
|
||||
sscanf(cAtCmd, "+NAME=%s", bt121_name1);
|
||||
|
||||
// 获取字符串长度
|
||||
size_t len = strlen(bt121_name1);
|
||||
|
||||
// 判断字符串长度是否大于等于2,并检查最后两位是否为 "01"
|
||||
if (len >= 2 && bt121_name1[len - 2] == '0' && bt121_name1[len - 1] == '1') {
|
||||
// 修改字符串,删除最后两位
|
||||
bt121_name1[len - 2] = '\0'; // 将倒数第二个字符设置为字符串结束符
|
||||
}
|
||||
}else if(strlen(cAtCmd) > 7 && !memcmp(cAtCmd,"+LEADDR",7)){//远距离断开 设备丢失
|
||||
char last_four[5];
|
||||
strncpy(last_four, cAtCmd + strlen(cAtCmd) - 4, 4);
|
||||
@ -335,6 +380,7 @@ void parseBtATCommand(char* cAtCmd,int cATLen) {
|
||||
check_buffer[4] = minute;
|
||||
check_buffer[5] = second;
|
||||
send_wifi_set_time(check_buffer);
|
||||
wifi_time_flag = 1;
|
||||
#endif
|
||||
printf(">>bt time %s.\r\n",cAtCmd);
|
||||
}else if(strlen(cAtCmd) > 7 && !memcmp(cAtCmd,"+PBSTAT",7)){//下载状态
|
||||
@ -353,8 +399,8 @@ void parseBtATCommand(char* cAtCmd,int cATLen) {
|
||||
return;
|
||||
// 解析字符串并提取姓名和电话号码
|
||||
uint8_t count = 0;
|
||||
char call_num[20];
|
||||
char call_name[50];
|
||||
char call_num[PHONE_MAX];
|
||||
char call_name[CALL_NAME_MAX];
|
||||
memset(call_name, 0, sizeof(call_name));
|
||||
memset(call_num, 0, sizeof(call_num));
|
||||
uint16_t y = 0;
|
||||
@ -373,7 +419,7 @@ void parseBtATCommand(char* cAtCmd,int cATLen) {
|
||||
y++;
|
||||
}
|
||||
|
||||
// printf("ID:%d,name:%s,call:%s.\r\n",numEntries,call_name,call_num);
|
||||
// printf("ID:%d,name:<%s>,call:<%s>\r\n",numEntries,call_name,call_num);
|
||||
if(strlen(call_name) && strlen(call_num)){
|
||||
strcpy(phoneBook[numEntries].name, call_name);
|
||||
strcpy(phoneBook[numEntries].phone, call_num);
|
||||
@ -381,5 +427,7 @@ void parseBtATCommand(char* cAtCmd,int cATLen) {
|
||||
}
|
||||
|
||||
|
||||
}else if(strlen(cAtCmd) > 10 && !memcmp(cAtCmd,"+HFPAUDIO=1",10)){//AVRCP状态 1是配对状态 蓝牙断开
|
||||
console_send_atcmd("AT+HFPADTS=1\r\n", strlen("AT+HFPADTS=1\r\n"));//查询profile使能
|
||||
}
|
||||
}
|
||||
|
@ -6,30 +6,19 @@
|
||||
#include "universal.h"
|
||||
|
||||
|
||||
extern void SaveDataToFlash(SfudData_t user_data);
|
||||
// extern void SaveDataToFlash(SfudData_t user_data);
|
||||
|
||||
uint8_t power_on_flag = 0;
|
||||
uint32_t tire_pressure_flag = 0;
|
||||
uint32_t tire_front_time = 0;
|
||||
uint32_t tire_rear_time = 0;
|
||||
extern uint8_t tire_power;
|
||||
static date_time_t dt;
|
||||
extern uint8_t save_flag;
|
||||
|
||||
//保存里程信息
|
||||
static void Save_tire_data(void){
|
||||
void tire_data_synchronous(void){
|
||||
Pressure_t ago_pressure = Get_sys_front_pressure();
|
||||
Pressure_t after_pressure = Get_sys_rear_pressure();
|
||||
DEBUG_PRINT("****************\r\n");
|
||||
DEBUG_PRINT("mac: %02X%02X%02X%02X%02X%02X , %02X%02X%02X%02X%02X%02X \r\n",
|
||||
ago_pressure.mac_address[0],ago_pressure.mac_address[1],ago_pressure.mac_address[2],
|
||||
ago_pressure.mac_address[3],ago_pressure.mac_address[4],ago_pressure.mac_address[5],
|
||||
after_pressure.mac_address[0],after_pressure.mac_address[1],after_pressure.mac_address[2],
|
||||
after_pressure.mac_address[3],after_pressure.mac_address[4],after_pressure.mac_address[5]);
|
||||
DEBUG_PRINT("****************\r\n");
|
||||
DEBUG_PRINT("mac: %02X%02X%02X%02X%02X%02X , %02X%02X%02X%02X%02X%02X \r\n",
|
||||
custom_data.user_data.f_mac_address[0],custom_data.user_data.f_mac_address[1],custom_data.user_data.f_mac_address[2],
|
||||
custom_data.user_data.f_mac_address[3],custom_data.user_data.f_mac_address[4],custom_data.user_data.f_mac_address[5],
|
||||
custom_data.user_data.r_mac_address[0],custom_data.user_data.r_mac_address[1],custom_data.user_data.r_mac_address[2],
|
||||
custom_data.user_data.r_mac_address[3],custom_data.user_data.r_mac_address[4],custom_data.user_data.r_mac_address[5]);
|
||||
DEBUG_PRINT("****************\r\n");
|
||||
strcpy(custom_data.user_data.f_mac_address,ago_pressure.mac_address);
|
||||
custom_data.user_data.f_mac_address[6]=ago_pressure.temp&0xFF;
|
||||
custom_data.user_data.f_mac_address[7]=ago_pressure.psi>>8&0xFF;
|
||||
@ -38,13 +27,26 @@ static void Save_tire_data(void){
|
||||
custom_data.user_data.r_mac_address[6]=after_pressure.temp&0xFF;
|
||||
custom_data.user_data.r_mac_address[7]=after_pressure.psi>>8&0xFF;
|
||||
custom_data.user_data.r_mac_address[8]=after_pressure.psi&0xFF;
|
||||
}
|
||||
|
||||
//保存里程信息
|
||||
void Save_tire_data(void){
|
||||
tire_data_synchronous();
|
||||
Set_sys_pressure_signal(0);
|
||||
//保存flash
|
||||
SaveDataToFlash(custom_data.user_data);//保存数据
|
||||
save_flag = 1;
|
||||
// //保存flash
|
||||
// SaveDataToFlash(custom_data.user_data);//保存数据
|
||||
}
|
||||
|
||||
//数据刷新函数
|
||||
void pressure_buffer_event_handing(Pressure_t pressure,char buffer[],uint8_t type,uint8_t pairing_status){
|
||||
|
||||
// printf("enter data>");
|
||||
// for(uint8_t i=0;i<11;i++){
|
||||
// printf("%02x ",buffer[i]);
|
||||
// }
|
||||
// printf("\r\n");
|
||||
|
||||
uint8_t len = strlen(buffer);
|
||||
// uint8_t buffer_state=0;
|
||||
// uint8_t buffer_check=0;
|
||||
@ -68,7 +70,7 @@ void pressure_buffer_event_handing(Pressure_t pressure,char buffer[],uint8_t typ
|
||||
//DEBUG_PRINT("%x, ",data);
|
||||
pressure.blow_by_state = JUDGE_BIN_1(data);
|
||||
pressure.voltage_state = JUDGE_BIN_2(data);
|
||||
//pressure.temp_state = JUDGE_BIN_3(data);
|
||||
pressure.temp_state = JUDGE_BIN_3(data);
|
||||
|
||||
//V
|
||||
data = *(sign++);//电压 0x1e=>30=>3.0V
|
||||
@ -76,11 +78,15 @@ void pressure_buffer_event_handing(Pressure_t pressure,char buffer[],uint8_t typ
|
||||
//DEBUG_PRINT("%x, ",data);
|
||||
//T
|
||||
data = *(sign++);//温度 0x14=>20=>20°C
|
||||
pressure.temp = data;
|
||||
if(data>=70 && data<128){
|
||||
pressure.temp_state = 1;
|
||||
}else
|
||||
pressure.temp_state = 0;
|
||||
pressure.temp = data;
|
||||
// if(pressure.temp<=127){
|
||||
// if(pressure.temp>=70)
|
||||
// pressure.temp_state = 1;
|
||||
// else
|
||||
// pressure.temp_state = 0;
|
||||
// }else
|
||||
// pressure.temp_state = 0;
|
||||
|
||||
//DEBUG_PRINT("%x, ",data);
|
||||
//P
|
||||
sum = 0;
|
||||
@ -99,7 +105,7 @@ void pressure_buffer_event_handing(Pressure_t pressure,char buffer[],uint8_t typ
|
||||
|
||||
date_time_t dt;
|
||||
date_time_init(&dt);
|
||||
uint16_t check_buffer[6];
|
||||
uint32_t check_buffer[6];
|
||||
check_buffer[0] = dt.year;
|
||||
check_buffer[1] = dt.month;
|
||||
check_buffer[2] = dt.day;
|
||||
@ -115,21 +121,17 @@ void pressure_buffer_event_handing(Pressure_t pressure,char buffer[],uint8_t typ
|
||||
pressure.blow_by_state,pressure.voltage_state,pressure.temp_state,pressure.temp,pressure.psi);
|
||||
switch(type){
|
||||
case 1:
|
||||
if((sum - tire_front_time)>3600){
|
||||
pressure.lose_flag = 1;
|
||||
}
|
||||
Set_sys_front_pressure(pressure);
|
||||
break;
|
||||
case 2:
|
||||
if((sum - tire_rear_time)>3600){
|
||||
pressure.lose_flag = 1;
|
||||
}
|
||||
Set_sys_rear_pressure(pressure);
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
|
||||
|
||||
if(pairing_status){//若配对模式
|
||||
Save_tire_data();
|
||||
Send_tire_pressure_information();
|
||||
Set_sys_tire_pressure_mesg(10);
|
||||
}
|
||||
@ -158,48 +160,51 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
Pressure_t ago_pressure = Get_sys_front_pressure();
|
||||
Pressure_t after_pressure = Get_sys_rear_pressure();
|
||||
|
||||
data = *(buf++);
|
||||
if(data!=0xAA)
|
||||
return;
|
||||
(buf++);
|
||||
(buf++);
|
||||
(buf++);
|
||||
(buf++);
|
||||
(buf++);
|
||||
|
||||
data = *(buf++);
|
||||
if(data!=0x1b)
|
||||
return;
|
||||
// data = *(buf++);
|
||||
// if(data!=0xAA)
|
||||
// return;
|
||||
|
||||
data = *(buf++);
|
||||
if(data!=0x03)
|
||||
return;
|
||||
// data = *(buf++);
|
||||
// if(data!=0x1b)
|
||||
// return;
|
||||
|
||||
data = *(buf++);
|
||||
if(data!=0x51)
|
||||
return;
|
||||
// data = *(buf++);
|
||||
// if(data!=0x03)
|
||||
// return;
|
||||
|
||||
data = *(buf++);
|
||||
if(data!=0x17)
|
||||
return;
|
||||
// data = *(buf++);
|
||||
// if(data!=0x51)
|
||||
// return;
|
||||
|
||||
// data = *(buf++);
|
||||
// if(data!=0x17)
|
||||
// return;
|
||||
|
||||
data_flag = *(buf++);
|
||||
if(!data_flag && !power_on_flag){
|
||||
return;
|
||||
}else{
|
||||
date_time_t dt;
|
||||
date_time_init(&dt);
|
||||
uint16_t check_buffer[6];
|
||||
check_buffer[0] = dt.year;
|
||||
check_buffer[1] = dt.month;
|
||||
check_buffer[2] = dt.day;
|
||||
check_buffer[3] = dt.hour;
|
||||
check_buffer[4] = dt.minute;
|
||||
check_buffer[5] = dt.second;
|
||||
uint32_t sum = fml_time_to_stamp(check_buffer);
|
||||
switch(data_flag){
|
||||
case 1:tire_front_time =sum;break;
|
||||
case 2:tire_rear_time =sum;break;
|
||||
case 3:tire_front_time =sum;tire_rear_time =sum;break;
|
||||
default:break;
|
||||
}
|
||||
|
||||
date_time_init(&dt);
|
||||
uint32_t check_buffer[6];
|
||||
check_buffer[0] = dt.year;
|
||||
check_buffer[1] = dt.month;
|
||||
check_buffer[2] = dt.day;
|
||||
check_buffer[3] = dt.hour;
|
||||
check_buffer[4] = dt.minute;
|
||||
check_buffer[5] = dt.second;
|
||||
uint32_t sum = fml_time_to_stamp(check_buffer);
|
||||
switch(data_flag){
|
||||
case 1:tire_front_time =sum; break;
|
||||
case 2:tire_rear_time =sum; break;
|
||||
case 3:tire_front_time =sum;tire_rear_time =sum; break;
|
||||
default:break;
|
||||
}
|
||||
|
||||
|
||||
for(uint8_t i=0;i<11;i++){
|
||||
trip_buffer1[i] = *(buf++);
|
||||
if(i<6)
|
||||
@ -211,6 +216,7 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
if(i<6)
|
||||
mac2[i]=trip_buffer2[i];
|
||||
}
|
||||
|
||||
|
||||
//tk_snDEBUG_PRINT(mac1, sizeof(mac1), "%02X%02X%02X%02X%02X%02X",trip_buffer1[0],trip_buffer1[1],trip_buffer1[2],trip_buffer1[3],trip_buffer1[4],trip_buffer1[5]);
|
||||
//tk_snDEBUG_PRINT(mac2, sizeof(mac2), "%02X%02X%02X%02X%02X%02X",trip_buffer2[0],trip_buffer2[1],trip_buffer2[2],trip_buffer2[3],trip_buffer2[4],trip_buffer2[5]);
|
||||
@ -223,12 +229,28 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
}
|
||||
DEBUG_PRINT("\r\n");
|
||||
DEBUG_PRINT("***************************\r\n");
|
||||
|
||||
if(tire_power){
|
||||
tire_power = 0;
|
||||
if(!Get_sys_pressure_signal())
|
||||
data_flag = 3;
|
||||
// printf("data_flag = %d\r\n",data_flag);
|
||||
}else if(!data_flag && !Get_sys_pressure_signal()){
|
||||
//判断本地是否有mac地址
|
||||
if(mac_address_normal(ago_pressure.mac_address, 6) != 0 && (compare_arrays(ago_pressure.mac_address,mac1,6)==0)){
|
||||
Send_tire_pressure_information();
|
||||
}else if(mac_address_normal(after_pressure.mac_address, 6) != 0 && (compare_arrays(after_pressure.mac_address,mac2,6)==0)){
|
||||
Send_tire_pressure_information();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
switch(Get_sys_pressure_signal()){
|
||||
case 0://正常情况下需要刷新数据
|
||||
DEBUG_PRINT("0>>>> data_flag = %d \n",data_flag);
|
||||
uint8_t tire_error = 0;
|
||||
// DEBUG_PRINT("0>>>> data_flag = %d \n",data_flag);
|
||||
//if(strcmp(ago_pressure.mac_address,mac1)==0){//若和前胎压地址相同,则将数据丢给前胎压
|
||||
if(compare_arrays(ago_pressure.mac_address,mac1,6)==1 && (data_flag == 1 || data_flag == 3) || power_on_flag){//若和前胎压地址相同,则将数据丢给前胎压
|
||||
if(compare_arrays(ago_pressure.mac_address,mac1,6)==1 && ((data_flag == 1 || data_flag == 3) || power_on_flag)){//若和前胎压地址相同,则将数据丢给前胎压
|
||||
pressure_buffer_event_handing(ago_pressure,trip_buffer1,1,0);
|
||||
strcpy(custom_data.user_data.f_mac_address,ago_pressure.mac_address);
|
||||
custom_data.user_data.f_mac_address[6]=ago_pressure.temp&0xFF;
|
||||
@ -243,6 +265,15 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
custom_data.user_data.r_mac_address[7]=after_pressure.psi>>8&0xFF;
|
||||
custom_data.user_data.r_mac_address[8]=after_pressure.psi&0xFF;
|
||||
}
|
||||
|
||||
// if((compare_arrays(ago_pressure.mac_address,mac1,6)==0) || (compare_arrays(after_pressure.mac_address,mac2,6)==0))//若不同
|
||||
// Send_tire_pressure_information();
|
||||
if(mac_address_normal(ago_pressure.mac_address, 6) != 0 && (compare_arrays(ago_pressure.mac_address,mac1,6)==0)){
|
||||
Send_tire_pressure_information();
|
||||
}else if(mac_address_normal(after_pressure.mac_address, 6) != 0 && (compare_arrays(after_pressure.mac_address,mac2,6)==0)){
|
||||
Send_tire_pressure_information();
|
||||
}
|
||||
|
||||
if(power_on_flag){
|
||||
DEBUG_PRINT("power_on_flag = %d, tire_pressure ,ago_pressure.psi = %d , after_pressure.psi =%d .\r\n",power_on_flag,ago_pressure.psi,after_pressure.psi);
|
||||
power_on_flag--;
|
||||
@ -250,13 +281,13 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
|
||||
break;
|
||||
case 1://学习前胎压 前胎压不能于后胎压相同 前胎压mac清零
|
||||
DEBUG_PRINT("1>>>> data_flag = %d \n",data_flag);
|
||||
// DEBUG_PRINT("1>>>> data_flag = %d \n",data_flag);
|
||||
|
||||
if(data_flag==1){//只做mac1的判断
|
||||
DEBUG_PRINT("mac1-------------------.\r\n");
|
||||
//判断mac是否正常
|
||||
if(mac_address_normal(mac1,6) == 1){//正常进
|
||||
DEBUG_PRINT("mac1 ok-------------------.\r\n");
|
||||
// DEBUG_PRINT("mac1 ok-------------------.\r\n");
|
||||
//判断是否等于后胎压mac地址
|
||||
if(compare_arrays(after_pressure.mac_address,mac1,6)==1){//若等于,那么刷新后胎压
|
||||
pressure_buffer_event_handing(after_pressure,trip_buffer1,2,0);
|
||||
@ -280,7 +311,7 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
|
||||
}
|
||||
}else if(data_flag==2){//只做mac2的判断
|
||||
DEBUG_PRINT("mac2 -------------------.\r\n");
|
||||
// DEBUG_PRINT("mac2 -------------------.\r\n");
|
||||
//判断mac是否正常
|
||||
if(mac_address_normal(mac2,6) == 1){//正常进
|
||||
DEBUG_PRINT("mac2 ok-------------------.\r\n");
|
||||
@ -304,20 +335,20 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
|
||||
}
|
||||
}
|
||||
}else{
|
||||
}else if(data_flag==3){
|
||||
//先判断mac1是否正常 再判断mac2
|
||||
if(mac_address_normal(mac1,6) == 1){//正常进
|
||||
DEBUG_PRINT("mac1 -------------------.\r\n");
|
||||
// DEBUG_PRINT("mac1 -------------------.\r\n");
|
||||
//判断是否等于后胎压mac地址
|
||||
if(compare_arrays(after_pressure.mac_address,mac1,6)==1){//若等于,那么刷新后胎压
|
||||
DEBUG_PRINT("mac1 after -------------------.\r\n");
|
||||
// DEBUG_PRINT("mac1 after -------------------.\r\n");
|
||||
pressure_buffer_event_handing(after_pressure,trip_buffer1,2,0);
|
||||
//后胎压刷新完毕
|
||||
//1.判断mac2 1.是否正常 是转2 否退出
|
||||
//2.是否等于后胎压 是则刷后胎压 否转3
|
||||
//3.学习前胎压
|
||||
if(mac_address_normal(mac2,6) == 1){//判断mac2是否正常
|
||||
DEBUG_PRINT("mac2 -------------------.\r\n");
|
||||
// DEBUG_PRINT("mac2 -------------------.\r\n");
|
||||
if(compare_arrays(after_pressure.mac_address,mac2,6)==1){//若等于,那么刷新后胎压
|
||||
pressure_buffer_event_handing(after_pressure,trip_buffer2,2,0);
|
||||
}else{//反之学习前胎压
|
||||
@ -338,11 +369,11 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
}
|
||||
|
||||
}else{
|
||||
DEBUG_PRINT("mac2 error-------------------.\r\n");
|
||||
// DEBUG_PRINT("mac2 error-------------------.\r\n");
|
||||
}
|
||||
|
||||
}else{//若不等于 那么就学习前胎压
|
||||
DEBUG_PRINT("mac2 ago-------------------.\r\n");
|
||||
// DEBUG_PRINT("mac2 ago-------------------.\r\n");
|
||||
|
||||
//S
|
||||
data = trip_buffer1[6];
|
||||
@ -398,13 +429,13 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
|
||||
break;
|
||||
case 2://学习后胎压
|
||||
DEBUG_PRINT("2>>>> data_flag =%d\n",data_flag);
|
||||
// DEBUG_PRINT("2>>>> data_flag =%d\n",data_flag);
|
||||
|
||||
if(data_flag==1){//只做mac1的判断
|
||||
DEBUG_PRINT("mac1-------------------.\r\n");
|
||||
//判断mac是否正常
|
||||
if(mac_address_normal(mac1,6) == 1){//正常进
|
||||
DEBUG_PRINT("mac1 ok-------------------.\r\n");
|
||||
// DEBUG_PRINT("mac1 ok-------------------.\r\n");
|
||||
//判断是否等于前胎压mac地址
|
||||
if(compare_arrays(ago_pressure.mac_address,mac1,6)==1){//若等于,那么刷新前胎压
|
||||
pressure_buffer_event_handing(ago_pressure,trip_buffer1,1,0);
|
||||
@ -430,7 +461,7 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
DEBUG_PRINT("mac2 -------------------.\r\n");
|
||||
//判断mac是否正常
|
||||
if(mac_address_normal(mac2,6) == 1){//正常进
|
||||
DEBUG_PRINT("mac2 ok-------------------.\r\n");
|
||||
// DEBUG_PRINT("mac2 ok-------------------.\r\n");
|
||||
//判断是否等于前胎压mac地址
|
||||
if(compare_arrays(ago_pressure.mac_address,mac2,6)==1){//若等于,那么刷新前胎压
|
||||
pressure_buffer_event_handing(ago_pressure,trip_buffer2,1,0);
|
||||
@ -450,7 +481,7 @@ void tire_pressure_data_analysis(uint8_t *buf){
|
||||
|
||||
}
|
||||
}
|
||||
}else{
|
||||
}else if(data_flag==3){
|
||||
//先判断mac1是否正常 再判断mac2
|
||||
if(mac_address_normal(mac1,6) == 1){//正常进
|
||||
DEBUG_PRINT("mac1 -------------------.\r\n");
|
||||
|
@ -14,6 +14,7 @@
|
||||
|
||||
extern double total_mile;
|
||||
uint8_t data_error_flag = 0;
|
||||
extern uint8_t wifi_time_flag;
|
||||
|
||||
#define KEY_DATA_PRESS 0x01 // 短按
|
||||
#define KEY_DATA_LONG_PRESS 0x02 // 长按
|
||||
@ -25,6 +26,8 @@ enum
|
||||
};
|
||||
|
||||
uint8_t save_data = 0;
|
||||
uint8_t tire_power = 0;
|
||||
uint8_t bt_reset_flag = 0;
|
||||
|
||||
#define ADC_VPLTAGE_MIN 1666
|
||||
#define ADC_VPLTAGE_MAX 2486
|
||||
@ -74,7 +77,7 @@ double adc_voltage_calculation(void){
|
||||
|
||||
//MOTO通讯 设备信息+时间戳解析协议
|
||||
void device_data_analysis(uint8_t *buf){
|
||||
printf("device information............................................\r\n");
|
||||
// printf("device information............................................\r\n");
|
||||
uint8_t data;
|
||||
uint8_t sum1,sum2,sum3,sum4;
|
||||
uint32_t save_total_mile,save_trip_mile;
|
||||
@ -168,23 +171,26 @@ void device_data_analysis(uint8_t *buf){
|
||||
data = *(buf++);//0x04
|
||||
//DEBUG_PRINT("0x04 -- %02x .\n",data);
|
||||
//DEBUG_PRINT("time stamp >> ");
|
||||
uint16_t time_transfer[6];
|
||||
if(!wifi_time_flag){
|
||||
uint16_t time_transfer[6];
|
||||
|
||||
sum1 = *(buf++);
|
||||
sum2 = *(buf++);
|
||||
sum3 = *(buf++);
|
||||
sum4 = *(buf++);
|
||||
sum1 = *(buf++);
|
||||
sum2 = *(buf++);
|
||||
sum3 = *(buf++);
|
||||
sum4 = *(buf++);
|
||||
|
||||
//sum = sum1 | sum2<<8 | sum3<<16 | sum4<<24;
|
||||
sum = sum1<<24 | sum2<<16 | sum3<<8 | sum4;
|
||||
DEBUG_PRINT("time > %08x \n",sum);
|
||||
tire_rear_time = sum;
|
||||
tire_front_time = sum;
|
||||
// if(sum<1706198400)
|
||||
// sum = 1706198400;
|
||||
fml_stamp_to_time(sum,time_transfer);
|
||||
//sum = sum1 | sum2<<8 | sum3<<16 | sum4<<24;
|
||||
sum = sum1<<24 | sum2<<16 | sum3<<8 | sum4;
|
||||
printf("bt time > %08x \n",sum);
|
||||
tire_rear_time = sum;
|
||||
tire_front_time = sum;
|
||||
// if(sum<1706198400)
|
||||
// sum = 1706198400;
|
||||
fml_stamp_to_time(sum,time_transfer);
|
||||
|
||||
Uart_set_time(time_transfer);//去设置时间并不再发送询问时间指令
|
||||
Uart_set_time(time_transfer);//去设置时间并不再发送询问时间指令
|
||||
}else
|
||||
wifi_time_flag--;
|
||||
//Set_sys_ttrb_time(10);
|
||||
|
||||
data = *(buf++);//0x05
|
||||
@ -491,6 +497,11 @@ void data_analysis(uint8_t *buf){
|
||||
if(JUDGE_BIN_4(data)){//收到胎压信息,不再发送
|
||||
DEBUG_PRINT("Received tire pressure command, no longer sending.\n");
|
||||
Set_sys_tire_pressure_mesg(10);
|
||||
tire_power = 1;
|
||||
}
|
||||
if(JUDGE_BIN_5(data) && JUDGE_BIN_6(data)){
|
||||
DEBUG_PRINT("bt reset.\n");
|
||||
bt_reset_flag = 2;
|
||||
}
|
||||
#ifdef DATA_CAN
|
||||
switch(result){
|
||||
|
Reference in New Issue
Block a user