CARPLAY版本整理
This commit is contained in:
@ -0,0 +1,86 @@
|
||||
#include "awtk.h"
|
||||
#include "../common/navigator.h"
|
||||
#include "../common/data_port.h"
|
||||
#include "user_data.h"
|
||||
|
||||
#ifndef WITH_MVVM
|
||||
extern daily_data_t custom_data;
|
||||
extern Device_t device;
|
||||
#ifndef AMT630HV100
|
||||
uint32_t tire_front_time = 0;
|
||||
uint32_t tire_rear_time = 0;
|
||||
// uint8_t save_tire_flag = 0;
|
||||
|
||||
uint8_t mile_flag = 0;
|
||||
|
||||
void TXCMD_Other_Set(unsigned char time_buffer[],uint8_t len){
|
||||
DEBUG_PRINT("TXXMD: ");
|
||||
for(uint8_t i=0;i<13;i++){
|
||||
DEBUG_PRINT("%x ",time_buffer[i]);
|
||||
}
|
||||
DEBUG_PRINT("\n");
|
||||
}
|
||||
|
||||
// uint8_t save_tire_flag = 0;
|
||||
uint8_t bt2_switch_time = 1;
|
||||
uint8_t power_on_flag = 0;
|
||||
uint8_t tcs_twinkle = 0;
|
||||
uint8_t tcs_switch = 0;
|
||||
uint8_t can101_flag = 0;
|
||||
uint8_t can_flag = 0;
|
||||
uint8_t flash_flag = 0;
|
||||
uint8_t dtc_flag = 0;
|
||||
|
||||
uint8_t bt_upgrade_flag = 0;
|
||||
uint8_t time_flag = 0;
|
||||
|
||||
int test_light = 0;
|
||||
SfudData_t sfud_data_saved = {0};
|
||||
char bt121_name[50];
|
||||
char bt121_name1[50];
|
||||
|
||||
void SaveDataToFlash(SfudData_t user_data){
|
||||
}
|
||||
void BT2_Switch(int type){
|
||||
switch(type){
|
||||
case 0://关闭蓝牙
|
||||
Set_sys_bt_on_off(0);
|
||||
break;
|
||||
case 1://开启蓝牙
|
||||
Set_sys_bt_on_off(1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
void cat1_enable(void){}
|
||||
void BT2_init_open(void){}
|
||||
void BT2_init_close(void){}
|
||||
void light_off(void){}
|
||||
void cp_wlan_start(void){}
|
||||
void oil_led_off(void){}
|
||||
void oil_led_on(void){}
|
||||
void vbat_led_on(void){}
|
||||
void vbat_led_off(void){}
|
||||
void SaveMileageData(uint32_t trip_data,uint32_t total_data){}
|
||||
void read_mileage(uint32_t trip_data,uint32_t total_data){}
|
||||
int console_send_atcmd(char* cAtCmd, unsigned short length){}
|
||||
void Phone_book_analysis(void){}
|
||||
void BW_121_Switch(uint8_t type){
|
||||
Set_sys_bt_on_off(type);
|
||||
}
|
||||
void UART3_Type_regression(void){}
|
||||
void UART3_Modification_Type(void){}
|
||||
void carlink_cp_enable(uint8_t type){}
|
||||
void carlink_aa_enable(uint8_t type){}
|
||||
void carlink_ec_enable(uint8_t type){}
|
||||
|
||||
|
||||
// 封装的函数,根据位位置获取对应的值
|
||||
uint8_t getBitValue(uint8_t count, int bitPosition) {
|
||||
return (count >> bitPosition) & 0x1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /*WITH_MVVM*/
|
@ -0,0 +1,110 @@
|
||||
#include "awtk.h"
|
||||
#include "navigator.h"
|
||||
#include "code_protocol.h"
|
||||
|
||||
#define MAX_SIZE 16
|
||||
|
||||
// 初始化链表
|
||||
void initFifoLinkedList(struct FifoLinkedList* list) {
|
||||
list->head = NULL;
|
||||
list->tail = NULL;
|
||||
list->size = 0;
|
||||
}
|
||||
|
||||
// 在链表尾部插入数据
|
||||
void push(struct FifoLinkedList* list, uint32_t data) {
|
||||
printf("push-------------------------data =%d , %04x.\r\n",data,data);
|
||||
//当数据满了之后不再写入数据
|
||||
if (list->size == MAX_SIZE) {
|
||||
printf("Error: The list is full. Cannot push more data.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
|
||||
newNode->data = data;
|
||||
newNode->next = NULL;
|
||||
|
||||
if (list->size == 0) {
|
||||
list->head = list->tail = newNode;
|
||||
} else {
|
||||
list->tail->next = newNode;
|
||||
list->tail = newNode;
|
||||
}
|
||||
|
||||
list->size++;
|
||||
/*
|
||||
//当数据满了之后覆盖之前的数据
|
||||
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
|
||||
newNode->data = data;
|
||||
newNode->next = NULL;
|
||||
|
||||
if (list->size == 0) {
|
||||
list->head = list->tail = newNode;
|
||||
} else {
|
||||
list->tail->next = newNode;
|
||||
list->tail = newNode;
|
||||
}
|
||||
|
||||
if (list->size < 16) {
|
||||
list->size++;
|
||||
} else {
|
||||
// 如果链表大小超过16,则删除头部节点
|
||||
struct Node* temp = list->head;
|
||||
list->head = list->head->next;
|
||||
free(temp);
|
||||
}*/
|
||||
}
|
||||
|
||||
// 从链表头部弹出数据
|
||||
uint16_t pop(struct FifoLinkedList* list) {
|
||||
if (list->size == 0) {
|
||||
printf("Error: The list is empty.\n");
|
||||
return 0; // 返回默认值
|
||||
}
|
||||
struct Node* temp = list->head;
|
||||
uint16_t data = list->head->data;
|
||||
list->head = list->head->next;
|
||||
free(temp);
|
||||
list->size--;
|
||||
return data;
|
||||
}
|
||||
|
||||
// 从链表中取出指定的目标数据并赋值给count
|
||||
void retrieveData(struct FifoLinkedList* list, uint8_t target, uint32_t* count) {
|
||||
struct Node* current = list->head;
|
||||
while (current != NULL) {
|
||||
if (current->data == target) {
|
||||
*count = current->data;
|
||||
printf("Found the target data: %d\n", target);
|
||||
return;
|
||||
}
|
||||
current = current->next;
|
||||
}
|
||||
//printf("The target data is not found in the list.\n");
|
||||
}
|
||||
|
||||
// 打印链表中的数据
|
||||
void printList(struct FifoLinkedList* list) {
|
||||
struct Node* current = list->head;
|
||||
printf("FifoLinkedList: ");
|
||||
while (current != NULL) {
|
||||
printf("%d ", current->data);
|
||||
current = current->next;
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
// int main() {
|
||||
// struct FifoLinkedList fifoList1;
|
||||
// struct FifoLinkedList fifoList2;
|
||||
// initFifoLinkedList(&fifoList1);
|
||||
// initFifoLinkedList(&fifoList2);
|
||||
|
||||
// push(&fifoList1, 123);
|
||||
// push(&fifoList1, 456);
|
||||
// push(&fifoList1, 789);
|
||||
// printList(&fifoList1); // 输出: FifoLinkedList: 123 456 789
|
||||
// pop(&fifoList1);
|
||||
// printList(&fifoList1); // 输出: FifoLinkedList: 456 789
|
||||
// return 0;
|
||||
// }
|
@ -0,0 +1,31 @@
|
||||
#ifndef CODE_PROTOCOL_H
|
||||
#define CODE_PROTOCOL_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tkc/types_def.h"
|
||||
|
||||
// 定义链表节点
|
||||
struct Node {
|
||||
uint32_t data; // 存储的16位数据
|
||||
struct Node* next; // 指向下一个节点的指针
|
||||
};
|
||||
|
||||
// 定义链表结构
|
||||
struct FifoLinkedList {
|
||||
struct Node* head; // 链表头指针
|
||||
struct Node* tail; // 链表尾指针
|
||||
int size; // 链表当前大小
|
||||
};
|
||||
|
||||
void initFifoLinkedList(struct FifoLinkedList* list);
|
||||
void push(struct FifoLinkedList* list, uint32_t data);
|
||||
uint16_t pop(struct FifoLinkedList* list);
|
||||
void printList(struct FifoLinkedList* list);
|
||||
void retrieveData(struct FifoLinkedList* list, uint8_t target, uint32_t* count);
|
||||
|
||||
extern struct FifoLinkedList code_fifoList1;
|
||||
extern struct FifoLinkedList code_fifoList2;
|
||||
#endif
|
@ -0,0 +1,324 @@
|
||||
#include "awtk.h"
|
||||
#include "navigator.h"
|
||||
#include "navigator.h"
|
||||
#include "data_port.h"
|
||||
#include "user_data.h"
|
||||
#include "universal.h"
|
||||
#include "data_communication_send.h"
|
||||
#include "moto_config.h"
|
||||
|
||||
unsigned char time_software_request[9] = {0xAA,0x06,0x01,0x04,0,0,0,0,0x0c};
|
||||
unsigned char ota_request[8] = {0x7e,0x00,0x05,0x02,0x03,0x01,0x00,0x01};
|
||||
unsigned char defect_code_request[9] = {0xAA,0x06,0x04,0x04,0,0,0,0,0x0c};
|
||||
unsigned char trip_reset[9] = {0xAA,0x06,0x03,0x04,0,0,0,0,0x07};
|
||||
unsigned char time_buffer[13] = {0xAA,0x06,0x02,0x04,0,0,0,0,0,0,0,0};
|
||||
unsigned char wifi_buffer[6] = {0xAA,0x03,0x08,0x01,0,0};
|
||||
|
||||
uint8_t wifi_flag = 0;
|
||||
|
||||
extern uint32_t tire_front_time;
|
||||
extern uint32_t tire_rear_time;
|
||||
extern unsigned char time_buffer[13];
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
time_software_request[4] = Get_sys_softwar_host();
|
||||
time_software_request[5] = Get_sys_softwar_order();
|
||||
|
||||
uint8_t count = 0;
|
||||
for(uint8_t i=0;i<6;i++){
|
||||
count += time_software_request[2+i];
|
||||
}
|
||||
time_software_request[8] = count;
|
||||
|
||||
TXCMD_Other_Set(time_software_request,9);
|
||||
|
||||
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
|
||||
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;
|
||||
ota_request[6] = Get_sys_softwar_host();
|
||||
ota_request[7] = Get_sys_softwar_order();
|
||||
// vTaskDelay(100);
|
||||
#ifdef AMT630HV100
|
||||
vTaskDelay(100);
|
||||
#else
|
||||
sleep_ms(100);
|
||||
#endif
|
||||
TXCMD_Other_Set(ota_request,8);
|
||||
}
|
||||
|
||||
//发送当前故障码+历史故障码 有数据更新才会发送
|
||||
void Send_defect_code(void){
|
||||
|
||||
defect_code_request[4] = custom_data.now_defect_code>>8&0xFF;
|
||||
defect_code_request[5] = custom_data.now_defect_code&0xFF;
|
||||
defect_code_request[6] = custom_data.his_defect_code>>8&0xFF;
|
||||
defect_code_request[7] = custom_data.his_defect_code&0xFF;
|
||||
|
||||
uint8_t count = 0;
|
||||
for(uint8_t i=0;i<6;i++){
|
||||
count += defect_code_request[2+i];
|
||||
}
|
||||
defect_code_request[8] = count;
|
||||
|
||||
TXCMD_Other_Set(defect_code_request,9);
|
||||
}
|
||||
|
||||
|
||||
void Send_trip_reset(void){
|
||||
DEBUG_PRINT("trip reset .\r\n");
|
||||
TXCMD_Other_Set(trip_reset,9);
|
||||
Set_sys_odo_reset(5);
|
||||
}
|
||||
|
||||
|
||||
void Send_bt_time(void){
|
||||
TXCMD_Other_Set(time_buffer,9);
|
||||
Set_sys_ttrb_time(5);
|
||||
}
|
||||
|
||||
|
||||
void Send_list_set_time(uint32_t sum){
|
||||
uint32_t sum1,sum2,sum3,sum4;
|
||||
uint8_t count=0;
|
||||
printf("sum1 = %d , %08x.\n",sum,sum);
|
||||
sum4=sum & 0xFF;
|
||||
sum3=sum>>8 & 0xFF;
|
||||
sum2=sum>>16 & 0xFF;
|
||||
sum1=sum>>24 & 0xFF;
|
||||
|
||||
time_buffer[0] = 0xAA;//
|
||||
time_buffer[1] = 0x06;//命令长度
|
||||
time_buffer[2] = 0x02;//时间指令
|
||||
time_buffer[3] = 0x04;//TLV结构
|
||||
|
||||
time_buffer[4] = sum1;
|
||||
time_buffer[5] = sum2;
|
||||
time_buffer[6] = sum3;
|
||||
time_buffer[7] = sum4;
|
||||
|
||||
count = 0;
|
||||
for(uint8_t i=0;i<6;i++){
|
||||
count += time_buffer[2+i];
|
||||
}
|
||||
time_buffer[8] = count;
|
||||
|
||||
Send_bt_time();
|
||||
DEBUG_PRINT("start send time information.\r\n");
|
||||
#ifdef AMT630HV100
|
||||
vTaskDelay(5);
|
||||
#else
|
||||
sleep_ms(5);
|
||||
#endif
|
||||
DEBUG_PRINT("send time information ok.\r\n");
|
||||
}
|
||||
|
||||
void send_wifi_set_time(int time_buf[]){
|
||||
date_time_t dt;
|
||||
date_time_init(&dt);
|
||||
uint32_t sum;
|
||||
//uint8_t sum1,sum2,sum3,sum4;
|
||||
dt.year = time_buf[0];
|
||||
dt.month = time_buf[1];
|
||||
dt.wday = time_buf[2];
|
||||
dt.hour = time_buf[3];
|
||||
dt.minute = time_buf[4];
|
||||
dt.second = time_buf[5];
|
||||
date_time_set(&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;
|
||||
|
||||
sum = fml_time_to_stamp(check_buffer);
|
||||
sum += 28800;
|
||||
Send_list_set_time(sum);
|
||||
}
|
||||
|
||||
|
||||
//获取ap名字
|
||||
void ap_get_ssid(char *strQrText, char *text) {
|
||||
int len = strlen(strQrText);
|
||||
int i;
|
||||
int ssidIndex = -1;
|
||||
|
||||
// 找到 "ssid=" 的位置
|
||||
for (i = 0; i < len - 5; i++) {
|
||||
if (strncmp(strQrText + i, "ssid=", 5) == 0) {
|
||||
ssidIndex = i + 5;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ssidIndex != -1) {
|
||||
int j = ssidIndex;
|
||||
while (j < len && strQrText[j] != '&') {
|
||||
text[j - ssidIndex] = strQrText[j];
|
||||
j++;
|
||||
}
|
||||
text[j - ssidIndex] = '\0'; // 添加字符串结束符
|
||||
} else {
|
||||
strcpy(text, ""); // 如果未找到 "ssid=",则将 text 置为空字符串
|
||||
}
|
||||
}
|
||||
//获取ap密码
|
||||
void ap_get_pwd(char *strQrText, char *text) {
|
||||
int len = strlen(strQrText);
|
||||
int i;
|
||||
int pwdIndex = -1;
|
||||
|
||||
// 找到 "pwd=" 的位置
|
||||
for (i = 0; i < len - 4; i++) {
|
||||
if (strncmp(strQrText + i, "pwd=", 4) == 0) {
|
||||
pwdIndex = i + 4;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (pwdIndex != -1) {
|
||||
int j = pwdIndex;
|
||||
while (j < len && strQrText[j] != '&') {
|
||||
text[j - pwdIndex] = strQrText[j];
|
||||
j++;
|
||||
}
|
||||
text[j - pwdIndex] = '\0'; // 添加字符串结束符
|
||||
} else {
|
||||
strcpy(text, ""); // 如果未找到 "pwd=",则将 text 置为空字符串
|
||||
}
|
||||
}
|
||||
extern char strQrText[200];
|
||||
|
||||
#define FRAMELEN 100
|
||||
|
||||
|
||||
uint8_t GetWifiName(unsigned char *pBuff)
|
||||
{
|
||||
uint8_t data_len = 0;
|
||||
uint8_t count = 0;
|
||||
memset(pBuff, 0, FRAMELEN); //buff初始化
|
||||
pBuff[0] = 0xAA;
|
||||
pBuff[2] = 0x07;
|
||||
|
||||
char tmpStr[50] = {0};
|
||||
#if (MOTO_WARE_HOSE == MOTO_ICMX_A580A)
|
||||
strcpy(tmpStr, strQrText);
|
||||
#elif (MOTO_WARE_HOSE == MOTO_ICMX_A590A)
|
||||
ap_get_ssid(strQrText, tmpStr);
|
||||
#endif
|
||||
|
||||
//获取长度
|
||||
uint8_t ssid_len = strlen(tmpStr);
|
||||
// printf("ssid_len=%d,data>",ssid_len);
|
||||
for(data_len=0;data_len<ssid_len;data_len++){
|
||||
pBuff[4+data_len] = tmpStr[data_len];
|
||||
}
|
||||
// printf("\r\n");
|
||||
|
||||
//填充完成,填写帧数据长度
|
||||
pBuff[3] = data_len;
|
||||
pBuff[1] = pBuff[3]+2;
|
||||
|
||||
|
||||
count = 0;
|
||||
for(uint8_t i=0;i<(data_len+2);i++){
|
||||
count += pBuff[2+i];
|
||||
}
|
||||
|
||||
pBuff[4+data_len] = count;
|
||||
|
||||
return (pBuff[1]+3);
|
||||
}
|
||||
|
||||
//发送WIFI信息
|
||||
void Send_wifi_name(void){
|
||||
unsigned char uarttx[FRAMELEN];
|
||||
uint8_t len = 0;
|
||||
|
||||
len = GetWifiName(uarttx);
|
||||
if(Get_sys_power_on_self_test() && len>5)
|
||||
TXCMD_Other_Set(uarttx,len);
|
||||
}
|
||||
|
||||
//发送WIFI界面操作状态
|
||||
void Send_wifi_win_state(uint8_t state){
|
||||
uint8_t len = 0;
|
||||
|
||||
if(state){//开启操作
|
||||
if(Get_sys_veer_velocity()){//有转速回复失败
|
||||
wifi_buffer[4] = 0x0;
|
||||
}else{//打开界面回复成功 或 当前界面若打开 回复成功
|
||||
wifi_buffer[4] = 0x1;
|
||||
if(!wifi_flag)
|
||||
wifi_flag = 1;
|
||||
}
|
||||
}else{//关闭操作
|
||||
if(wifi_flag){//若当前界面打开 则关闭界面
|
||||
wifi_flag = 10;
|
||||
printf("app>>wifi close.\r\n");
|
||||
wifi_buffer[4] = 0x1;
|
||||
}else{//若当前界面是关闭状态 则回复失败
|
||||
wifi_buffer[4] = 0x1;
|
||||
}
|
||||
}
|
||||
|
||||
//校验和
|
||||
uint8_t count = 0;
|
||||
for(uint8_t i=0;i<3;i++){
|
||||
count += wifi_buffer[2+i];
|
||||
}
|
||||
wifi_buffer[5] = count;
|
||||
|
||||
TXCMD_Other_Set(wifi_buffer,6);
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
#ifndef DATA_COMMUNICATION_H
|
||||
#define DATA_COMMUNICATION_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tkc/types_def.h"
|
||||
|
||||
void Send_software_version(void);
|
||||
void Send_tire_pressure_information(void);
|
||||
//发送OTA升级判断
|
||||
void Send_ota_state(uint8_t state);
|
||||
//发送当前故障码+历史故障码 有数据更新才会发送
|
||||
void Send_defect_code(void);
|
||||
void Send_trip_reset(void);
|
||||
void Send_bt_time(void);
|
||||
void Send_list_set_time(uint32_t sum);
|
||||
void send_wifi_set_time(int time_buf[]);
|
||||
|
||||
void Send_wifi_name(void);
|
||||
void Send_wifi_win_state(uint8_t state);
|
||||
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,228 @@
|
||||
#ifndef DATA_PORT_H
|
||||
#define DATA_PORT_H
|
||||
#include "user_data.h"
|
||||
#include "moto_config.h"
|
||||
#include "tkc/types_def.h"
|
||||
//extern daily_data_t custom_data;
|
||||
|
||||
uint8_t Get_sys_language(void);
|
||||
uint8_t Get_sys_unit(void);
|
||||
uint8_t Get_sys_light_value(void);
|
||||
uint8_t Get_sys_theme(void);
|
||||
uint8_t Get_sys_theme_state(void);
|
||||
uint8_t Get_sys_bt_on_off(void);
|
||||
uint8_t Get_sys_trip_unit(void);
|
||||
uint16_t Get_sys_veer_velocity(void);
|
||||
uint8_t Get_sys_wireless(void);
|
||||
uint16_t Get_sys_grade(void);
|
||||
uint16_t Get_sys_velocity(void);
|
||||
uint16_t Get_sys_temp(void);
|
||||
uint16_t Get_sys_gas(void); //当前得到的油量为阻值
|
||||
uint8_t Get_sys_veer(void);
|
||||
uint8_t Get_sys_veer_hint(void);
|
||||
uint8_t Get_sys_lamplight(void);
|
||||
uint32_t Get_sys_trip_mileage(void);
|
||||
uint32_t Get_sys_total_mileage(void);
|
||||
uint8_t Get_sys_warning_engine(void);
|
||||
uint8_t Get_sys_warning_machine_oil(void);
|
||||
uint8_t Get_sys_warning_fan(void);
|
||||
uint8_t Get_sys_warning_abs(void);
|
||||
uint8_t Get_sys_warning_tcs(void);
|
||||
uint8_t Get_sys_warning_neutral_gear(void);
|
||||
float Get_sys_voltage(void);
|
||||
uint8_t Get_sys_light_perception_value(void);
|
||||
|
||||
void Set_sys_upgrade_Flag(uint8_t value);
|
||||
uint8_t Get_sys_upgrade_Flag(void);
|
||||
void Set_sys_bt_upgrade(uint8_t value);
|
||||
uint8_t Get_sys_bt_upgrade(void);
|
||||
|
||||
uint8_t Get_sys_warning_maintenance(void);
|
||||
void Set_sys_warning_maintenance(uint8_t value);
|
||||
|
||||
uint8_t Get_sys_warning_tire(void);
|
||||
void Set_sys_warning_tire(uint8_t value);
|
||||
|
||||
uint8_t Get_sys_display_theme(void);
|
||||
void Set_sys_display_theme(uint8_t value);
|
||||
|
||||
void Set_sys_demo_position(uint8_t value);
|
||||
|
||||
void Set_sys_power_on_self_test(uint8_t value);
|
||||
uint8_t Get_sys_power_on_self_test(void);
|
||||
uint8_t Get_sys_light(void);
|
||||
void Set_sys_light(uint8_t value);
|
||||
char *Get_sys_uuid(void);
|
||||
char *Get_sys_bt_name(void);
|
||||
uint32_t Get_sys_now_defect_code(void);
|
||||
uint32_t Get_sys_his_defect_code(void);
|
||||
void Set_sys_his_defect_code(uint32_t value);
|
||||
void Set_sys_now_defect_code(uint32_t value);
|
||||
|
||||
void Set_sys_language(uint8_t value);//语言
|
||||
void Set_sys_unit(uint8_t value);
|
||||
void Set_sys_light_value(uint8_t value);
|
||||
void Set_sys_theme(uint8_t value);
|
||||
void Set_sys_theme_state(uint8_t value);
|
||||
void Set_sys_bt_on_off(uint8_t value);
|
||||
void Set_sys_trip_unit(uint8_t value);
|
||||
|
||||
void Set_sys_wireless(uint8_t value);
|
||||
void Set_sys_grade(uint16_t value);
|
||||
void Set_sys_velocity(uint16_t value);
|
||||
void Set_sys_temp(uint16_t value);
|
||||
void Set_sys_gas(uint16_t value);
|
||||
void Set_sys_veer(uint8_t value);
|
||||
void Set_sys_veer_hint(uint8_t value);
|
||||
void Set_sys_lamplight(uint8_t value);
|
||||
void Set_sys_trip_mileage(uint32_t value);
|
||||
void Set_sys_total_mileage(uint32_t value);
|
||||
void Set_sys_veer_velocity(uint16_t value);
|
||||
//void Set_sys_maintenance_mileage(double value);
|
||||
//void Set_sys_total_mileage(double value);
|
||||
void Set_sys_warning_engine(uint8_t value);
|
||||
void Set_sys_warning_machine_oil(uint8_t value);
|
||||
void Set_sys_warning_fan(uint8_t value);
|
||||
void Set_sys_warning_abs(uint8_t value);
|
||||
void Set_sys_warning_tcs(uint8_t value);
|
||||
void Set_sys_warning_neutral_gear(uint8_t value);
|
||||
void Set_sys_voltage(float value);
|
||||
void Set_sys_light_perception_value(uint8_t value);
|
||||
|
||||
uint8_t Get_sys_return_demo(void);
|
||||
void Set_sys_return_demo(uint8_t value);
|
||||
|
||||
|
||||
void Set_sys_bt_data_inheritance(uint8_t value);
|
||||
uint8_t Get_sys_bt_data_inheritance(void);
|
||||
|
||||
void Set_sys_ttrb(uint8_t value);
|
||||
uint8_t Get_sys_ttrb(void);
|
||||
void Set_sys_tire_pressure_mesg(uint8_t value);
|
||||
uint8_t Get_sys_tire_pressure_mesg(void);
|
||||
void Set_sys_ttrb_time(uint8_t value);
|
||||
uint8_t Get_sys_ttrb_time(void);
|
||||
void Set_sys_odo_reset(uint8_t value);
|
||||
uint8_t Get_sys_odo_reset(void);
|
||||
void Set_sys_fault_code(uint8_t value);
|
||||
uint8_t Get_sys_fault_code(void);
|
||||
|
||||
uint16_t Get_sys_display_velocity(void);
|
||||
void Set_sys_display_velocity(uint16_t value);
|
||||
|
||||
uint16_t Get_sys_display_veer_velocity(void);
|
||||
void Set_sys_display_veer_velocity(uint16_t value);
|
||||
|
||||
uint8_t Get_sys_bt_connect_state(void);
|
||||
void Set_sys_bt_connect_state(uint8_t value);
|
||||
|
||||
ret_t ttrb_mesg(void);
|
||||
ret_t tire_pressure_mesg(void);
|
||||
ret_t ttrb_time_mesg(void);
|
||||
ret_t odo_reset_mesg(void);
|
||||
ret_t demo_position_mesg(void);
|
||||
ret_t fault_code_mesg(void);
|
||||
|
||||
uint8_t Get_sys_softwar_host(void);//返回软件主版本号
|
||||
uint8_t Get_sys_softwar_order(void);//返回软件次版本号
|
||||
|
||||
|
||||
uint16_t Get_sys_plan(void);//返回升级总进度
|
||||
uint16_t Get_sys_pace(void);//返回升级当前进度
|
||||
uint8_t Get_sys_upgrade(void);//内存拷贝标志
|
||||
void Set_sys_plan(uint16_t value);
|
||||
void Set_sys_pace(uint16_t value);
|
||||
void Set_sys_upgrade(uint8_t value);
|
||||
|
||||
void Uart_set_time(int time[]);//设置时间
|
||||
|
||||
void Key_Distinction(uint8_t type , int key);
|
||||
|
||||
//光感接口
|
||||
uint16_t Get_sys_sensor_light(void);
|
||||
void Set_sys_sensor_light(uint16_t value);
|
||||
uint8_t Get_sys_sensor_switch(void);
|
||||
void update_sensor_switch(void);
|
||||
//设备数据接口
|
||||
char *Get_device_equipment_num(void);
|
||||
void Set_device_equipment_num(char *value);
|
||||
char *Get_device_produce_num(void);
|
||||
void Set_device_produce_num(char *value);
|
||||
char *Get_device_voucher(void);
|
||||
void Set_device_voucher(char *value);
|
||||
char *Get_device_mac(void);
|
||||
void Set_device_mac(char *value);
|
||||
|
||||
|
||||
uint8_t Get_device_client_num(void);
|
||||
void Set_device_client_num(uint8_t value);
|
||||
uint8_t Get_device_moto_type(void);
|
||||
void Set_device_moto_type(uint8_t value);
|
||||
uint8_t Get_device_screen_type(void);
|
||||
void Set_device_screen_type(uint8_t value);
|
||||
uint8_t Get_device_ability(void);
|
||||
void Set_device_ability(uint8_t value);
|
||||
// BottomData *Get_device_bottom_data(void);
|
||||
// void Set_device_bottom_data(BottomData * value);
|
||||
uint8_t Get_device_bottom_id(void);
|
||||
void Set_device_bottom_id(uint8_t value);
|
||||
uint8_t Get_device_bottom_softwar_host(void);
|
||||
void Set_device_bottom_softwar_host(uint8_t value);
|
||||
uint8_t Get_device_bottom_softwar_order(void);
|
||||
void Set_device_bottom_softwar_order(uint8_t value);
|
||||
|
||||
uint8_t Get_device_hardware_version_host(void);
|
||||
void Set_device_hardware_version_host(uint8_t value);
|
||||
uint8_t Get_device_hardware_version_order(void);
|
||||
void Set_device_hardware_version_order(uint8_t value);
|
||||
|
||||
|
||||
|
||||
//通话状态
|
||||
uint8_t Get_sys_call_key_state(void);
|
||||
void Set_sys_call_key_state(uint8_t value);
|
||||
uint8_t Get_sys_call_display(void);
|
||||
void Set_sys_call_display(uint8_t value);
|
||||
uint8_t Get_sys_call_state(void);
|
||||
void Set_sys_call_state(uint8_t value);
|
||||
char *Get_sys_call_number(void);
|
||||
void Set_sys_call_number(char *value);
|
||||
|
||||
char *Get_sys_call_renumber(void);
|
||||
void Set_sys_call_renumber(char *value);
|
||||
|
||||
|
||||
//通话时间
|
||||
uint32_t Get_sys_call_time(void);
|
||||
void Set_sys_call_time(uint32_t value);
|
||||
|
||||
//前后胎压
|
||||
Pressure_t Get_sys_front_pressure(void);
|
||||
Pressure_t Get_sys_rear_pressure(void);
|
||||
void Set_sys_front_pressure(Pressure_t value);
|
||||
void Set_sys_rear_pressure(Pressure_t value);
|
||||
|
||||
//胎压信号
|
||||
void Set_sys_pressure_signal(uint8_t value);
|
||||
uint8_t Get_sys_pressure_signal(void);
|
||||
|
||||
//保养里程
|
||||
uint32_t Get_sys_maintenance_mileage(void);
|
||||
void Set_sys_maintenance_mileage(uint32_t value);
|
||||
uint32_t Get_sys_start_mileage(void);
|
||||
void Set_sys_start_mileage(uint32_t value);
|
||||
|
||||
ret_t mileage_detection_mesg(void);
|
||||
|
||||
uint16_t Get_sys_can_temp(void);//温度
|
||||
void Set_sys_can_temp(uint16_t value);
|
||||
|
||||
uint8_t Get_sys_wifi_state(void);
|
||||
void Set_sys_wifi_state(uint8_t value);
|
||||
|
||||
uint8_t Get_sys_quickly_arrange(void);//快排功能
|
||||
void Set_sys_quickly_arrange(uint8_t value);
|
||||
uint8_t Get_sys_quickly_arrange_state(void);//快排功能
|
||||
void Set_sys_quickly_arrange_state(uint8_t value);
|
||||
|
||||
#endif /*DATA_PORT_H*/
|
@ -0,0 +1,282 @@
|
||||
#ifndef MOTO_CONFIG_H
|
||||
#define MOTO_CONFIG_H
|
||||
|
||||
// #define AMT630HV100 1 //控制模拟器和开发板运行 注释掉模拟器可用 打开开发板可用
|
||||
|
||||
|
||||
#define MOTO_ICMX_GB518_A270M 1
|
||||
#define MOTO_ICMX_GB518_A270M_KP 2
|
||||
#define MOTO_ICMX_GB518_A270S 3
|
||||
|
||||
#define MOTO_WARE_HOSE MOTO_ICMX_GB518_A270S
|
||||
|
||||
#if (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270M)
|
||||
#define SOFT_WARE_HOST 1
|
||||
#define SOFT_WARE_ORDER 17
|
||||
#define HARD_WARE "MXC-A27-M V4.0"
|
||||
#define HARD_WARE_LABEL "4.0"
|
||||
#define KEY_EXCHANGE 1
|
||||
|
||||
#elif (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270M_KP)
|
||||
#define SOFT_WARE_HOST 0
|
||||
#define SOFT_WARE_ORDER 4
|
||||
#define HARD_WARE "MXC-A27-M-KP V4.0"
|
||||
#define HARD_WARE_LABEL "4.0"
|
||||
#define KEY_EXCHANGE 1
|
||||
#define UI_VIEW_QUICKLY_ARRANGE 1//快排功能宏
|
||||
|
||||
|
||||
#elif (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270S)
|
||||
#define SOFT_WARE_HOST 0
|
||||
#define SOFT_WARE_ORDER 2
|
||||
#define HARD_WARE "MXC-A27-M V4.5"
|
||||
#define HARD_WARE_LABEL "4.5"
|
||||
#define KEY_EXCHANGE 1
|
||||
|
||||
|
||||
#else
|
||||
#define SOFT_WARE_HOST 0
|
||||
#define SOFT_WARE_ORDER 1
|
||||
#define HARD_WARE "MXC-A27-A V4.0"
|
||||
#define HARD_WARE_LABEL "4.0"
|
||||
|
||||
#endif
|
||||
//#define SOFT_WARE "MXC-A27-A V0.8"
|
||||
// #define HARD_WARE "MXC-A27-A V4.0"
|
||||
// #define HARD_WARE_LABEL "4.0"
|
||||
#define LOW_BRIGHTNESS_MODE 20
|
||||
|
||||
//胎压功能宏
|
||||
#define UI_VIEW_TIRE_PRESSURE 1
|
||||
|
||||
#define CALL_BW121_KEY 1
|
||||
|
||||
//数据通道选择 can和蓝牙
|
||||
#define DATA_CAN 1
|
||||
#ifdef DATA_CAN
|
||||
//速度通道
|
||||
#define SPEED_DATA_CAN 1
|
||||
#else
|
||||
|
||||
#endif
|
||||
|
||||
// 打印
|
||||
// #define DEBUG 1
|
||||
#ifdef DEBUG
|
||||
#define DEBUG_PRINT(fmt, ...) printf(fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
#define DEBUG_PRINT(fmt, ...)
|
||||
#endif
|
||||
/**
|
||||
* A270D客户需求
|
||||
* 范围
|
||||
* kpa 前185-250kpa 后190-250
|
||||
* 单位换算
|
||||
* bar 前1.85-2.50 后1.90-2.50
|
||||
* psi 前26.8-36.2 后27.5-36.2 268-362 275-362
|
||||
* 广播收到的胎压数据单位为0.1psi
|
||||
* 即 0xAF =>175 => 17.5 17.5psi-14.6psi = 2.9psi
|
||||
* 换算需要使用2.9psi进行换算
|
||||
* 换算公式
|
||||
* 1 磅力/平方英寸(psi)=0.06894757 巴(bar) 取舍1psi=0.069bar
|
||||
* 1 磅力/平方英寸=6.894757 千帕 取舍1psi=6.9kpa
|
||||
* 1 千帕=0.1450377 磅力/平方英寸 1kpa = 0.145psi
|
||||
* 1 千帕=0.01 巴 1kpa = 0.01bar
|
||||
*/
|
||||
//前胎压阈值限制
|
||||
#define TIRE_PRESSURE_FRONT_UPPER 362+146
|
||||
#define TIRE_PRESSURE_FRONT_LOWER 268+146
|
||||
//后胎压阈值限制
|
||||
#define TIRE_PRESSURE_REAR_UPPER 362+146
|
||||
#define TIRE_PRESSURE_REAR_LOWER 275+146
|
||||
|
||||
// /** 油量限制 低于16°显示一格并图标闪烁 高于80%显示满格
|
||||
// * 6格
|
||||
// * 一格平均占比16% 最后剩余一格时占比20%
|
||||
// * 低于20%显示最后一格
|
||||
// * 低于15%图标闪烁
|
||||
// * 高于80%显示满格
|
||||
// */
|
||||
// #define UI_TORAL6_GRIDS_OIL_WARNING 15
|
||||
// #define UI_TORAL6_GRIDS_OIL_1 20
|
||||
// #define UI_TORAL6_GRIDS_OIL_2 32
|
||||
// #define UI_TORAL6_GRIDS_OIL_3 48
|
||||
// #define UI_TORAL6_GRIDS_OIL_4 64
|
||||
// #define UI_TORAL6_GRIDS_OIL_5 80
|
||||
#define UI_TORAL6_GRIDS_OIL_WARNING 0
|
||||
#define UI_TORAL6_GRIDS_OIL_0 0
|
||||
#define UI_TORAL6_GRIDS_OIL_1 20
|
||||
#define UI_TORAL6_GRIDS_OIL_2 40
|
||||
#define UI_TORAL6_GRIDS_OIL_3 60
|
||||
#define UI_TORAL6_GRIDS_OIL_4 80
|
||||
#define UI_TORAL6_GRIDS_OIL_5 99
|
||||
|
||||
// /** 温度限制 高于90°显示满格并图标闪烁
|
||||
// * 6格
|
||||
// * 一格占比10℃
|
||||
// * 低于60℃%显示一格
|
||||
// * 高于110℃显示满格
|
||||
// * 高于116℃(包括)图标闪烁
|
||||
// */
|
||||
// #define UI_TORAL6_GRIDS_TEMP_WARNING 116
|
||||
// #define UI_TORAL6_GRIDS_TEMP_0 65
|
||||
// #define UI_TORAL6_GRIDS_TEMP_1 70
|
||||
// #define UI_TORAL6_GRIDS_TEMP_2 80
|
||||
// #define UI_TORAL6_GRIDS_TEMP_3 90
|
||||
// #define UI_TORAL6_GRIDS_TEMP_4 100
|
||||
// #define UI_TORAL6_GRIDS_TEMP_5 110
|
||||
#define UI_TORAL6_GRIDS_TEMP_WARNING 116
|
||||
#define UI_TORAL6_GRIDS_TEMP_0 52
|
||||
#define UI_TORAL6_GRIDS_TEMP_1 66
|
||||
#define UI_TORAL6_GRIDS_TEMP_2 76
|
||||
#define UI_TORAL6_GRIDS_TEMP_3 93
|
||||
#define UI_TORAL6_GRIDS_TEMP_4 103
|
||||
#define UI_TORAL6_GRIDS_TEMP_5 114
|
||||
#define UI_TORAL6_GRIDS_TEMP_6 114
|
||||
|
||||
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_WARNING 116
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_0 45
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_1 57
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_2 69
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_3 81
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_4 93
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_5 105
|
||||
#define UI_CAN_TORAL6_GRIDS_TEMP_6 116
|
||||
|
||||
|
||||
/**转速限制(客户需求)
|
||||
* 转速保持在15 不需要上下抖动
|
||||
*
|
||||
*/
|
||||
#define SPEED_STABILTY_LIMIT_LOWER 13
|
||||
#define SPEED_STABILTY_LIMIT 15
|
||||
#define SPEED_STABILTY_LIMIT_UPPER 18
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//一些通用运算
|
||||
#define JUDGE_BIN_0(data) (data % 2 == 1)
|
||||
#define JUDGE_BIN_1(data) (data % 4 > 1)
|
||||
#define JUDGE_BIN_2(data) (data % 8 > 3)
|
||||
#define JUDGE_BIN_3(data) (data % 16 > 7)
|
||||
#define JUDGE_BIN_4(data) (data % 32 > 15)
|
||||
#define JUDGE_BIN_5(data) (data % 64 > 31)
|
||||
#define JUDGE_BIN_6(data) (data % 128 > 63)
|
||||
#define JUDGE_BIN_7(data) (data % 256 > 127)
|
||||
//当前模式
|
||||
#define DEMO_UI_SELF_START 50//开始自检标志
|
||||
#define DEMO_UI_SELF_CHECKING 75//自检中标志
|
||||
#define DEMO_UI_SELF_FINISH 100//正常模式
|
||||
#define DEMO_UI_SELF_UPGRADE_BEGINS 150//升级模式
|
||||
//转速arc速率
|
||||
#define ANIMATE_SPEED 50
|
||||
#define ANIMATE_SPEED_VALUE 100
|
||||
#define ANIMATE_SPEED_LITTLE_VALUE 200
|
||||
//数组大小 水温 油量 亮度
|
||||
#define SAVE_DATA_SIZE 10
|
||||
|
||||
|
||||
|
||||
|
||||
#define TK_KEY_ENTER
|
||||
/******* 主题界面UI切换 ***********/
|
||||
#define RESOURCE_OFFSET_UI_BG_COLOR 0
|
||||
#define RESOURCE_OFFSET_UI_BG 1
|
||||
#define RESOURCE_OFFSET_VEER_VELOCITY 2
|
||||
#define RESOURCE_OFFSET_VEER_VELOCITY_ARC_IMG 3
|
||||
|
||||
#define RESOURCE_OFFSET_SPEED 4
|
||||
#define RESOURCE_OFFSET_CLOCK 14
|
||||
#define RESOURCE_OFFSET_CLOCK_COLON 24
|
||||
#define RESOURCE_OFFSET_GRADE 25
|
||||
#define RESOURCE_OFFSET_GRADE_BG 33
|
||||
#define RESOURCE_OFFSET_OIL 35
|
||||
#define RESOURCE_OFFSET_OIL_BG 42
|
||||
#define RESOURCE_OFFSET_TEMP 44
|
||||
#define RESOURCE_OFFSET_TEMP_BG 51
|
||||
#define RESOURCE_OFFSET_CELL 54
|
||||
#define RESOURCE_OFFSET_SPEED_UNIT 56
|
||||
#define RESOURCE_OFFSET_TEXT_COLOR 58
|
||||
#define RESOURCE_OFFSET_SERVICE 59
|
||||
|
||||
#define RESOURCE_IMG_NORMAL 0
|
||||
#define RESOURCE_IMG_ERROR 1
|
||||
#define RESOURCE_IMG_NULL 2
|
||||
|
||||
#define RESOURCE_SPEED_UNIT_KM 0
|
||||
#define RESOURCE_SPEED_UNIT_MPH 1
|
||||
|
||||
#define RESOURCE_UI_BLACK 0
|
||||
#define RESOURCE_UI_WHITE 60
|
||||
|
||||
/******* list界面UI切换 ***********/
|
||||
#define RESOURCE_LIST_BLACK 0
|
||||
#define RESOURCE_LIST_WHITE 11
|
||||
|
||||
#define RESOURCE_OFFSET_LIST_BG 0
|
||||
#define RESOURCE_OFFSET_LIST_TITLE 1
|
||||
#define RESOURCE_OFFSET_LIST_TITLE_BG 2
|
||||
#define RESOURCE_OFFSET_LIST_SET_BTN 3
|
||||
#define RESOURCE_OFFSET_LIST_INFORMATION_BTN 4
|
||||
#define RESOURCE_OFFSET_LIST_THEME_BTN 5
|
||||
#define RESOURCE_OFFSET_LIST_LIGHT_BTN 6
|
||||
#define RESOURCE_OFFSET_SET_BTN 7
|
||||
#define RESOURCE_OFFSET_SET_BTN_IMG 8
|
||||
#define RESOURCE_OFFSET_SET_BTN_LABEL 9
|
||||
#define RESOURCE_OFFSET_SET_BTN_SWITCH 10
|
||||
|
||||
|
||||
|
||||
|
||||
#define FLOCKER_IMG_DISPLAY(data) (data%10==0?1:0)
|
||||
#define FLOCKER_IMG_HIDE(data) (data%10==5?1:0)
|
||||
|
||||
#define GRADE_NULL 0
|
||||
#define GRADE_BG_NUAMAL 0
|
||||
#define GRADE_BG_NULL 1
|
||||
|
||||
// #define ANIMATE_SPEED 50
|
||||
// #define ANIMATE_SPEED_VALUE 100
|
||||
// #define ANIMATE_SPEED_LITTLE_VALUE 200
|
||||
|
||||
// #define COLOR_USER_BLUE "0xff23015e"//客户蓝色
|
||||
#define COLOR_USER_BLUE "0xff5e0123"//客户蓝色1
|
||||
#define COLOR_USER_BLUE2 "0xffDDFF77"//客户蓝色2 用于通话
|
||||
#define COLOR_BLACK "0xff000000"//黑色
|
||||
#define COLOR_WHITE "0xffffffff"//白色
|
||||
#define COLOR_RED "0xff0000ff"//红色
|
||||
#define COLOR_GREEN "0xff00ff00"//绿色
|
||||
#define COLOR_ORANGE "0xffff6138"//橙色
|
||||
// FF6138//橙色
|
||||
#define OUTPUT_COLOR_USER_BLUE str_to_num(COLOR_USER_BLUE)
|
||||
#define OUTPUT_COLOR_USER_BLACK str_to_num(COLOR_BLACK)
|
||||
#define OUTPUT_COLOR_BLACK str_to_num(COLOR_BLACK)
|
||||
#define OUTPUT_COLOR_ORANGE str_to_num(COLOR_ORANGE)
|
||||
#define OUTPUT_COLOR_WHITE str_to_num(COLOR_WHITE)
|
||||
#define OUTPUT_COLOR_RED str_to_num(COLOR_RED)
|
||||
#define OUTPUT_COLOR_GREEN str_to_num(COLOR_GREEN)
|
||||
|
||||
#define TIME_TO_NUM(num) int(num%5)
|
||||
#define OUTPUT_COLOR(data) str_to_num(data)
|
||||
|
||||
|
||||
//亮度统一处理
|
||||
#define LIGHTGEARS 0
|
||||
#define LIGHTVALUE 1
|
||||
#define LIGHT_PROPORTION_OF_CONTROL 12
|
||||
#define LIGHTCALUEDATA(data) (data*LIGHT_PROPORTION_OF_CONTROL)
|
||||
#define LIGHTVALUEDATAONE(data) (data*LIGHT_PROPORTION_OF_CONTROL*10000/25)
|
||||
#define LIGHTVALUEDATATWO(data) (data*10000/25)
|
||||
#define NORMAL_LIGHTVALUEDATAONE(data) (data*10*10000)
|
||||
#define NORMAL_LIGHTVALUEDATATWO(data) (data*5000)
|
||||
|
||||
#endif /*MOTO_CONFIG_H*/
|
@ -0,0 +1,138 @@
|
||||
#include "awtk.h"
|
||||
#include "navigator.h"
|
||||
extern ret_t ToolTip_box_init(widget_t* win, void* ctx);
|
||||
extern ret_t prompt_init(widget_t* win, void* ctx);
|
||||
extern ret_t call_init(widget_t* win, void* ctx);
|
||||
extern ret_t set_mile_init(widget_t* win, void* ctx);
|
||||
extern ret_t new_init(widget_t* win, void* ctx);
|
||||
extern ret_t home_page_init(widget_t* win, void* ctx);
|
||||
extern ret_t set_tire_pressure_init(widget_t* win, void* ctx);
|
||||
extern ret_t set_time_init(widget_t* win, void* ctx);
|
||||
extern ret_t set_list_init(widget_t* win, void* ctx);
|
||||
#ifndef WITH_MVVM
|
||||
|
||||
static ret_t navigator_window_init(const char* name, widget_t* win, void* ctx) {
|
||||
if (tk_str_eq(name, "ToolTip_box")) {
|
||||
return ToolTip_box_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "prompt")) {
|
||||
return prompt_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "call")) {
|
||||
return call_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "set_mile")) {
|
||||
return set_mile_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "new")) {
|
||||
return new_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "home_page")) {
|
||||
return home_page_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "set_tire_pressure")) {
|
||||
return set_tire_pressure_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "set_time")) {
|
||||
return set_time_init(win, ctx);
|
||||
} else if (tk_str_eq(name, "set_list")) {
|
||||
return set_list_init(win, ctx);
|
||||
}
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
static ret_t navigator_window_open_and_close(const char* name,
|
||||
widget_t* to_close, void* ctx) {
|
||||
ret_t ret = RET_OK;
|
||||
widget_t* wm = window_manager();
|
||||
widget_t* win = widget_child(wm, name);
|
||||
|
||||
if (win != NULL) {
|
||||
bool_t single_instance = widget_get_prop_bool(win, WIDGET_PROP_SINGLE_INSTANCE, FALSE);
|
||||
if (single_instance) {
|
||||
window_manager_close_window_force(wm, win);
|
||||
}
|
||||
}
|
||||
|
||||
win = window_open_and_close(name, to_close);
|
||||
return_value_if_fail(win != NULL, RET_FAIL);
|
||||
|
||||
ret = navigator_window_init(name, win, ctx);
|
||||
return_value_if_fail(ret == RET_OK, ret);
|
||||
|
||||
if (widget_is_dialog(win) &&
|
||||
widget_get_prop_bool(win, NAVIGATOR_PROP_DIALOG_TO_MODAL, TRUE)) {
|
||||
return (ret_t)dialog_modal(win);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret_t navigator_to(const char* target) {
|
||||
return navigator_to_with_context(target, NULL);
|
||||
}
|
||||
|
||||
ret_t navigator_to_with_context(const char* target, void* ctx) {
|
||||
return_value_if_fail(target != NULL &&* target != '\0', RET_BAD_PARAMS);
|
||||
|
||||
return navigator_window_open_and_close(target, NULL, ctx);
|
||||
}
|
||||
|
||||
ret_t navigator_replace(const char* target) {
|
||||
widget_t* curr_win = NULL;
|
||||
widget_t* wm = window_manager();
|
||||
return_value_if_fail(target != NULL &&* target != '\0', RET_BAD_PARAMS);
|
||||
|
||||
curr_win = window_manager_get_top_main_window(wm);
|
||||
if (curr_win != NULL) {
|
||||
log_debug("close current window: %s\n", curr_win->name);
|
||||
}
|
||||
|
||||
return navigator_window_open_and_close(target, curr_win, NULL);
|
||||
}
|
||||
|
||||
ret_t navigator_switch_to(const char* target, bool_t close_current) {
|
||||
widget_t* target_win;
|
||||
widget_t* wm = window_manager();
|
||||
return_value_if_fail(target != NULL &&* target != '\0', RET_BAD_PARAMS);
|
||||
|
||||
target_win = widget_child(wm, target);
|
||||
if (target_win != NULL) {
|
||||
widget_t* curr_win = window_manager_get_top_window(wm);
|
||||
return window_manager_switch_to(wm, curr_win, target_win, close_current);
|
||||
} else {
|
||||
return navigator_to(target);
|
||||
}
|
||||
}
|
||||
|
||||
ret_t navigator_back_to_home(void) {
|
||||
return window_manager_back_to_home(window_manager());
|
||||
}
|
||||
|
||||
ret_t navigator_back(void) {
|
||||
return window_manager_back(window_manager());
|
||||
}
|
||||
|
||||
ret_t navigator_close(const char* target) {
|
||||
widget_t* win;
|
||||
widget_t* wm = window_manager();
|
||||
return_value_if_fail(target != NULL &&* target != '\0', RET_BAD_PARAMS);
|
||||
|
||||
win = widget_child(wm, target);
|
||||
return_value_if_fail(win != NULL, RET_FAIL);
|
||||
|
||||
return window_manager_close_window_force(wm, win);
|
||||
}
|
||||
|
||||
ret_t navigator_request_close(const char* target) {
|
||||
widget_t* win;
|
||||
widget_t* wm = window_manager();
|
||||
return_value_if_fail(target != NULL &&* target != '\0', RET_BAD_PARAMS);
|
||||
|
||||
win = widget_child(wm, target);
|
||||
return_value_if_fail(win != NULL, RET_FAIL);
|
||||
|
||||
return widget_dispatch_simple_event(win, EVT_REQUEST_CLOSE_WINDOW);
|
||||
}
|
||||
|
||||
ret_t navigator_global_widget_on(uint32_t type, event_func_t on_event, void* ctx) {
|
||||
widget_t* wm = window_manager();
|
||||
widget_on(wm, type, on_event, ctx);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
#endif /*WITH_MVVM*/
|
@ -0,0 +1,121 @@
|
||||
#ifndef APP_NAVIGATOR_H
|
||||
#define APP_NAVIGATOR_H
|
||||
|
||||
#include "tkc/types_def.h"
|
||||
|
||||
BEGIN_C_DECLS
|
||||
|
||||
#ifndef WITH_MVVM
|
||||
|
||||
/**
|
||||
* 用于标识打开对话框时是否模态显示,如果需非模态显示,请在对话框初始化时使用 widget_set_prop 显式设置为FALSE。
|
||||
*/
|
||||
#define NAVIGATOR_PROP_DIALOG_TO_MODAL "to_modal"
|
||||
|
||||
/**
|
||||
* @class navigator_t
|
||||
* @annotation ["fake"]
|
||||
* 导航器。负责打开指定的窗口。
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @method navigator_to
|
||||
* 请求打开指定的窗口。
|
||||
* @annotation ["static"]
|
||||
* @param {const char*} target 目标窗口的名称。
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_to(const char* target);
|
||||
|
||||
/**
|
||||
* @method navigator_to_with_context
|
||||
* 请求打开指定的窗口,并可传递参数和返回结果。
|
||||
* @annotation ["static"]
|
||||
* @param {const char*} target 目标窗口的名称。
|
||||
* @param {void*} ctx 上下文。
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_to_with_context(const char* target, void* ctx);
|
||||
|
||||
/**
|
||||
* @method navigator_replace
|
||||
* 请求打开指定的窗口,并关闭当前窗口。
|
||||
* @annotation ["static"]
|
||||
* @param {const char*} target 目标窗口的名称。
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_replace(const char* target);
|
||||
|
||||
/**
|
||||
* @method navigator_switch_to
|
||||
* 如果目标窗口已经存在,直接切换到该窗口,否则打开新窗口。
|
||||
* @annotation ["static"]
|
||||
* @param {const char*} target 目标窗口的名称。
|
||||
* @param {bool_t} close_current 是否关闭当前窗口。
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_switch_to(const char* target, bool_t close_current);
|
||||
|
||||
/**
|
||||
* @method navigator_back_to_home
|
||||
* 回到主屏。
|
||||
* @annotation ["static"]
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_back_to_home(void);
|
||||
|
||||
/**
|
||||
* @method navigator_back
|
||||
* 关闭当前窗口,回到前一窗口。
|
||||
* @annotation ["static"]
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_back(void);
|
||||
|
||||
/**
|
||||
* @method navigator_close
|
||||
* 关闭指定窗口。
|
||||
* @param {const char*} target 目标窗口的名称。
|
||||
* @annotation ["static"]
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_close(const char* target);
|
||||
|
||||
/**
|
||||
* @method navigator_request_close
|
||||
* 请求关闭指定窗口。
|
||||
* > 窗口是否被关闭,取决于窗口本身的处理逻辑。
|
||||
* @param {const char*} target 目标窗口的名称。
|
||||
* @annotation ["static"]
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_request_close(const char* target);
|
||||
|
||||
/**
|
||||
* @method navigator_global_widget_on
|
||||
* 注册全局事件。
|
||||
* @param {event_type_t} type 事件类型。
|
||||
* @param {event_func_t} on_event 事件处理函数。
|
||||
* @param {void*} ctx 事件处理函数上下文。
|
||||
* @annotation ["static"]
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t navigator_global_widget_on(uint32_t type, event_func_t on_event, void* ctx);
|
||||
|
||||
#else
|
||||
#include "mvvm/base/navigator.h"
|
||||
#endif /*WITH_MVVM*/
|
||||
|
||||
END_C_DECLS
|
||||
|
||||
#endif /*APP_NAVIGATOR_H*/
|
@ -0,0 +1,121 @@
|
||||
#include "awtk.h"
|
||||
#include "../common/navigator.h"
|
||||
#include "../common/universal.h"
|
||||
#include "../common/data_port.h"
|
||||
#include "../common/user_data.h"
|
||||
#include "tkc/object_date_time.h"
|
||||
#include "pwm.h"
|
||||
#include "../common/qr_event.h"
|
||||
|
||||
extern char *strsub(char *dest, char *src, int start);
|
||||
bitmap_t* bitmap = NULL;
|
||||
|
||||
//二维码函数
|
||||
#ifdef AWTK_630HV
|
||||
static bitmap_t* qr_to_bmp(widget_t* widget){
|
||||
rect_t r = {40 ,81 ,widget->w,widget->h};
|
||||
bitmap_t* img;
|
||||
uint32_t w = 0;
|
||||
uint32_t h = 0;
|
||||
canvas_t* c = NULL;
|
||||
vgcanvas_t* vg = NULL;
|
||||
framebuffer_object_t fbo;
|
||||
|
||||
printf(" test qr_to_bmp start --------------\r\n");
|
||||
|
||||
native_window_t* native_window =
|
||||
(native_window_t*)widget_get_prop_pointer(window_manager(), WIDGET_PROP_NATIVE_WINDOW);
|
||||
return_value_if_fail(native_window != NULL, NULL);
|
||||
|
||||
c = native_window_get_canvas(native_window);
|
||||
vg = lcd_get_vgcanvas(c->lcd);
|
||||
return_value_if_fail(c != NULL && vg != NULL, NULL);
|
||||
|
||||
vgcanvas_create_fbo(vg, widget->w, widget->h, FALSE, &fbo);
|
||||
vgcanvas_bind_fbo(vg, &fbo);
|
||||
canvas_save(c);
|
||||
canvas_translate(c, 0, 0);
|
||||
canvas_set_clip_rect(c, &r);
|
||||
widget_paint(widget, c);
|
||||
canvas_translate(c, -0, -0);
|
||||
canvas_restore(c);
|
||||
vgcanvas_unbind_fbo(vg, &fbo);
|
||||
|
||||
w = r.w;
|
||||
h = r.h;
|
||||
|
||||
img = bitmap_create_ex(w, h, 0, BITMAP_FMT_BGRA8888);
|
||||
vgcanvas_fbo_to_bitmap(vg, &fbo, img, &r);
|
||||
|
||||
vgcanvas_destroy_fbo(vg, &fbo);
|
||||
printf(" end qr_to_bmp -> w=%d,h=%d,img = %p\n",w,h,img);
|
||||
return img;
|
||||
|
||||
}
|
||||
#else
|
||||
static bitmap_t* qr_to_bmp(widget_t* widget){
|
||||
}
|
||||
#endif
|
||||
//二维码字符串
|
||||
char* fun(char *qr_str){
|
||||
char str[400] = "http://www.carbit.com.cn/down6/642/643/_ylqx?modelid=33205&sn=Ut3F&action=128&bm=";
|
||||
char data[100] = {0};
|
||||
//char data2[100] = {0};
|
||||
int i;
|
||||
//printf("qr_str = %s\r\n",qr_str);
|
||||
|
||||
for(i=0; qr_str[i]!='\0';i++){
|
||||
if(i%3==1 && qr_str[i+1]!='\0'){
|
||||
strcpy(data,&qr_str[i+1]);
|
||||
qr_str[i+1]='%';
|
||||
strcpy(&qr_str[i+2],data);
|
||||
}
|
||||
}
|
||||
//printf("qr_str = %s\r\n",qr_str);
|
||||
strcat(str,qr_str);//连接字符串
|
||||
printf("qr netaddress :s %s\r\n",str);
|
||||
return str;
|
||||
}
|
||||
|
||||
//延时保存qr控件 等待qr控件绘制完成
|
||||
static ret_t on_add_timer_qr_to_bmp(const timer_info_t* timer){
|
||||
widget_t* qr = WIDGET(timer->ctx);
|
||||
widget_t* win = window_manager();
|
||||
widget_t* qr_img = widget_lookup(win,"qr_img",TRUE);
|
||||
bitmap = qr_to_bmp(qr);
|
||||
image_manager_add(image_manager(),"bitmap_qr",bitmap);
|
||||
widget_destroy(qr);
|
||||
printf("Save qr as picture and destroy control.\n");
|
||||
image_base_set_image(qr_img,"bitmap_qr");
|
||||
widget_resize(qr_img, 210,210);
|
||||
widget_set_visible(qr_img,TRUE);
|
||||
// img_save_flag = 2;
|
||||
// qr_imgdisplay_flag = 1;
|
||||
return RET_OK;
|
||||
}
|
||||
extern widget_t* qr_create(widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
|
||||
|
||||
|
||||
//为系统保存qr控件的bmp图片
|
||||
void Savesystem_qr_to_bmp( widget_t* win ,widget_t* qr_img){
|
||||
char buffer[50] = {0};
|
||||
char tmpStr[100] = {0};
|
||||
tk_snprintf(tmpStr, sizeof(tmpStr), "%s",custom_data.uuid);
|
||||
strsub(buffer,tmpStr,6);
|
||||
|
||||
widget_t* qr = qr_create(win,40,81,200,200);
|
||||
|
||||
printf("Create qr to demo = %s\n",win->name);
|
||||
tk_snprintf(tmpStr, sizeof(tmpStr), "%s",fun(buffer));
|
||||
widget_set_text_utf8(qr,tmpStr);
|
||||
widget_add_timer(qr,on_add_timer_qr_to_bmp,1500);
|
||||
|
||||
}
|
||||
|
||||
uint8_t bitmap_Existence_or_not(){
|
||||
if(bitmap !=NULL || image_manager_has_bitmap(image_manager(),bitmap) == TRUE )
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
#include "awtk.h"
|
||||
#include "../common/navigator.h"
|
||||
|
||||
static ret_t on_add_timer_qr_to_bmp(const timer_info_t* timer);
|
||||
|
||||
void Savesystem_qr_to_bmp( widget_t* win ,widget_t* qr_img);
|
||||
uint8_t bitmap_Existence_or_not(void);
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,81 @@
|
||||
#ifndef UNIVERSAL_H
|
||||
#define UNIVERSAL_H
|
||||
|
||||
#include "awtk.h"
|
||||
#include "../common/navigator.h"
|
||||
#include "../common/moto_config.h"
|
||||
|
||||
typedef struct {
|
||||
uint32_t dtc_code; // 故障码
|
||||
char *dtc_desc_en; // 故障码描述(英文)
|
||||
char *dtc_desc_cn; // 故障码描述(中文)
|
||||
} DTC_INFO;
|
||||
|
||||
void Power_On_Self_Test(void);
|
||||
|
||||
void Universal_count_transfer(widget_t* parent,uint32_t num);
|
||||
|
||||
void refresh_win(widget_t* child);
|
||||
void refresh_icon( widget_t* child);
|
||||
void light_refresh(widget_t* child);
|
||||
void call_refresh(widget_t* child);
|
||||
|
||||
void Universal_enter_win_boot_retrieval(widget_t* progress_circle);
|
||||
void Update_theme(void);
|
||||
uint32_t str_to_num(char* a);
|
||||
char *strsub(char *dest, char *src, int start);
|
||||
void SaveBtInformation(char *data);
|
||||
void Unified_brightness_processing(uint8_t data,uint8_t type);
|
||||
|
||||
void theme_state_black(widget_t* win , widget_t* child);
|
||||
void theme_state_white(widget_t* win , widget_t* child);
|
||||
void ui_demo_theme_state_black(widget_t* win , widget_t* child);
|
||||
void ui_demo_theme_state_white(widget_t* win , widget_t* child);
|
||||
|
||||
void Return_demo_win(void);
|
||||
void return_demo(void);
|
||||
void new_refreshes(widget_t* child);
|
||||
void list_win_init(widget_t* child);
|
||||
void refresh_animate(widget_t* child);
|
||||
void defect_code_event_handing(int *buf);
|
||||
// void speed_event_handing(int *buf);
|
||||
void tcs_control_event_handing(int *buf);
|
||||
void mil_control_event_handing(int *buf);
|
||||
|
||||
|
||||
ret_t long_key_event_handling(uint8_t key);
|
||||
|
||||
uint8_t mac_address_normal(char mac[],int size);// 如果数组全为0或全为FF,认为不是正常的 MAC 地址 正常地址返回1
|
||||
|
||||
uint16_t fml_leap_year(uint16_t year);
|
||||
uint32_t fml_time_to_stamp(int time[]);
|
||||
uint32_t fml_stamp_to_time(uint32_t timep , int time[]);
|
||||
|
||||
#define LIST_NUMBER_OF_OPTION 4
|
||||
#define LIST_NUMBER_OF_OPTION_MAX LIST_NUMBER_OF_OPTION+1
|
||||
extern char *set_label[];
|
||||
extern char *set_en_label[];
|
||||
extern char* resource_style[120];
|
||||
extern char* list_resource[];
|
||||
|
||||
void Universal_widget_display(widget_t*parent,uint8_t value);
|
||||
void veer_display_animo(widget_t* parent,uint8_t value);
|
||||
|
||||
|
||||
// uint32_t str_to_num(char* a);
|
||||
void UI_power_on_self(widget_t*win);
|
||||
void Update_theme_init(void);
|
||||
void newA27_return_theme(void);
|
||||
ret_t change_locale(const char* str);
|
||||
void newA27_list_win_init(widget_t* child);
|
||||
|
||||
void list_button1_init(widget_t* tab_button);
|
||||
void list_theme_init(widget_t* set_list);
|
||||
void theme_win_init(widget_t* win);
|
||||
void list_theme_button1_init(void);
|
||||
void list_theme_button2_init(void);
|
||||
void list_theme_button4_init(void);
|
||||
|
||||
void speed_event_handing(int *buf);
|
||||
|
||||
#endif
|
@ -0,0 +1,513 @@
|
||||
#include "awtk.h"
|
||||
#include "navigator.h"
|
||||
#include "user_data.h"
|
||||
#include "data_port.h"
|
||||
#include "universal.h"
|
||||
#include "pwm.h"
|
||||
|
||||
#ifndef WITH_MVVM
|
||||
daily_data_t custom_data;
|
||||
Device_t device = {0};
|
||||
static Current_fault_code_record_saved_struct current_fault_data;
|
||||
static Historical_fault_code_record_saved_struct historical_fault_data;
|
||||
extern void SaveDataToFlash(SfudData_t user_data);
|
||||
|
||||
//uint8_t temp_buffer[SAVE_DATA_SIZE];
|
||||
//uint8_t oil_buffer[SAVE_DATA_SIZE];
|
||||
uint8_t light_buffer[SAVE_DATA_SIZE];
|
||||
double cell_buffer[SAVE_DATA_SIZE];
|
||||
uint8_t data_storage=0;
|
||||
uint8_t flash_bt_state = 0;
|
||||
|
||||
|
||||
Current_fault_code_record_saved_struct* userData_getCurrentFaultRecordSaved(void)
|
||||
{
|
||||
return ¤t_fault_data;
|
||||
}
|
||||
|
||||
Historical_fault_code_record_saved_struct* userData_getHistorFaultRecordSaved(void)
|
||||
{
|
||||
return &historical_fault_data;
|
||||
}
|
||||
|
||||
//数据初始化
|
||||
void system_date_init(void){
|
||||
//胎压测试
|
||||
/*
|
||||
device.ability = 0xff;
|
||||
|
||||
for(uint8_t i=0;i<6;i++){
|
||||
custom_data.front_pressure.mac_address[i] = i;
|
||||
custom_data.rear_pressure.mac_address[i] = i;
|
||||
}
|
||||
*/
|
||||
Pressure_t pressure ={0};
|
||||
Set_sys_front_pressure(pressure);
|
||||
Set_sys_rear_pressure(pressure);
|
||||
Set_sys_warning_tire(0);
|
||||
|
||||
//版本号修改
|
||||
custom_data.softwar_host = SOFT_WARE_HOST;
|
||||
custom_data.softwar_order = SOFT_WARE_ORDER;
|
||||
|
||||
custom_data.user_data.language = 0;
|
||||
custom_data.user_data.display_unit = 0;
|
||||
custom_data.user_data.theme = 0;
|
||||
custom_data.user_data.theme_state = 1;//0为黑色 1为白色
|
||||
custom_data.user_data.light_value = 2;
|
||||
// custom_data.user_data.total_mileage = 0;
|
||||
custom_data.user_data.bt_on_off = 1;
|
||||
custom_data.user_data.trip_unit = 0;
|
||||
custom_data.user_data.maintenance_mileage = 0;
|
||||
custom_data.user_data.mileage_flag = 0;
|
||||
|
||||
custom_data.power_on_self_test =0;
|
||||
custom_data.wifi_state = 0;
|
||||
custom_data.wireless =0;
|
||||
|
||||
custom_data.velocity = 0;
|
||||
custom_data.veer_velocity = 0;
|
||||
|
||||
|
||||
custom_data.veer = 0;
|
||||
custom_data.veer_hint = 0;
|
||||
custom_data.lamplight = 0;
|
||||
// custom_data.trip_mileage = 0;
|
||||
|
||||
custom_data.warning.engine = 0;
|
||||
custom_data.warning.machine_oil = 0;
|
||||
custom_data.warning.fan = 0;
|
||||
custom_data.warning.abs = 1;
|
||||
custom_data.warning.tcs = 0;
|
||||
custom_data.warning.neutral_gear = 0;//默认为空挡
|
||||
custom_data.voltage =0;
|
||||
if(custom_data.light_perception_value == 0)
|
||||
custom_data.light_perception_value=100;
|
||||
custom_data.return_demo = 0;
|
||||
custom_data.bt_data_inheritance = 0;
|
||||
//SaveBtInformation("CARBITDC0D30329E1A");
|
||||
|
||||
//custom_data.light = 5;
|
||||
|
||||
//tk_snprintf(tmpStr, sizeof(tmpStr), "%d",speed_num*2);
|
||||
//widget_set_text_utf8(speed,tmpStr);
|
||||
// custom_data.now_defect_code = 0x2255;
|
||||
// custom_data.his_defect_code = 0x400;
|
||||
|
||||
custom_data.ttrb = 0;
|
||||
custom_data.ttrb_time = 10;
|
||||
custom_data.odo_reset = 10;
|
||||
custom_data.demo_position = 0;
|
||||
|
||||
custom_data.upgrade_Flag = 0;
|
||||
custom_data.plan = 0;
|
||||
custom_data.pace = 0;
|
||||
custom_data.upgrade = 0;
|
||||
|
||||
//custom_data.Upgrade = 0;
|
||||
|
||||
custom_data.call.call_display=0;
|
||||
custom_data.call.call_state=0;
|
||||
custom_data.call.call_key_state=0;
|
||||
custom_data.call.time=0;
|
||||
|
||||
|
||||
extern Device_t device;
|
||||
device.ability = 0xff;
|
||||
custom_data.display_velocity = 0;
|
||||
custom_data.bt_connect_state = 0;
|
||||
|
||||
|
||||
custom_data.temp = 0;
|
||||
custom_data.user_data.gas = 0;
|
||||
custom_data.quickly_arrange = 1;
|
||||
}
|
||||
|
||||
extern SfudData_t sfud_data_saved;
|
||||
extern void ReadDataToFlash(void);
|
||||
|
||||
void copy_tire_pressure_front(void){
|
||||
Pressure_t pressure ={0};
|
||||
custom_data.front_pressure = pressure;
|
||||
strcpy(custom_data.front_pressure.mac_address,sfud_data_saved.f_mac_address);
|
||||
if(mac_address_normal(custom_data.front_pressure.mac_address,6) == 1){//判断mac是否正常
|
||||
strcpy(custom_data.user_data.f_mac_address,sfud_data_saved.f_mac_address);
|
||||
custom_data.front_pressure.temp = custom_data.user_data.f_mac_address[6];
|
||||
custom_data.front_pressure.psi = custom_data.user_data.f_mac_address[7];
|
||||
custom_data.front_pressure.psi = custom_data.front_pressure.psi<<8 | custom_data.user_data.f_mac_address[8];
|
||||
custom_data.front_pressure.blow_by_state = 0;
|
||||
custom_data.front_pressure.voltage_state = 0;
|
||||
custom_data.front_pressure.temp_state = 0;
|
||||
custom_data.front_pressure.lose_flag = 0;
|
||||
}else{
|
||||
printf("front mac_address error.\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
void copy_tire_pressure_rear(void){
|
||||
Pressure_t pressure ={0};
|
||||
custom_data.rear_pressure = pressure;
|
||||
strcpy(custom_data.rear_pressure.mac_address,sfud_data_saved.r_mac_address);
|
||||
if(mac_address_normal(custom_data.rear_pressure.mac_address,6) == 1){//判断mac是否正常
|
||||
strcpy(custom_data.user_data.r_mac_address,sfud_data_saved.r_mac_address);
|
||||
custom_data.rear_pressure.temp = custom_data.user_data.r_mac_address[6];
|
||||
custom_data.rear_pressure.psi = custom_data.user_data.r_mac_address[7];
|
||||
custom_data.rear_pressure.psi = custom_data.rear_pressure.psi<<8 | custom_data.user_data.r_mac_address[8];
|
||||
custom_data.rear_pressure.blow_by_state = 0;
|
||||
custom_data.rear_pressure.voltage_state = 0;
|
||||
custom_data.rear_pressure.temp_state = 0;
|
||||
custom_data.rear_pressure.lose_flag = 0;
|
||||
}else{
|
||||
printf("rear mac_address error.\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
void system_flash_to_date_event_handling(void){//上电后数据同步
|
||||
#ifdef AMT630HV100
|
||||
/*printf("**************read flash init***********************\r\n");
|
||||
printf("MXCA27_A => sfud_data_saved :%d-%d-%d-%d-%d %d %d ,",sfud_data_saved.language,
|
||||
sfud_data_saved.display_unit,sfud_data_saved.theme,sfud_data_saved.theme_state,
|
||||
sfud_data_saved.light_value,sfud_data_saved.bt_on_off,sfud_data_saved.factory_reset);
|
||||
printf("mac: %02X%02X%02X%02X%02X%02X , %02X%02X%02X%02X%02X%02X end\r\n",
|
||||
sfud_data_saved.f_mac_address[0],sfud_data_saved.f_mac_address[1],sfud_data_saved.f_mac_address[2],
|
||||
sfud_data_saved.f_mac_address[3],sfud_data_saved.f_mac_address[4],sfud_data_saved.f_mac_address[5],
|
||||
sfud_data_saved.r_mac_address[0],sfud_data_saved.r_mac_address[1],sfud_data_saved.r_mac_address[2],
|
||||
sfud_data_saved.r_mac_address[3],sfud_data_saved.r_mac_address[4],sfud_data_saved.r_mac_address[5]);
|
||||
printf("mile data: %02X,%02X end\r\n"
|
||||
,sfud_data_saved.maintenance_mileage,sfud_data_saved.mileage_flag);
|
||||
printf("*************************************\r\n");*/
|
||||
ReadDataToFlash();//读一次数据
|
||||
|
||||
/*printf("MXCA27_A => flash data: %d-%d-%d-%d-%d %d\r\n",sfud_data_saved.language,
|
||||
sfud_data_saved.display_unit,sfud_data_saved.theme,sfud_data_saved.theme_state,
|
||||
sfud_data_saved.light_value,sfud_data_saved.factory_reset);*/
|
||||
|
||||
if(sfud_data_saved.factory_reset == 1 && sfud_data_saved.language <2){//保存过数据
|
||||
printf("Non first flash.\n");
|
||||
custom_data.user_data.language = sfud_data_saved.language;
|
||||
custom_data.user_data.display_unit = sfud_data_saved.display_unit;
|
||||
custom_data.user_data.theme = sfud_data_saved.theme;
|
||||
custom_data.user_data.theme_state = sfud_data_saved.theme_state;
|
||||
custom_data.user_data.light_value = sfud_data_saved.light_value;
|
||||
|
||||
custom_data.user_data.bt_on_off = sfud_data_saved.bt_on_off;
|
||||
flash_bt_state = sfud_data_saved.bt_on_off;
|
||||
|
||||
if(sfud_data_saved.maintenance_mileage!=0xFFFFFFFF){
|
||||
custom_data.user_data.maintenance_mileage = sfud_data_saved.maintenance_mileage;
|
||||
}else{
|
||||
custom_data.user_data.maintenance_mileage = 0;
|
||||
}
|
||||
if(sfud_data_saved.mileage_flag!=0xFFFFFFFF){
|
||||
custom_data.user_data.mileage_flag = sfud_data_saved.mileage_flag;
|
||||
}else{
|
||||
custom_data.user_data.mileage_flag = 0;
|
||||
}
|
||||
|
||||
if(custom_data.user_data.tp_state<2)
|
||||
custom_data.user_data.tp_state = sfud_data_saved.tp_state;
|
||||
else
|
||||
custom_data.user_data.tp_state = sfud_data_saved.tp_state = 0;
|
||||
|
||||
if(sfud_data_saved.uuid_state<3)
|
||||
custom_data.user_data.uuid_state = sfud_data_saved.uuid_state;
|
||||
else
|
||||
sfud_data_saved.uuid_state = custom_data.user_data.uuid_state = 0;
|
||||
|
||||
|
||||
copy_tire_pressure_front();
|
||||
copy_tire_pressure_rear();
|
||||
|
||||
if(sfud_data_saved.display_unit>2 || sfud_data_saved.theme>2){
|
||||
custom_data.user_data.display_unit = 0;
|
||||
custom_data.user_data.theme = 0;
|
||||
}
|
||||
}else{//首次启动 保存初始化数据
|
||||
printf("First flash.\n");
|
||||
sfud_data_saved.language = custom_data.user_data.language ;
|
||||
sfud_data_saved.display_unit = custom_data.user_data.display_unit;
|
||||
sfud_data_saved.theme = custom_data.user_data.theme ;
|
||||
sfud_data_saved.theme_state = custom_data.user_data.theme_state;
|
||||
sfud_data_saved.light_value = custom_data.user_data.light_value;
|
||||
//sfud_data_saved.gas = custom_data.user_data.gas;
|
||||
sfud_data_saved.bt_on_off = custom_data.user_data.bt_on_off ;
|
||||
flash_bt_state = sfud_data_saved.bt_on_off;
|
||||
|
||||
strcpy(sfud_data_saved.f_mac_address,custom_data.front_pressure.mac_address);
|
||||
strcpy(sfud_data_saved.r_mac_address,custom_data.rear_pressure.mac_address);
|
||||
strcpy(sfud_data_saved.f_mac_address,custom_data.user_data.f_mac_address);
|
||||
strcpy(sfud_data_saved.r_mac_address,custom_data.user_data.r_mac_address);
|
||||
custom_data.front_pressure.temp = custom_data.user_data.f_mac_address[6];
|
||||
custom_data.front_pressure.psi = custom_data.user_data.f_mac_address[7];
|
||||
custom_data.front_pressure.psi = custom_data.front_pressure.psi<<8 | custom_data.user_data.f_mac_address[8];
|
||||
custom_data.rear_pressure.temp = custom_data.user_data.r_mac_address[6];
|
||||
custom_data.rear_pressure.psi = custom_data.user_data.r_mac_address[7];
|
||||
custom_data.rear_pressure.psi = custom_data.rear_pressure.psi<<8 | custom_data.user_data.r_mac_address[8];
|
||||
|
||||
|
||||
sfud_data_saved.maintenance_mileage = custom_data.user_data.maintenance_mileage;
|
||||
sfud_data_saved.mileage_flag = custom_data.user_data.mileage_flag;
|
||||
|
||||
sfud_data_saved.display_mileage = custom_data.user_data.display_mileage;
|
||||
sfud_data_saved.tcs_on_off = custom_data.user_data.tcs_on_off;
|
||||
sfud_data_saved.mile_state = custom_data.user_data.mile_state;
|
||||
|
||||
sfud_data_saved.uuid_state = custom_data.user_data.uuid_state = 0;
|
||||
sfud_data_saved.tp_state = custom_data.user_data.tp_state = 0;
|
||||
|
||||
SaveDataToFlash(custom_data.user_data);
|
||||
}
|
||||
|
||||
#endif
|
||||
custom_data.user_data.bt_on_off = 1;
|
||||
sfud_data_saved.bt_on_off = 1;
|
||||
flash_bt_state = 1;
|
||||
|
||||
}
|
||||
|
||||
void BrightnessPowerOnSetting(void){
|
||||
#ifdef AMT630HV100
|
||||
int buf;
|
||||
ReadDataToFlash();
|
||||
if(sfud_data_saved.light_value>6 || sfud_data_saved.light_value == 0)
|
||||
sfud_data_saved.light_value=3;
|
||||
// buf = sfud_data_saved.light_value * 10000;
|
||||
buf = sfud_data_saved.light_value * LIGHT_PROPORTION_OF_CONTROL *10000 /25;
|
||||
// if(Get_sys_veer_velocity()==0)
|
||||
// buf = buf/LOW_BRIGHTNESS_MODE;
|
||||
// buf = sfud_data_saved.light_value * 200000;
|
||||
printf(" Brightness Power On Setting light_value = %d %d\r\n",sfud_data_saved.light_value,buf);
|
||||
pwm_config(2, buf,40000);
|
||||
#endif
|
||||
}
|
||||
|
||||
//键盘数据仿真
|
||||
ret_t on_key_set_data(void* ctx, event_t* e){
|
||||
double buf =0;
|
||||
uint8_t value =0;
|
||||
key_event_t* evt = key_event_cast(e);
|
||||
// TODO: 在此添加控件事件处理程序代码
|
||||
if(evt->key == TK_KEY_z){//灯光开关
|
||||
custom_data.veer = 1;
|
||||
}else if(evt->key == TK_KEY_x){//远光
|
||||
custom_data.veer = 2;
|
||||
}else if(evt->key == TK_KEY_c){//速度
|
||||
custom_data.veer = 3;
|
||||
custom_data.velocity +=1;
|
||||
}else if(evt->key == TK_KEY_v){
|
||||
custom_data.velocity -=1;
|
||||
}else if(evt->key == TK_KEY_b){//转速
|
||||
// custom_data.veer_velocity +=1;
|
||||
custom_data.user_data.gas +=1;
|
||||
custom_data.temp +=1;
|
||||
printf("gas=%d,temp =%d,\r\n",custom_data.user_data.gas,custom_data.temp);
|
||||
}else if(evt->key == TK_KEY_n){
|
||||
// custom_data.veer_velocity -=1;
|
||||
custom_data.user_data.gas -=1;
|
||||
custom_data.temp -=1;
|
||||
printf("gas=%d,temp =%d,\r\n",custom_data.user_data.gas,custom_data.temp);
|
||||
}else if(evt->key == TK_KEY_m){
|
||||
// custom_data.user_data.gas +=1;
|
||||
// custom_data.temp +=1;
|
||||
custom_data.eng_temp += 10;
|
||||
buf = custom_data.eng_temp; //值为60-120
|
||||
if(buf>5280)
|
||||
buf = 255;
|
||||
else if(buf>2730)
|
||||
buf = ((buf*0.1)-273);
|
||||
else
|
||||
buf = 0;
|
||||
value = (int)buf;
|
||||
printf("eng_temp = %d ,value = %d.\r\n",custom_data.eng_temp,value);
|
||||
}else if(evt->key == TK_KEY_a){
|
||||
// custom_data.user_data.gas -=1;
|
||||
// custom_data.temp -=1;
|
||||
custom_data.eng_temp -= 10;
|
||||
// custom_data.eng_temp += 10;
|
||||
buf = custom_data.eng_temp; //值为60-120
|
||||
if(buf>5280)
|
||||
buf = 255;
|
||||
else if(buf>2730)
|
||||
buf = ((buf*0.1)-273);
|
||||
else
|
||||
buf = 0;
|
||||
value = (int)buf;
|
||||
printf("eng_temp = %d ,value = %d.\r\n",custom_data.eng_temp,value);
|
||||
}else if(evt->key == TK_KEY_s){
|
||||
if(custom_data.lamplight == 0)
|
||||
custom_data.lamplight = 1;
|
||||
else
|
||||
custom_data.lamplight = 0;
|
||||
}else if(evt->key == TK_KEY_d){
|
||||
custom_data.user_data.grade +=1;
|
||||
}else if(evt->key == TK_KEY_f){
|
||||
custom_data.user_data.grade -=1;
|
||||
}else if(evt->key == TK_KEY_g){
|
||||
custom_data.user_data.total_mileage +=1;
|
||||
}else if(evt->key == TK_KEY_h){
|
||||
custom_data.user_data.total_mileage -=1;
|
||||
}else if(evt->key == TK_KEY_j){
|
||||
/*if(custom_data.user_data.bt_state < 2)
|
||||
custom_data.user_data.bt_state +=1;
|
||||
else
|
||||
custom_data.user_data.bt_state =0;*/
|
||||
}else if(evt->key == TK_KEY_k){
|
||||
if(custom_data.wifi_state !=1)
|
||||
custom_data.wifi_state =1;
|
||||
else
|
||||
custom_data.wifi_state =0;
|
||||
}else if(evt->key == TK_KEY_l){
|
||||
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
// extern uint8_t speed_flag;
|
||||
// static uint16_t test_flag = 1;
|
||||
// int test_value[8] = {0,0,0xff,0,0,0,0,0};
|
||||
// void test_mile(void){
|
||||
// if(test_flag<1000){
|
||||
// test_flag++;
|
||||
// speed_flag = 5;
|
||||
// speed_event_handing(test_value);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
//数据模拟更新
|
||||
void Simulating_data_changes(void){
|
||||
static uint32_t n=0;
|
||||
uint8_t m=1;
|
||||
if((int)(n/140)%2==0)
|
||||
m=1;
|
||||
else
|
||||
m=-1;
|
||||
if(n%20==0)
|
||||
custom_data.user_data.grade +=m;
|
||||
|
||||
if(n%20==0){
|
||||
//custom_data.user_data.bt_state =0;
|
||||
custom_data.wireless =0;
|
||||
custom_data.warning.engine =0;
|
||||
custom_data.warning.machine_oil = 0;
|
||||
custom_data.warning.fan = 0;
|
||||
custom_data.warning.abs = 0;
|
||||
custom_data.warning.tcs = 0;
|
||||
//custom_data.warning.neutral_gear = 0;
|
||||
custom_data.user_data.bt_on_off = 0;
|
||||
custom_data.veer = 0;
|
||||
custom_data.lamplight = 0;
|
||||
custom_data.warning.maintenance = 0;
|
||||
|
||||
}else if(n%20==10){
|
||||
//custom_data.user_data.bt_state =1;
|
||||
custom_data.wireless =1;
|
||||
custom_data.warning.engine =1;
|
||||
custom_data.warning.machine_oil = 1;
|
||||
custom_data.warning.fan = 1;
|
||||
custom_data.warning.abs = 1;
|
||||
custom_data.warning.tcs = 1;
|
||||
custom_data.user_data.bt_on_off = 1;
|
||||
custom_data.veer = 3;
|
||||
custom_data.lamplight = 1;
|
||||
custom_data.warning.maintenance = 1;
|
||||
//custom_data.warning.neutral_gear = 1;
|
||||
}
|
||||
|
||||
if(n%12==0){
|
||||
custom_data.veer_hint = 1;
|
||||
}else if(n%12==3){
|
||||
custom_data.veer_hint = 2;
|
||||
}else if(n%12==6){
|
||||
custom_data.veer_hint = 0;
|
||||
}else if(n%12==9){
|
||||
}
|
||||
|
||||
if((int)(n/100)%2 == 0){
|
||||
custom_data.user_data.gas++;
|
||||
custom_data.trip_mileage+=0.1;
|
||||
custom_data.user_data.total_mileage++;
|
||||
}else{
|
||||
custom_data.user_data.gas--;
|
||||
custom_data.trip_mileage-=0.1;
|
||||
custom_data.user_data.total_mileage--;
|
||||
}
|
||||
|
||||
if((int)(n/130)%2 == 0){
|
||||
custom_data.temp++;
|
||||
}else{
|
||||
custom_data.temp--;
|
||||
}
|
||||
|
||||
if((int)(n/255)%2 == 0){
|
||||
// custom_data.velocity++;
|
||||
custom_data.display_velocity++;
|
||||
}else{
|
||||
// custom_data.velocity--;
|
||||
custom_data.display_velocity--;
|
||||
}
|
||||
if((int)(n/120)%2 == 0){
|
||||
custom_data.veer_velocity+=100;
|
||||
}else{
|
||||
custom_data.veer_velocity-=100;
|
||||
}
|
||||
// printf("display speed %d .\r\n",custom_data.display_velocity);
|
||||
/*
|
||||
|
||||
|
||||
if((int)(n/255)%2 == 0){
|
||||
custom_data.voltage +=0.01;
|
||||
}else{
|
||||
custom_data.voltage -=0.01;
|
||||
}*/
|
||||
|
||||
if(n>=999999)
|
||||
n=0;
|
||||
n++;
|
||||
}
|
||||
|
||||
void power_on_self_data(void){
|
||||
static uint16_t number=0;
|
||||
uint8_t value = (int)(number/255);
|
||||
uint8_t num = 0;
|
||||
//速度
|
||||
if(value%2 == 0){
|
||||
custom_data.velocity++;
|
||||
if(custom_data.velocity<=240)
|
||||
custom_data.veer_velocity = custom_data.velocity/2;
|
||||
}else{
|
||||
custom_data.velocity--;
|
||||
if(custom_data.velocity<=240)
|
||||
custom_data.veer_velocity = custom_data.velocity/2;
|
||||
// if(custom_data.velocity == 0)
|
||||
// Set_sys_power_on_self_test(100);
|
||||
}
|
||||
|
||||
|
||||
num = (int)custom_data.velocity/26;
|
||||
custom_data.user_data.total_mileage = num*11111111;
|
||||
custom_data.trip_mileage = (int)(num*111111.1);
|
||||
custom_data.voltage = (int)(num*11.1);
|
||||
|
||||
num = (int)custom_data.velocity/32;
|
||||
//档位
|
||||
custom_data.user_data.grade = num;
|
||||
// printf("number = %d , custom_data.velocity =%d .\r\n",number,custom_data.velocity);
|
||||
|
||||
if(number>=510){
|
||||
Set_sys_power_on_self_test(100);
|
||||
number=0;
|
||||
}
|
||||
|
||||
number++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
daily_data_t* userData_getCustom(void)
|
||||
{
|
||||
return &custom_data;
|
||||
}
|
||||
|
||||
|
||||
#endif /*WITH_MVVM*/
|
@ -0,0 +1,228 @@
|
||||
#ifndef USER_DATA_H
|
||||
#define USER_DATA_H
|
||||
|
||||
#include "moto_config.h"
|
||||
#include "tkc/types_def.h"
|
||||
|
||||
typedef struct{
|
||||
char equipment_num[16]; //设备编号
|
||||
char produce_num[5]; //产品型号
|
||||
char voucher[20]; //凭证
|
||||
char mac[6]; //mac地址
|
||||
uint8_t client_num; //客户编号
|
||||
uint8_t moto_type; //摩托类型
|
||||
uint8_t screen_type; //屏幕类型
|
||||
uint8_t ability; //支持功能
|
||||
//BottomData *bottom_data; //底层数据数组
|
||||
uint8_t bottom_id; //底层平台ID
|
||||
uint8_t bottom_softwar_host; //底层主版本号
|
||||
uint8_t bottom_softwar_order; //底层次版本号
|
||||
uint8_t hardware_version_host; //硬件主版本号
|
||||
uint8_t hardware_version_order; //硬件次版本号
|
||||
}Device_t;
|
||||
|
||||
typedef struct{
|
||||
uint8_t engine; //发动机故障
|
||||
uint8_t machine_oil; //机油报警
|
||||
uint8_t abs; //abs防抱死
|
||||
uint8_t tcs; //tcs牵引力系统
|
||||
uint8_t fan; //风扇
|
||||
uint8_t neutral_gear; //空挡
|
||||
uint8_t maintenance; //保养里程提示
|
||||
uint8_t tire; //胎压
|
||||
}warning_t;
|
||||
|
||||
typedef struct Pressure_t{
|
||||
char mac_address[6]; //物理地址
|
||||
uint8_t state; //状态 0未匹配/未学习 1已配对/已学习
|
||||
uint8_t blow_by_state; //漏气状态
|
||||
uint8_t voltage_state; //低电压状态
|
||||
uint8_t temp_state; //温度状态
|
||||
uint8_t voltage; //电压数据
|
||||
uint8_t temp; //温度数据
|
||||
uint16_t psi; //压强数据
|
||||
uint8_t unit; //单位
|
||||
uint8_t lose_flag; //丢失
|
||||
}Pressure_t;
|
||||
|
||||
typedef struct sfuddata_t{
|
||||
uint8_t factory_reset; //出厂设置
|
||||
uint8_t language; //语言
|
||||
uint8_t display_unit; //单位
|
||||
uint8_t theme; //当前主题
|
||||
uint8_t theme_state; //主题状态
|
||||
uint8_t light_value; //亮度
|
||||
uint8_t bt_on_off; //蓝牙
|
||||
uint8_t trip_unit; //trip单位
|
||||
uint8_t grade; //档位
|
||||
uint16_t gas; //油量
|
||||
uint32_t total_mileage; //里程数
|
||||
char f_mac_address[9]; //前胎压物理地址
|
||||
char r_mac_address[9]; //后胎压物理地址
|
||||
uint32_t maintenance_mileage; //保养里程数max
|
||||
uint32_t mileage_flag; //保养里程设置时的开始里程
|
||||
uint8_t display_mileage; // 里程显示类型
|
||||
uint8_t tcs_on_off; //tcs开关类型
|
||||
uint8_t mile_state; //保养里程状态
|
||||
uint8_t uuid_state; //uuid激活状态
|
||||
uint8_t tp_state; //投屏状态
|
||||
// Pressure_t f_data;
|
||||
// Pressure_t r_data;
|
||||
}SfudData_t;
|
||||
|
||||
typedef struct{
|
||||
uint8_t sensor_switch; //test开关
|
||||
uint8_t light; //实时光感数据
|
||||
}sensordata_t;
|
||||
|
||||
|
||||
typedef enum _CALL_STATE_ID_ {
|
||||
CALL_NORMAL, //常规
|
||||
CALL_INCOMING, //来电
|
||||
CALL_ANSWER, //接听
|
||||
CALL_DURING, //通话中
|
||||
CALL_HANG_UP, //挂断
|
||||
}CALL_STATE_ID;
|
||||
|
||||
typedef struct{
|
||||
uint8_t call_display; // call 显示状态
|
||||
uint8_t call_state; // call 状态
|
||||
char number[32]; // 电话号码
|
||||
char renumber[32]; // 电话号码2
|
||||
char name[50]; //姓名
|
||||
char rename[50]; //姓名2
|
||||
uint8_t call_type; //来电状态
|
||||
uint8_t call_key_state; // call 按键回复状态
|
||||
uint32_t time;
|
||||
uint32_t retime;
|
||||
}calldate_t;
|
||||
|
||||
//#define BT_NAME_MAX_LEN 24
|
||||
typedef struct{
|
||||
uint8_t display_theme;//光感控制当前应该显示的主题
|
||||
//蓝牙
|
||||
uint8_t bt_connect_state;
|
||||
uint8_t wifi_state;
|
||||
|
||||
uint8_t softwar_host; //主版本号
|
||||
uint8_t softwar_order; //次版本号
|
||||
//uint8_t bt_name[BT_NAME_MAX_LEN];
|
||||
uint8_t wireless; //WIFI
|
||||
//uint8_t grade; //档位
|
||||
//uint16_t gas; //油量
|
||||
uint8_t veer; //转向 0-无 1-左转 2-右转
|
||||
uint8_t veer_hint; //转向提示 0无 1左 2右
|
||||
uint8_t lamplight; //灯光 0-无灯光 1-远光 2-近光 3-自动大灯
|
||||
uint8_t side_marker; // 示宽灯
|
||||
uint8_t power_on_self_test; //开机自检
|
||||
uint8_t light_perception_value; //光感亮度
|
||||
uint8_t light; //具体的light_value值
|
||||
|
||||
uint8_t return_demo;
|
||||
|
||||
uint16_t velocity; //速度
|
||||
uint16_t display_velocity; //UI显示速度
|
||||
uint16_t display_veer_velocity;
|
||||
uint16_t veer_velocity; //转速
|
||||
uint16_t temp; //温度
|
||||
//里程数
|
||||
uint32_t trip_mileage;
|
||||
double voltage; //电压
|
||||
char uuid[32];
|
||||
char bt_name[32];
|
||||
uint32_t now_defect_code; //当前故障码
|
||||
uint32_t his_defect_code; //历史故障码
|
||||
uint8_t bt_data_inheritance;
|
||||
|
||||
uint8_t ttrb; //开机检测是否获取到时间的标志
|
||||
uint8_t tire_pressure_flag; //胎压标志
|
||||
uint8_t ttrb_time; //设施时间后检测是否正常设置时间的标志
|
||||
uint8_t odo_reset; //小计里程清零后检测是否正常设置时间的标志
|
||||
uint8_t fault_code; //故障码发送后检测是否发送成功的标志
|
||||
|
||||
uint8_t demo_position; //是否在demo展示界面的标志
|
||||
|
||||
Pressure_t front_pressure; //前胎压
|
||||
Pressure_t rear_pressure; //后胎压
|
||||
uint8_t pressure_signal; //胎压信号 判断当前应该学习的是哪一个胎压 0正常 1前 2后 3先前再后 4先后再前
|
||||
|
||||
warning_t warning;
|
||||
SfudData_t user_data;
|
||||
|
||||
uint8_t upgrade_Flag; //开始升级传输标志 用于UI线程开关升级界面
|
||||
uint16_t plan; //总进度标志
|
||||
uint16_t pace; //分进度标志
|
||||
uint8_t upgrade; //内存拷贝标志
|
||||
uint8_t bt_upgrade; //蓝牙升级判断 特殊机型 用于开关can升级
|
||||
|
||||
sensordata_t sensor;
|
||||
|
||||
calldate_t call;
|
||||
|
||||
uint16_t eng_temp;
|
||||
uint8_t quickly_arrange; //快排功能
|
||||
uint8_t quickly_arrange_state; //快排灯状态
|
||||
|
||||
|
||||
}daily_data_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t state;
|
||||
uint32_t utc;
|
||||
uint8_t value;
|
||||
}DefectCodeRecord_t;
|
||||
#define HEALTH_RECORD_MAX_NUM 10
|
||||
typedef struct{
|
||||
uint8_t size;
|
||||
DefectCodeRecord_t records[HEALTH_RECORD_MAX_NUM];
|
||||
}Historical_fault_code_record_saved_struct;
|
||||
|
||||
typedef struct{
|
||||
uint8_t size;
|
||||
DefectCodeRecord_t records[HEALTH_RECORD_MAX_NUM];
|
||||
}Current_fault_code_record_saved_struct;
|
||||
|
||||
extern Current_fault_code_record_saved_struct* userData_getCurrentFaultRecordSaved(void);
|
||||
extern Historical_fault_code_record_saved_struct* userData_getHistorFaultRecordSaved(void);
|
||||
|
||||
extern daily_data_t custom_data;
|
||||
daily_data_t* userData_getCustom(void);
|
||||
void system_date_init(void);
|
||||
void Simulating_data_changes(void);
|
||||
void system_flash_to_date_event_handling(void);
|
||||
|
||||
|
||||
void power_on_self_data(void);
|
||||
#if 0
|
||||
#define AMT630HV100 1 //控制模拟器和开发板运行 注释掉模拟器可用 打开开发板可用
|
||||
|
||||
#define SOFT_WARE "MXC-A27-A V0.1"
|
||||
#define HARD_WARE "MXC-A27-A V4.0"
|
||||
#define HARD_WARE_LABEL "4.0"
|
||||
|
||||
//胎压温度报警
|
||||
|
||||
//前
|
||||
#define TIRE_PRESSURE_FRONT_UPPER 362+146
|
||||
#define TIRE_PRESSURE_FRONT_LOWER 268+146
|
||||
//后
|
||||
#define TIRE_PRESSURE_REAR_UPPER 362+146
|
||||
#define TIRE_PRESSURE_REAR_LOWER 275+146
|
||||
|
||||
extern Current_fault_code_record_saved_struct* userData_getCurrentFaultRecordSaved(void);
|
||||
extern Historical_fault_code_record_saved_struct* userData_getHistorFaultRecordSaved(void);
|
||||
|
||||
extern daily_data_t custom_data;
|
||||
daily_data_t* userData_getCustom(void);
|
||||
void system_date_init(void);
|
||||
void Simulating_data_changes(void);
|
||||
void system_flash_to_date_event_handling(void);
|
||||
|
||||
#define DEBUG 1
|
||||
#ifdef DEBUG
|
||||
#define DEBUG_PRINT(fmt, ...) printf(fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
#define DEBUG_PRINT(fmt, ...)
|
||||
#endif
|
||||
#endif
|
||||
#endif /*USER_DATA_H*/
|
Reference in New Issue
Block a user