A27R版本修改

This commit is contained in:
2025-05-17 14:22:08 +08:00
parent 0fd28aa974
commit 3b3c63f1f3
388 changed files with 319982 additions and 30872 deletions

View File

@ -44,7 +44,7 @@ unsigned char uart_time_request[13] = {0};
static uint8_t uart_tx_flag = 0;
static uint32_t send_idletick = 0;//发送时间检测
extern uint8_t flash_flag;//检测是否收到device信息
uint8_t uart_state = 0;//串口状态
uint8_t uart_state_flag = 0;//串口当前状态标识
uint8_t bt_communication_heartbeat = 10;//时间检测
uint8_t uart_flag =0;//串口变化标志
@ -107,7 +107,7 @@ static void protocol_uart_tx_thread(void *param)
if((!flash_flag) && (!data_error_flag)){
//确认蓝牙不处于升级 + 确认630不处于升级 + 确认串口收到通讯信息
if(Get_sys_bt_upgrade() == 0 && Get_sys_upgrade_Flag() == 0 && uart_state){//蓝牙升级 不发送数据 630升级 不发送数据
if(Get_sys_bt_upgrade() == 0 && Get_sys_upgrade_Flag() == 0){//蓝牙升级 不发送数据 630升级 不发送数据
#ifndef DATA_CAN
SendDataToBT(heartbeat_data);
// printf("tx>");
@ -321,7 +321,6 @@ static void protocol_uart_rx_thread(void *param)
printf("\n");
}
}else{
uart_state = 3;
bt_communication_heartbeat = 3;
if(equipment_data){
device_data_analysis(tlv_data_value);
@ -413,7 +412,7 @@ static void protocol_uart_rx_thread(void *param)
#if 1
}else{//升级逻辑
timeout ++;
uart_state = 3;
for (i = 0; i < len; i++) {
switch (uup_rx_state) {
case 0:

View File

@ -67,7 +67,7 @@
//
//#define configTOTAL_HEAP_SIZE ( ( size_t ) ( (18.8+32) * 1024 * 1024) ) // google拼音出现异常
//#define configTOTAL_HEAP_SIZE ( ( size_t ) ( (8.5+32) * 1024 * 1024) ) // google拼音正常工作
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( (3.5+30) * 1024 * 1024) ) // google拼音正常工作
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( (2.5+28) * 1024 * 1024) ) // google拼音正常工作
#elif defined(REVERSE_TRACK)
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( (22+32) * 1024 * 1024) )

View File

@ -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

View File

@ -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使能
}
}

View File

@ -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");

View File

@ -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){

View File

@ -245,4 +245,16 @@
<string name="4.连接成功后系统此界面会自动弹出对应界面就可以开始使用CarPlay功能了。">
<language name="en_US">4.After successful connection, the system will automatically pop up the corresponding interface, and you can start using the CarPlay function.</language>
<language name="zh_CN">4.连接成功后系统此界面会自动弹出对应界面就可以开始使用CarPlay功能了。</language>
</string>
<string name="状态:">
<language name="zh_CN">状态:</language>
<language name="en_US">State:</language>
</string>
<string name="密码:">
<language name="zh_CN">密码:</language>
<language name="en_US">Password:</language>
</string>
<string name="升级准备中...">
<language name="zh_CN">升级准备中...</language>
<language name="en_US">Upgrade preparation in progress ...</language>
</string>

View File

@ -461,6 +461,14 @@
<normal font_name="moto_font" font_size="130" text_color="#FFFFFF"/>
<disable text_color="#44444466"/>
</style>
<style name="tips_label">
<normal font_name="default" font_size="28" text_color="#FFFFFF"/>
<disable text_color="#44444466"/>
</style>
<style name="wifi_label">
<normal font_size="30" text_align_h="left" text_color="#FFFFFF"/>
<disable text_color="#44444466"/>
</style>
</label>
<line_number>
<style name="default" text_align_h="center">

View File

@ -34,13 +34,14 @@
</view>
<view name="view2" h="100" style:normal:border="none" style:normal:border_width="2" style:normal:border_color="#FFFFFF" opacity="255" style:normal:bg_color="#000000" style:normal:bg_image="" x="0" y="380" w="800" enable="true" visible="true">
<view name="icon_view" x="10" y="4" w="780" h="77">
<image name="func_bt_icon" x="514" y="5" w="35" h="43" draw_type="default" image="bt" visible="true"/>
<image name="func_bt_icon" x="500" y="2" w="35" h="43" draw_type="default" image="bt" visible="true"/>
<image name="tcs_icon" x="69" y="6" w="37" h="41" draw_type="default" image="tcs" visible="true"/>
<image name="warn_abs_icon" x="151" y="2" w="48" h="43" draw_type="default" image="abs" visible="true"/>
<image name="warn_engine_icon" x="594" y="4" w="50" h="43" draw_type="default" image="engine" visible="true"/>
<image name="warn_engine_icon" x="580" y="1" w="50" h="43" draw_type="default" image="engine" visible="true"/>
<image name="left" x="0" y="0" w="59" h="43" draw_type="default" image="turn_left_icon" visible="true"/>
<image name="right" x="726" y="-2" w="54" h="43" draw_type="default" image="turn_right_icon" visible="true"/>
<image name="light" x="249" y="6" w="48" h="35" draw_type="default" image="ahb" visible="true"/>
<image name="warn_fan_icon" x="667" y="2" w="40" h="35" draw_type="default" image="fan"/>
</view>
<label name="dh_veer_velocity" h="60" x="0" y="40" w="110" style:normal:text_color="#FFFFFF" style:normal:font_size="60" style:normal:font_name="Serpentine_MediumOblique" style:normal:text_align_h="center" style:normal:text_align_v="top"/>
<label name="dh_grade" h="96" style:normal:text_color="#FFFFFF" style:normal:font_size="80" style:normal:font_name="Serpentine_MediumOblique" x="365" y="4" w="68" style:normal:text_align_v="bottom" text="-"/>

View File

@ -1,5 +1,20 @@
<window name="prompt" style="demo_bg_blk">
<progress_bar name="plan_bar" x="c" y="m" w="200" h="20" show_text="true" style:normal:font_name="moto_font" style:normal:text_color="#000000" value="0"/>
<label name="point_text" x="c" y="190" w="160" h="30" style:normal:text_color="#FFFFFF" style:normal:font_name="moto_font" text="升级准备中..."/>
<image name="prompt_image" x="0" y="460" w="800" h="20" draw_type="default" style="default"/>
<window name="prompt" style="default" style:normal:bg_color="#000000">
<progress_bar name="plan_bar" x="c" y="m" w="200" h="20" show_text="true" style:normal:font_name="A27_SYHT_CT" style:normal:text_color="#000000" value="0"/>
<label name="point_text" x="c" y="190" w="160" h="30" style="tips_label" tr_text="升级准备中..."/>
<view name="wifi_view" x="300" y="270" w="490" h="210">
<label name="label1" x="0" y="0" w="490" h="30" style="wifi_label" text="WLAN:">
<label name="AP" x="100" y="0" w="355" h="30" style="wifi_label"/>
</label>
<label name="label2" x="0" y="40" w="100%" h="30" style="wifi_label" tr_text="密码:">
<label name="PWD" x="100" y="0" w="355" h="30" style="wifi_label"/>
</label>
<label name="label3" x="0" y="80" w="100%" h="30" style="wifi_label" tr_text="状态:">
<label name="state" x="80" y="0" w="355" h="30" style="wifi_label" text="未连接"/>
</label>
<label name="label" x="0" y="110" w="490" h="100" style="wifi_label" line_wrap="true" word_wrap="true" tr_text="当前设备支持wifi升级可扫码进行连接/搜索输入密码案进行连接"/>
</view>
<view name="countdown_view" x="0" y="0" w="480" h="107">
<label name="countdown" x="10" y="10" w="70" h="79" style="wifi_label" style:normal:font_size="60" style:normal:text_color="#FFFFFF" text="60"/>
<label name="label4" x="80" y="10" w="382" h="89" style="wifi_label" line_wrap="true" word_wrap="true" tr_text="wifi未连接自动退出倒计时"/>
</view>
</window>

File diff suppressed because one or more lines are too long

View File

@ -11,7 +11,7 @@
"awtk": ">=2210"
},
"assets": {
"activedTheme": "default",
"activedTheme": "dark",
"outputDir": "res",
"loadFrom": "any",
"const": "resource_data",

View File

@ -4,7 +4,7 @@
#include "assets/__assets_dark.inc"
#ifndef APP_THEME
#define APP_THEME "default"
#define APP_THEME "dark"
#endif /*APP_THEME*/
bool_t assets_has_theme(const char* name) {

View File

@ -32,18 +32,18 @@ void TXCMD_Other_Set(unsigned char time_buffer[],uint8_t len){
#endif
static uint8_t send_flag = 0;
extern uint8_t uart3_flag;
// static uint8_t send_flag = 0;
// extern uint8_t uart3_flag;
extern uint8_t flash_flag;
//发送询问时间+版本号查询
void Send_software_version(void){
DEBUG_PRINT("Send_software_version.\r\n");
if(uart3_flag){
uart3_flag = 0;
printf("uart3>>open.\r\n");
UART3_Type_regression();
// urtflag = 2;
}
// if(uart3_flag){
// uart3_flag = 0;
// printf("uart3>>open.\r\n");
// UART3_Type_regression();
// // urtflag = 2;
// }
time_software_request[4] = Get_sys_softwar_host();
time_software_request[5] = Get_sys_softwar_order();
@ -56,17 +56,21 @@ void Send_software_version(void){
TXCMD_Other_Set(time_software_request,9);
send_flag++;
if(send_flag>=3 && flash_flag){
send_flag = 0;
uart3_flag = 1;
}
// send_flag++;
// if(send_flag>=3 && flash_flag){
// send_flag = 0;
// // uart3_flag = 1;
// }
}
//发送胎压信息
void Send_tire_pressure_information(void){
#if UI_VIEW_TIRE_PRESSURE
if((mac_address_normal(custom_data.front_pressure.mac_address, 6) == 0) && (mac_address_normal(custom_data.rear_pressure.mac_address, 6) == 0))
return;
unsigned char trie_reset[19] = {0xAA,0x10,0x05,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uint8_t i=0;
if(mac_address_normal(custom_data.front_pressure.mac_address,6)){
@ -92,6 +96,35 @@ void Send_tire_pressure_information(void){
}
//发送胎压信息
void Send_tire_pressure_init_information(void){
#if UI_VIEW_TIRE_PRESSURE
unsigned char trie_reset[19] = {0xAA,0x10,0x05,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
uint8_t i=0;
if(mac_address_normal(custom_data.front_pressure.mac_address,6)){
trie_reset[4] = 0x01;
for(i=0;i<6;i++){
trie_reset[5+i] = custom_data.front_pressure.mac_address[i];
}
}
if(mac_address_normal(custom_data.rear_pressure.mac_address,6)){
trie_reset[11] = 0x01;
for(i=0;i<6;i++){
trie_reset[12+i] = custom_data.rear_pressure.mac_address[i];
}
}
uint8_t count = 0;
for(uint8_t i=0;i<16;i++){
count += trie_reset[2+i];
}
trie_reset[18] = count;
TXCMD_Other_Set(trie_reset,19);
#endif
}
//发送OTA升级判断
void Send_ota_state(uint8_t state){
ota_request[1] = state;
@ -185,7 +218,7 @@ void send_wifi_set_time(int time_buf[]){
dt.second = time_buf[5];
date_time_set(&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;
@ -194,7 +227,7 @@ void send_wifi_set_time(int time_buf[]){
check_buffer[5] = dt.second;
sum = fml_time_to_stamp(check_buffer);
sum += 28800;
// sum += 28800;
Send_list_set_time(sum);
}

View File

@ -19,7 +19,7 @@
#define MOTO_ICMX_GB518_A272R 6
#define MOTO_WARE_HOSE MOTO_ICMX_GB518_A272W
#define MOTO_WARE_HOSE MOTO_ICMX_GB518_A272R
#if (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270T)
@ -75,7 +75,7 @@
#elif (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A272W)
#define SOFT_WARE_HOST 0
#define SOFT_WARE_ORDER 2
#define SOFT_WARE_ORDER 4
#define TP_VERSION OVERSEAS_VERSION_2
@ -115,7 +115,7 @@
#elif (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A272R)
#define SOFT_WARE_HOST 0
#define SOFT_WARE_ORDER 2
#define SOFT_WARE_ORDER 8
#define TP_VERSION OVERSEAS_VERSION_2
@ -237,7 +237,7 @@
#define UI_TORAL6_GRIDS_TEMP_WARNING 116
#define UI_TORAL6_GRIDS_TEMP_WARNING 110
#define UI_TORAL6_GRIDS_TEMP_0 52
#define UI_TORAL6_GRIDS_TEMP_1 70
#define UI_TORAL6_GRIDS_TEMP_2 80
@ -275,7 +275,8 @@
#define JUDGE_BIN_6(data) JUDGE_BIT(data, 6)
#define JUDGE_BIN_7(data) JUDGE_BIT(data, 7)
//当前模式
#define DEMO_UI_SELF_START 50//开始自检标志
#define DEMO_UI_SELF_START 50//动画完毕,准备开始自检标志
#define DEMO_UI_SELF_START_OK 60//准备完毕开始自检
#define DEMO_UI_SELF_CHECKING 75//自检中标志
#define DEMO_UI_SELF_FINISH 100//正常模式
#define DEMO_UI_SELF_UPGRADE_BEGINS 150//升级模式
@ -294,6 +295,9 @@
#define OUTPUT_COLOR(data) str_to_num(data)
#define CALL_NAME_MAX 120
#define PHONE_MAX 30
#define ANIMATION_END_TIME 91
#define SELF_INSPECTION_END_TIME ANIMATION_END_TIME+25

View File

@ -356,7 +356,7 @@ uint16_t fml_leap_year(uint16_t year){
return ((year%4 == 0)&&(year%100!=0) ) || (year%400 ==0);
}
uint32_t fml_time_to_stamp(uint16_t time[]){
uint32_t fml_time_to_stamp(uint32_t time[]){
static uint32_t dax = 0;
static uint32_t day_count = 0;
uint16_t leap_year_count = 0;

View File

@ -23,5 +23,5 @@ ret_t long_key_event_handling(uint8_t key);
uint8_t mac_address_normal(char mac[],int size);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫΪ0<CEAA><30>ȫΪFF<46><46><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MAC <20><>ַ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>1
uint16_t fml_leap_year(uint16_t year);
uint32_t fml_time_to_stamp(uint16_t time[]);
uint32_t fml_time_to_stamp(uint32_t time[]);
uint32_t fml_stamp_to_time(uint32_t timep , uint16_t time[]);

View File

@ -112,6 +112,10 @@ static void tp_init(widget_t *win) {
widget_t *temp_view = widget_lookup(win, "temp_view", TRUE);
widget_set_visible(temp_view,FALSE);
#endif
#if UI_FAN_CLOSE
widget_t *warn_fan_icon = widget_lookup(win, "warn_fan_icon", TRUE);
widget_set_visible(warn_fan_icon,FALSE);
#endif
#if (CARLINK_TP_CP && CARLINK_TP_AA)
@ -258,6 +262,7 @@ static void tp_ui_refresh_icons(widget_t *win) {
#ifndef UI_ENG_CLOSE
static widget_t *warn_engine_icon = NULL;
#endif
static widget_t *warn_fan_icon = NULL;
if (!tp_inited) {
func_bt_icon = widget_lookup(win, "func_bt_icon", TRUE);
@ -271,6 +276,7 @@ static void tp_ui_refresh_icons(widget_t *win) {
#ifndef UI_ENG_CLOSE
warn_engine_icon = widget_lookup(win, "warn_engine_icon", TRUE); // abs
#endif
warn_fan_icon = widget_lookup(win, "warn_fan_icon", TRUE);
}
Universal_widget_display(func_bt_icon, Get_sys_bt_connect_state());
Universal_widget_display(light, Get_sys_lamplight());
@ -284,6 +290,9 @@ static void tp_ui_refresh_icons(widget_t *win) {
#ifndef UI_ENG_CLOSE
Universal_widget_display(warn_engine_icon, Get_sys_warning_engine());
#endif
#if !UI_FAN_CLOSE
Universal_widget_display(warn_fan_icon, Get_sys_warning_fan());
#endif
}
/**
@ -297,6 +306,11 @@ static void tp_ui_refresh_rmp(widget_t *win, uint16_t value) {
if (!tp_inited) {
dh_veer_velocity = widget_lookup(win, "dh_veer_velocity", TRUE);
}
if (value >= 12000)
{
value = 12000;
}
char tmpStr[20] = {0};
static int16_t _value = 0;
double rpm = 0;
@ -532,7 +546,7 @@ static ret_t on_new_key_down(void *ctx, event_t *e) {
#if (MOTO_WARE_HOSE == MOTO_ICMX_A591F)
return_demo();
#else
if(Get_sys_wifi_state())//连接上不允许切换
if(Get_sys_wifi_state() && Get_sys_bt_connect_state())//连接上不允许切换
return RET_OK;
widget_t *qr_view = widget_lookup(win, "qr_view", TRUE);
widget_t *Tab = widget_lookup(win, "Tab", TRUE); // 选择器

View File

@ -106,7 +106,7 @@ static ret_t on_set_time_key_down(void* ctx, event_t* e) {
dt.second = 0;
date_time_set(&dt);
uint16_t check_buffer[6];
uint32_t check_buffer[6];
check_buffer[0] = dt.year;
//check_buffer[0] = 2024;
check_buffer[1] = dt.month;

View File

@ -4,6 +4,9 @@
#include "../common/user_data.h"
#include "../common/data_port.h"
#define LOADING_STATE_NORMAL 0
#define LOADING_STATE_FRONT 1
#define LOADING_STATE_REAR 1
#define DETECTION_TIME 50
uint8_t front_loading_state = 0 ;
@ -208,7 +211,7 @@ void refresh_front_tire_oressure(widget_t* win){
//前胎压范围130-250kpa 取130 250 转psi范围为188-362
if(ago_pressure.blow_by_state || ago_pressure.voltage_state || ago_pressure.temp_state || ago_pressure.lose_flag){
widget_use_style(widget,"F_error");
}else if(ago_pressure.temp<70 && (ago_pressure.psi>=TIRE_PRESSURE_FRONT_LOWER && ago_pressure.psi<=TIRE_PRESSURE_FRONT_UPPER)){
}else if(ago_pressure.psi>=TIRE_PRESSURE_FRONT_LOWER && ago_pressure.psi<=TIRE_PRESSURE_FRONT_UPPER){
widget_use_style(widget,"F_normal");
}else{
widget_use_style(widget,"F_error");
@ -218,13 +221,15 @@ void refresh_front_tire_oressure(widget_t* win){
if(ago_pressure.temp==0)
widget_set_text_utf8(front_temp,"0");
else{
if(ago_pressure.temp>127)
tk_snprintf(tmpStr, sizeof(tmpStr), "-%d",(ago_pressure.temp-128));
else
if(ago_pressure.temp>127){
uint8_t temp_value = (ago_pressure.temp-128);
tk_snprintf(tmpStr, sizeof(tmpStr), "-%d",temp_value);
}else{
tk_snprintf(tmpStr, sizeof(tmpStr), "%d",ago_pressure.temp);
}
widget_set_text_utf8(front_temp,tmpStr);
if(ago_pressure.temp>=70){
if(ago_pressure.temp_state){
widget_set_style_str(front_temp, "normal.text_color", "red");
widget_set_style_str(front_tempuint, "normal.text_color", "red");
}else{
@ -333,7 +338,7 @@ void refresh_rear_tire_oressure(widget_t* win){
//后胎压范围150-280kpa 取150 280 转psi范围为217-406
if(after_pressure.blow_by_state || after_pressure.voltage_state || after_pressure.temp_state || after_pressure.lose_flag){
widget_use_style(widget,"R_error");
}else if(after_pressure.temp<70 && (after_pressure.psi>=TIRE_PRESSURE_REAR_LOWER && after_pressure.psi<=TIRE_PRESSURE_REAR_UPPER)){
}else if(after_pressure.psi>=TIRE_PRESSURE_REAR_LOWER && after_pressure.psi<=TIRE_PRESSURE_REAR_UPPER){
widget_use_style(widget,"R_normal");
}else{
widget_use_style(widget,"R_error");
@ -343,12 +348,13 @@ void refresh_rear_tire_oressure(widget_t* win){
if(after_pressure.temp==0)
widget_set_text_utf8(rear_temp,"0");
else{
if(after_pressure.temp>127)
tk_snprintf(tmpStr, sizeof(tmpStr), "-%d",(after_pressure.temp-128));
else
if(after_pressure.temp>127){
uint8_t temp_value = (after_pressure.temp-128);
tk_snprintf(tmpStr, sizeof(tmpStr), "-%d",temp_value);
}else
tk_snprintf(tmpStr, sizeof(tmpStr), "%d",after_pressure.temp);
widget_set_text_utf8(rear_temp,tmpStr);
if(after_pressure.temp>=70){
if(after_pressure.temp_state){
widget_set_style_str(rear_temp, "normal.text_color", "red");
widget_set_style_str(rear_tempuint, "normal.text_color", "red");
}else{
@ -430,7 +436,7 @@ void front_tire_detection(widget_t* win){
if(mac_address_normal(ago_pressure.mac_address,6) == 0){
front_time--;
front_loading_state = 1;
front_loading_state = LOADING_STATE_FRONT;
if(front_time==0){
if (tk_str_eq(language, "en")) {//英文
widget_set_text_utf8(Front,"Sensor loss");
@ -465,7 +471,7 @@ void rear_tire_detection(widget_t* win){
if(mac_address_normal(after_pressure.mac_address,6) == 0){
front_time--;
rear_loading_state = 1;
rear_loading_state = LOADING_STATE_REAR;
if(front_time==0){
if (tk_str_eq(language, "en")) {//英文
widget_set_text_utf8(Rear,"Sensor loss");
@ -583,45 +589,11 @@ static ret_t tire_data_refresh(const timer_info_t* timer){ //demo Progress bar C
refresh_rear_tire_oressure(win);
//胎压界面长按事件标志
if(tire_pressure_loading==1){//异常可以学习
Pressure_t ago_pressure = Get_sys_front_pressure();
if(ago_pressure.blow_by_state || ago_pressure.voltage_state || ago_pressure.temp_state || ago_pressure.lose_flag){//异常
if(ago_pressure.blow_by_state)
printf("blow_by_state -------------error .\r\n");
if(ago_pressure.voltage_state)
printf("voltage_state -------------error .\r\n");
if(ago_pressure.lose_flag)
printf("lose_flag -------------error .\r\n");
front_tire_pressure_loading();
tire_pressure_loading=3;
}else if(ago_pressure.temp<70 && (ago_pressure.psi>=TIRE_PRESSURE_FRONT_LOWER && ago_pressure.psi<=TIRE_PRESSURE_FRONT_UPPER)){//正常禁止学习
tire_pressure_loading=0;
}else{//异常
printf("data error ------------. ago_pressure.temp =%d ago_pressure.psi =%d \r\n",ago_pressure.temp,ago_pressure.psi);
front_tire_pressure_loading();
tire_pressure_loading=3;
}
// front_tire_pressure_loading();
// tire_pressure_loading=3;
front_tire_pressure_loading();
tire_pressure_loading=3;
}else if(tire_pressure_loading==2){
Pressure_t after_pressure = Get_sys_rear_pressure();
if(after_pressure.blow_by_state || after_pressure.voltage_state || after_pressure.temp_state || after_pressure.lose_flag){//异常
if(after_pressure.blow_by_state)
printf("blow_by_state -------------error .\r\n");
if(after_pressure.voltage_state)
printf("voltage_state -------------error .\r\n");
if(after_pressure.lose_flag)
printf("lose_flag -------------error .\r\n");
rear_tire_pressure_loading();
tire_pressure_loading=3;
}else if(after_pressure.temp<70 && (after_pressure.psi>=TIRE_PRESSURE_REAR_LOWER && after_pressure.psi<=TIRE_PRESSURE_REAR_UPPER)){//正常禁止学习
tire_pressure_loading=0;
}else{//异常
printf("data error ------------. after_pressure.temp =%d after_pressure.psi =%d \r\n",after_pressure.temp,after_pressure.psi);
rear_tire_pressure_loading();
tire_pressure_loading=3;
}
// rear_tire_pressure_loading();
// tire_pressure_loading=3;
rear_tire_pressure_loading();
tire_pressure_loading=3;
}
break;
case 1:

View File

@ -380,6 +380,11 @@ static void ui_refresh_call(widget_t *win, uint8_t value)
}
char tmpStr[20] = {0};
if(value){
widget_set_visible(mile_view,FALSE);
}else{
widget_set_visible(mile_view,TRUE);
}
// 通话部分
switch (value)
@ -783,6 +788,7 @@ static ret_t on_ui_demo1_destroy(void* ctx, event_t* e) {
/**
* 初始化窗口的子控件
*/
extern ret_t on_key_set_data(void* ctx, event_t* e);
static ret_t visit_init_child(void* ctx, const void* iter) {
widget_t* win = WIDGET(ctx);
widget_t* widget = WIDGET(iter);
@ -792,8 +798,10 @@ static ret_t visit_init_child(void* ctx, const void* iter) {
if (name != NULL && *name != '\0') {
if (tk_str_eq(name, "ui_demo1")) {
widget_on(widget, EVT_DESTROY, on_ui_demo1_destroy, win);
widget_on(widget, EVT_KEY_DOWN, on_key_set_list, win);
widget_on(widget, EVT_KEY_DOWN, on_key_set_data, win);
}
widget_on(widget, EVT_KEY_DOWN, on_key_set_list, win);
}
return RET_OK;

View File

@ -63,6 +63,9 @@ extern uint8_t tire_pressure_flag;//再main函数中
extern uint8_t bt2_switch_time;
static uint8_t light_storage = 0;
uint8_t flash_save_flag = 0;
uint8_t save_flag = 0;
extern void SaveDataToFlash(SfudData_t user_data);
extern void Send_defect_code(void);
extern void BT2_Switch(int type);
@ -73,7 +76,7 @@ char UI_uuid[32] = "";
char strQrText[100] = "";
char key_value = 0;
uint8_t uart3_flag = 0;
// uint8_t uart3_flag = 0;
extern void UART3_Modification_Type(void);
extern void UART3_Type_regression(void);
// extern uint8_t urtflag;
@ -165,7 +168,10 @@ extern uint32_t tire_front_time;
extern uint32_t tire_rear_time;
extern uint8_t tire_pressure_flag;//再main函数中
extern uint8_t bt2_state_now_flag;
extern uint8_t bt_reset_flag;
extern uint8_t wifi_time_flag;
uint8_t bw_121_time = 0;
// extern uint8_t bt_connect_flag;
void UI_init(void){
printf("UI_init ...........................................\r\n");
@ -232,11 +238,11 @@ void UI_init(void){
// #else
// sleep_ms(10);
// #endif
#if (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270T)
console_send_atcmd("AT+NAME=A27_MOTO_Phone,1\r\n", strlen("AT+NAME=A27_MOTO_Phone,1\r\n"));//修改蓝牙名
#else
console_send_atcmd("AT+NAME=A59_MOTO_Phone,1\r\n", strlen("AT+NAME=A59_MOTO_Phone,1\r\n"));//修改蓝牙名
#endif
// #if (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270T)
// console_send_atcmd("AT+NAME=A27_MOTO_Phone,1\r\n", strlen("AT+NAME=A27_MOTO_Phone,1\r\n"));//修改蓝牙名
// #else
// console_send_atcmd("AT+NAME=A59_MOTO_Phone,1\r\n", strlen("AT+NAME=A59_MOTO_Phone,1\r\n"));//修改蓝牙名
// #endif
// #ifdef AMT630HV100
// vTaskDelay(10);
// #else
@ -341,13 +347,13 @@ static ret_t on_timer(const idle_info_t* idle){
Return_demo_win();//如果目标是非主demo界面or投屏界面 则返回主demo界面
}
if(uart3_flag == 1){
//uart_init();
//将通讯串口配置为gpio端口
UART3_Modification_Type();
printf("uart3>>close.\r\n");
uart3_flag = 2;
}
// if(uart3_flag == 1){
// //uart_init();
// //将通讯串口配置为gpio端口
// UART3_Modification_Type();
// printf("uart3>>close.\r\n");
// uart3_flag = 2;
// }
if(Get_sys_upgrade_Flag()==2){//退出升级标志
DEBUG_PRINT("exit >> prompt .\r\n");
@ -377,18 +383,37 @@ static ret_t on_timer(const idle_info_t* idle){
if(bw_121_time)//蓝牙按钮时间控制
bw_121_time--;
// if(bt_connect_flag){
// select_bt_conntect();
// bt_connect_flag = 0;
// }
if(wifi_time_flag)
wifi_time_flag--;
//串口检测蓝牙通讯
if(uart_state && (Get_sys_bt_upgrade()==0 && Get_sys_upgrade_Flag()==0)){
uart_state--;
if(!uart_state){
printf("uart3 >gpio.\r\n");
UART3_Modification_Type();//将通讯串口配置为gpio端口
// //串口检测蓝牙通讯
// if(uart_state && (Get_sys_bt_upgrade()==0 && Get_sys_upgrade_Flag()==0)){
// uart_state--;
// if(!uart_state){
// printf("uart3 >gpio.\r\n");
// UART3_Modification_Type();//将通讯串口配置为gpio端口
// }
// }else{
// uart_state = 5;
// printf("uart3 > regression.\r\n");
// UART3_Type_regression();//串口恢复正常
// }
if(bt_reset_flag){
if(bt_reset_flag==2){
Send_software_version();
#if UI_VIEW_TIRE_PRESSURE
}else{
Send_tire_pressure_init_information();
#endif
}
}else{
uart_state = 5;
printf("uart3 > regression.\r\n");
UART3_Type_regression();//串口恢复正常
bt_reset_flag--;
}
//串口检测蓝牙心跳 + 接收发送
@ -407,7 +432,9 @@ static ret_t on_timer(const idle_info_t* idle){
refresh500ms_flag = refresh500ms_flag?0:1;
refresh500ms_idletick = xTaskGetTickCount();
}
#else
refresh500ms_flag = 1;
printf("refresh500ms_flag = %d.\r\n",refresh500ms_flag);
#endif
}
@ -415,6 +442,264 @@ static ret_t on_timer(const idle_info_t* idle){
return RET_OK;
}
static void ui_system_timer(void){
static uint16_t time_num =0;
uint32_t light_num=0;
uint16_t light=0;
uint8_t power_state =0;
uint8_t light_count = 0;
static uint8_t light_time = 0;
power_state = Get_sys_power_on_self_test();
if(light_time>=4){
pwm_backlight_changes_slowly();//光感控制亮度
light_time = 0;
}
light_time++;
if(power_state == 100){
// #ifndef AMT630HV100
// Simulating_data_changes();
// #endif
widget_t* win = window_manager();
widget_t* child = window_manager_get_top_main_window(win);
if(child != NULL && strcmp(child->name,"set_list")==0){
list_win_init(child);
// }else if(child != NULL && strcmp(child->name,"ui_demo1")==0){
// new_refreshes(child);
// //灯光刷新
// light_refresh(child);
// //通话界面刷新
// call_refresh(child);
}
//光感数据计算
if(light_storage != data_storage){
light_storage = data_storage;
for(uint8_t i=0;i<SAVE_DATA_SIZE;i++){
if(light_buffer[i] != 0){
light += light_buffer[i];
light_count++;
}
}
light_num = (int)(light/light_count);
Set_sys_light_perception_value(light_num);
if(Get_sys_light_perception_value()>=50){//光感大于70 白天 白色背景
Set_sys_display_theme(1);
}else if(Get_sys_light_perception_value()<=20){
Set_sys_display_theme(0);
}
}
//回到主菜单
if(Get_sys_return_demo() ==2){
time_num = 1;
Set_sys_return_demo(1);
}else if(Get_sys_return_demo() ==1){
if(time_num %600 ==0 || Get_sys_velocity() != 0 || Get_sys_call_state()){//10s左右 || 有速度的情况下直接退回主界面 || 有通话
time_num = 0;
printf("time ok return demo . %d \r\n",Get_sys_return_demo());
Return_demo_win();
}
time_num++;
}else if(Get_sys_return_demo() ==3){
Return_demo_win();//如果目标是非主demo界面or投屏界面 则返回主demo界面
}
// if(uart3_flag == 1){
// //uart_init();
// //将通讯串口配置为gpio端口
// UART3_Modification_Type();
// printf("uart3>>close.\r\n");
// uart3_flag = 2;
// }
if(Get_sys_upgrade_Flag()==2){//退出升级标志
DEBUG_PRINT("exit >> prompt .\r\n");
navigator_replace("ui_demo1");
Set_sys_upgrade_Flag(0);
Set_sys_plan(0);//1.修复升级一定进度失败后 再次进入升级 进度条未清零问题
Set_sys_pace(0);
}
#ifdef AMT630HV100
//1s一刷
if(xTaskGetTickCount() - idletick > configTICK_RATE_HZ){
if(ttrb_mesg()){ //查询时间 首次开机需要去询问时间
Send_software_version();
#if UI_VIEW_TIRE_PRESSURE
}else if(!tire_pressure_mesg()){ //发送胎压信息
Send_tire_pressure_information();
#endif
}else if(!ttrb_time_mesg()){ //发送时间 当用户通过UI设置时间后需要检测是否发送时间
Send_bt_time();
#ifndef DATA_CAN
}else if(!odo_reset_mesg()){ //发送清零命令 当用户长按时清零
Send_trip_reset();
#endif
}else if(fault_code_mesg()){ //发送故障码 为1是需要发送故障码
Send_defect_code();
}
if(bw_121_time)//蓝牙按钮时间控制
bw_121_time--;
// if(bt_connect_flag){
// select_bt_conntect();
// bt_connect_flag = 0;
// }
// //串口检测蓝牙通讯
// if(uart_state && (Get_sys_bt_upgrade()==0 && Get_sys_upgrade_Flag()==0)){
// uart_state--;
// if(!uart_state){
// printf("uart3 >gpio.\r\n");
// UART3_Modification_Type();//将通讯串口配置为gpio端口
// }
// }else{
// uart_state = 5;
// printf("uart3 > regression.\r\n");
// UART3_Type_regression();//串口恢复正常
// }
if(bt_reset_flag){
if(bt_reset_flag==2){
Send_software_version();
#if UI_VIEW_TIRE_PRESSURE
}else{
Send_tire_pressure_init_information();
#endif
}
bt_reset_flag--;
}
//串口检测蓝牙心跳 + 接收发送
if(bt_communication_heartbeat && (Get_sys_bt_upgrade()==0 && Get_sys_upgrade_Flag()==0)){
bt_communication_heartbeat--;
if(!bt_communication_heartbeat){//需要去重新初始化一次串口
uart_flag = 1;
bt_communication_heartbeat = 10;
}
}
idletick = xTaskGetTickCount();
}
if(xTaskGetTickCount() - refresh500ms_idletick > 500){
refresh500ms_flag = refresh500ms_flag?0:1;
refresh500ms_idletick = xTaskGetTickCount();
}
#else
refresh500ms_flag = 1;
#endif
}
}
static ret_t ui_timer_refresh(const timer_info_t* timer){ //demo Progress bar Color change
// widget_t *win = WIDGET(timer->ctx); // home_page
// static uint32_t count = 0;
// count++;
// printf("count = %d.\r\n",count);
if(animo_time < 510){
#ifndef AMT630HV100
date_time_t dt;
date_time_init(&dt);
#endif
animo_time++;
if(Get_sys_power_on_self_test()<DEMO_UI_SELF_START){
#ifndef AMT630HV100
Set_sys_power_on_self_test(DEMO_UI_SELF_START);
#endif
#ifdef ANIMO_CLOSE
if(animo_time>110){
BrightnessPowerOnSetting();
pwm_enable(2);
pwm_enable(3);
extern void anim_close_lcd_open(void);
anim_close_lcd_open();
}
if(animo_time>=130)
Set_sys_power_on_self_test(DEMO_UI_SELF_START);
#endif
}else if(Get_sys_power_on_self_test()==DEMO_UI_SELF_START){
if(!power_on_flag)
power_on_flag = 1;
Send_tire_pressure_init_information();//胎压
Set_sys_power_on_self_test(DEMO_UI_SELF_START_OK);
}else if(Get_sys_power_on_self_test()==DEMO_UI_SELF_START_OK){
if(animo_time>=35){
printf("animo_time = %d.\r\n",animo_time);
#ifdef AMT630HV100
idletick = xTaskGetTickCount();
#else
time_second = dt.second;
printf("time_second = %d .",time_second);
printf("start demo animo .\n");
#endif
Set_sys_power_on_self_test(DEMO_UI_SELF_CHECKING);//设置为自检中
Power_On_Self_Test();
}
#ifdef AMT630HV100
}else if(Get_sys_power_on_self_test()==DEMO_UI_SELF_CHECKING){
if(xTaskGetTickCount() - idletick > configTICK_RATE_HZ * 2.5){
UI_init();
// Set_sys_power_on_self_test(100);//设置为自检中
}
}
#else
}else if(time_second<57){
if((dt.second-time_second)>2){
printf("animo_time <57 ,second = %d ,end demo animo \n",dt.second);
UI_init();
}
}else if(time_second==57){
if(dt.second==0){
printf("animo_time ==57 ,second = %d ,end demo animo \n",dt.second);
UI_init();
}
}else if(time_second==58){
if(dt.second==1){
printf("animo_time ==58 ,second = %d ,end demo animo \n",dt.second);
UI_init();
}
}else{
if(dt.second==2){
printf("animo_time ==59 ,second = %d ,end demo animo \n",dt.second);
UI_init();
}
}
#endif
}
if(Get_sys_power_on_self_test() != DEMO_UI_SELF_UPGRADE_BEGINS){
ui_system_timer();
}else if(Get_sys_upgrade_Flag()==1){
DEBUG_PRINT("start >> prompt .\r\n");
navigator_replace("prompt");
Set_sys_upgrade_Flag(3);
DEBUG_PRINT("screen >> prompt ok .\r\n");
}
//立即保存flash
if(save_flag){
SaveDataToFlash(custom_data.user_data);
save_flag = 0;
}
return RET_REPEAT;
}
extern uint8_t power_on_flag;
void* test_timer_queue(void *args){
@ -480,12 +765,13 @@ void* test_timer_queue(void *args){
if(!power_on_flag)
power_on_flag = 1;
Send_tire_pressure_init_information();//胎压
Set_sys_power_on_self_test(DEMO_UI_SELF_CHECKING);//设置为自检中
console_send_atcmd("AT+NAME=A27_MOTO_Phone,1\r\n", strlen("AT+NAME=A27_MOTO_Phone,1\r\n"));//修改蓝牙名
// console_send_atcmd("AT+NAME=A27_MOTO_Phone,1\r\n", strlen("AT+NAME=A27_MOTO_Phone,1\r\n"));//修改蓝牙名
#ifdef AMT630HV100
vTaskDelay(1000);
#else
sleep_ms(200);
sleep_ms(100);
#endif
Power_On_Self_Test();
@ -494,11 +780,11 @@ void* test_timer_queue(void *args){
#ifdef AMT630HV100
}else if(Get_sys_power_on_self_test()==DEMO_UI_SELF_CHECKING){
if(xTaskGetTickCount() - idletick > configTICK_RATE_HZ * 3){
#ifdef AMT630HV100
vTaskDelay(100);
#else
sleep_ms(100);
#endif
// #ifdef AMT630HV100
// vTaskDelay(100);
// #else
// sleep_ms(100);
// #endif
UI_init();
}
}
@ -540,6 +826,12 @@ void* test_timer_queue(void *args){
#else
sleep_ms(20);
#endif
//立即保存flash
if(save_flag){
SaveDataToFlash(custom_data.user_data);
save_flag = 0;
}
//printf(".\r\n");
}
@ -585,10 +877,12 @@ ret_t application_init(void) {
// Set_sys_light_perception_value(30);
Set_sys_light(30);
//UI刷新线程
tk_thread_t *thread = NULL;
thread =tk_thread_create(test_timer_queue,NULL);
tk_thread_start(thread);
// //UI刷新线程
// tk_thread_t *thread = NULL;
// thread =tk_thread_create(test_timer_queue,NULL);
// tk_thread_start(thread);
widget_add_timer(window_manager(), ui_timer_refresh, 20);//进度条颜色刷新
char country[3];
char language[3];

View File

@ -99,7 +99,7 @@ int random(void)
#ifndef HAS_STD_MALLOC
#ifndef AWTK_HEAP_SIZE
#define AWTK_HEAP_SIZE (8 * 1024 * 1024)
#define AWTK_HEAP_SIZE (10 * 1024 * 1024)
#endif
static uint32_t s_heap_mem[AWTK_HEAP_SIZE/4];
#endif /*HAS_STD_MALLOC*/

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -137,11 +137,11 @@
<RecentlyUsedMenus>1</RecentlyUsedMenus>
<MenuShadows>1</MenuShadows>
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
<CommandsUsage>850900008B0040E1000001000000298100000C000000088000000100000021DE00000100000013860000160100005984000002000000198000000100000026840000030000005786000001000000028600000100000001DC000003000000108600001104000026810000010000005684000001000000158100000300000000DA000001000000048100000500000078840000030000002CE1000002000000018100000E00000029E100000100000007E1000002000000239200000100000016B0000001000000AF060000040000003184000001000000458100000100000004E10000020000000F8100000200000020810000010000005F86000007000000ED8000000100000002B00000010000000090000005000000D884000002000000878000000A0000000C810000970100003F8100000100000001E10000070000001D8100000900000026DE0000020000000D800000020000001D92000001000000EA80000001000000A68000000100000009810000010000000486000001000000D18500000200000003DC00000400000000DC00000100000017810000050000002881000001000000568600000F000000018600000100000003840000050000001A8F00000100000007B0000002000000118400000100000000840000030000002BE100000B000000808C0000010000003384000001000000478100000100000055840000180000007784000002000000148100000600000000810000010000000C860000030000000E84000001000000EF800000010000008980000001000000858400000100000028E1000001000000228100000100000083860000020000001F810000630100000E810000010000001A8600000300000003E100000A0000005E86000016000000EC8000000100000025E100002C010000978000000100000028DE0000030000000986000001000000E9800000020000008E860000010000000B8100000E000000A58000000100000000E100000200000002DC00000100000014860000E9000000058400000A000000588600000100000069860000010000002B8000000100000027840000010000000386000001000000D18400000100000011860000CC00000005810000200000005586000002000000278100000400000002840000030000000086000001000000F4800000010000002A8F000002000000198F000003000000168100000100000046810000E6000000108400000D0000002AE100000100000017B00000010000000BDE00000100000074860000010000000281000001000000218100000600000003B0000001000000EE80000001000000608600004B000000438100000100000044D50000010000008880000001000000A486000001000000518400000100000024E10000010000000D81000010000000088600000200000002E100000300000035E10000060000001E810000030000005D86000006000000EB80000001000000A186000002000000D684000001000000E8800000010000000A8100000200000007840000010000000586000001000000</CommandsUsage>
<CommandsUsage>0B0A00008B0001DC00000300000002860000010000005786000001000000268400000300000019800000010000005984000002000000138600001701000021DE0000010000000880000001000000298100000C00000040E10000010000002CE10000020000007884000003000000048100000500000000DA000001000000158100000300000056840000010000002681000001000000108600004604000045810000010000003184000001000000AF0600000400000016B0000001000000239200000100000007E100000200000029E1000001000000018100000E000000878000000A000000D884000002000000009000000500000002B0000001000000ED800000010000005F8600000700000020810000010000000F8100000200000004E1000002000000A680000001000000EA800000010000001D920000010000000D8000000200000026DE0000020000001D8100000900000001E10000070000003F810000010000000C8100009701000003DC000004000000D185000002000000048600000100000009810000010000001A8F00000100000003840000050000000186000001000000568600000F0000002881000001000000178100000500000000DC00000100000014810000060000007784000002000000558400001800000047810000010000003384000001000000808C0000010000002BE100000B0000000084000003000000118400000100000007B00000020000008386000002000000228100000100000028E100000100000085840000010000008980000001000000EF800000010000000E840000010000000C860000030000000081000001000000098600000100000028DE000003000000978000000100000025E100002C010000EC800000010000005E8600001700000003E100000A0000001A860000030000000E810000010000001F8100006F01000000E1000002000000A5800000010000000B8100000E0000008E86000001000000E980000002000000D184000001000000038600000100000027840000010000002B8000000100000069860000010000005886000001000000058400000A000000148600000A01000002DC0000010000001681000001000000198F0000030000002A8F000002000000F4800000010000000086000001000000028400000300000027810000040000005586000002000000058100002000000011860000E9000000028100000100000074860000010000000BDE00000100000017B00000010000002AE1000001000000108400000D00000046810000EB0000005184000001000000A486000001000000888000000100000044D50000010000004381000001000000608600004B000000EE8000000100000003B00000010000002181000006000000D684000001000000A186000002000000EB800000010000005D860000060000001E8100000300000035E100000600000002E100000300000008860000020000000D8100001000000024E1000001000000058600000100000007840000010000000A81000002000000E880000001000000</CommandsUsage>
</MFCToolBarParameters>
<CommandManager>
<CommandsWithoutImages>4A0008800000098000000A8000000B8000000C800000158000000A810000FFFFFFFF01E8000012810000D2840000D1850000D78600000C84000033840000788400001184000020DE000021DE000026DE000028DE000023DE000022DE000024DE000027DE000025DE000020920000289200002992000037920000389200003492000033920000259200001E92000000DC000001DC000002DC000003DC0000748600007784000007840000808C000044D50000838600005886000004DC000001B0000002B0000003B0000004B0000005B0000006B0000007B0000008B0000009B000000AB000000BB000000CB000000DB000000EB0000000B00000248100002AE10000008200001C8200000182000067860000008800000188000002880000038800000488000005880000</CommandsWithoutImages>
<MenuUserImages>5E00138600002E000000048400007B00000057860000190000000286000010000000048100004B000000108600002C00000076860000380000001581000054000000268100005C0000002CE10000720000008486000039000000318400008200000023920000000000000D8600001600000007E100006A000000D98600000D0000000F81000052000000208100005A00000004E10000680000005F860000630000000A8600002A0000001D920000120000000C8100004F000000008D00001D0000000D8000004600000001E100006500000023E100006C000000098100004D000000068400007D00000019820000440000005686000032000000038400007A0000009A8600001700000017810000560000004A810000760000001682000042000000018600000F000000008400007700000014810000530000002BE1000071000000449200002100000030840000810000000E8400007F0000000C860000150000000081000048000000D88600000C0000001F9200001E0000005E860000340000000E810000510000001F810000590000001A8600003100000003E100006700000025E100006E0000002F8200004500000009860000290000002D920000200000000B8100004E0000008E8600003A00000000E100006400000022E100006B000000148600002F000000058400007C000000D18400001C000000698600003700000041E100007400000018820000430000000386000011000000058100004C000000118600002D0000000284000079000000558600000700000016810000550000004981000075000000008600000E0000004681000061000000328400008300000010840000800000000E86000018000000DA860000050000006086000036000000518400008500000005E10000690000000B8600002B00000002E100006600000035E10000730000005D860000330000000D810000500000000A8400007E000000A18600003B000000C38600000300000008860000280000002C9200001F000000C08600000B0000001686000030000000</MenuUserImages>
<MenuUserImages>5E0002860000100000005786000019000000048400007B000000138600002E0000002CE1000072000000268100005C00000015810000540000007686000038000000108600002C000000048100004B000000D98600000D00000007E100006A0000000D860000160000002392000000000000318400008200000084860000390000000A8600002A0000005F8600006300000004E1000068000000208100005A0000000F8100005200000023E100006C00000001E10000650000000D80000046000000008D00001D0000000C8100004F0000001D920000120000001982000044000000068400007D000000098100004D000000018600000F00000016820000420000004A8100007600000017810000560000009A86000017000000038400007A00000056860000320000002BE100007100000014810000530000000084000077000000D88600000C00000000810000480000000C860000150000000E8400007F0000003084000081000000449200002100000009860000290000002F8200004500000025E100006E00000003E10000670000001A860000310000001F810000590000000E810000510000005E860000340000001F9200001E00000022E100006B00000000E10000640000008E8600003A0000000B8100004E0000002D920000200000000386000011000000188200004300000041E10000740000006986000037000000D18400001C000000058400007C000000148600002F000000008600000E0000004981000075000000168100005500000055860000070000000284000079000000118600002D000000058100004C000000DA860000050000000E860000180000001084000080000000328400008300000046810000610000000B8600002B00000005E1000069000000518400008500000060860000360000000886000028000000C386000003000000A18600003B0000000A8400007E0000000D810000500000005D8600003300000035E100007300000002E10000660000001686000030000000C08600000B0000002C9200001F000000</MenuUserImages>
</CommandManager>
<Pane-59393>
<ID>0</ID>
@ -880,7 +880,7 @@
</BasePane-34049>
<MFCToolBar-34050>
<Name>Main</Name>
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000064000000FFFEFF000000000000000000000000000100000001000000018001E100000000000065000000FFFEFF000000000000000000000000000100000001000000018003E100000000000067000000FFFEFF0000000000000000000000000001000000010000000180008100000000000048000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006C000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006B000000FFFEFF000000000000000000000000000100000001000000018025E10000000004006E000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040071000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040072000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005B000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006D000000FFFEFF000000000000000000000000000100000001000000018028E10000000004006F000000FFFEFF000000000000000000000000000100000001000000018029E100000000000070000000FFFEFF000000000000000000000000000100000001000000018002810000000000004A000000FFFEFF000000000000000000000000000100000001000000018029810000000000005F000000FFFEFF000000000000000000000000000100000001000000018027810000000000005D000000FFFEFF000000000000000000000000000100000001000000018028810000000000005E000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040057000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040058000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000000004E000000FFFEFF00000000000000000000000000010000000100000001800C810000000000004F000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000063000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F8100000000000059000000FFFEFF000000000000000000000000000100000001000000018020810000000000005A000000FFFEFF0000000000000000000000000001000000010000000180468100000000020061000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons>
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000063000000FFFEFF000000000000000000000000000100000001000000018001E100000000000064000000FFFEFF000000000000000000000000000100000001000000018003E100000000000066000000FFFEFF0000000000000000000000000001000000010000000180008100000000000047000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E100000000000069000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006B000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006A000000FFFEFF000000000000000000000000000100000001000000018025E10000000000006D000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040070000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040071000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005A000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006C000000FFFEFF000000000000000000000000000100000001000000018028E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018029E10000000000006F000000FFFEFF0000000000000000000000000001000000010000000180028100000000000049000000FFFEFF000000000000000000000000000100000001000000018029810000000000005E000000FFFEFF000000000000000000000000000100000001000000018027810000000000005C000000FFFEFF000000000000000000000000000100000001000000018028810000000000005D000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040056000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040057000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000000004D000000FFFEFF00000000000000000000000000010000000100000001800C810000000000004E000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000062000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F8100000000000058000000FFFEFF0000000000000000000000000001000000010000000180208100000000000059000000FFFEFF0000000000000000000000000001000000010000000180468100000000020060000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons>
</MFCToolBar-34050>
<Pane-34050>
<ID>34050</ID>

View File

@ -19,7 +19,7 @@
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
</JLinkDriver>
<DebugChecksum>
<Checksum>2449417590</Checksum>
<Checksum>2140416141</Checksum>
</DebugChecksum>
<Exceptions>
<StopOnUncaught>_ 0</StopOnUncaught>
@ -73,7 +73,10 @@
<Bp20>_ 0 "EMUL_CODE" "{$PROJ_DIR$\..\FreeRTOS-Plus\FreeRTOS-Plus-TCP\FreeRTOS_Sockets.c}.373.5" 0 0 1 "" 0 "" 0</Bp20>
<Bp21>_ 0 "EMUL_CODE" "{$PROJ_DIR$\..\FreeRTOS-Plus\FreeRTOS-Plus-TCP\FreeRTOS_Sockets.c}.323.9" 0 0 1 "" 0 "" 0</Bp21>
<Bp22>_ 0 "EMUL_CODE" "{$PROJ_DIR$\..\lib\lwip\src\api\sockets.c}.1988.5" 0 0 1 "" 0 "" 0</Bp22>
<Count>23</Count>
<Bp23>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\lib\awtk\awtk-examples\MOTO_A270T\src\pages\new.c}.549.8" 0 0 1 "" 0 "" 0</Bp23>
<Bp24>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\lib\awtk\awtk-examples\MOTO_A270T\src\pages\new.c}.552.15" 0 0 1 "" 0 "" 0</Bp24>
<Bp25>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\lib\awtk\awtk-examples\MOTO_A270T\src\pages\new.c}.551.15" 0 0 1 "" 0 "" 0</Bp25>
<Count>26</Count>
</Breakpoints2>
<Aliases>
<A0>_ "D:\work\amt630h-v100\amt630hV100-sdk-beta\amt630hv100-freertos\lib\awtk\awtk\src\base\bitmap.c" ""</A0>

File diff suppressed because one or more lines are too long