快排仪表以及A270S版本生成

This commit is contained in:
LiJie 2025-02-11 18:48:14 +08:00
parent f0fb64e4e6
commit 08e216ffb2
63 changed files with 29766 additions and 29566 deletions

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"files.associations": {
"chip.h": "c"
}
}

View File

@ -300,15 +300,15 @@
#error "carplay need lwip"
#endif
#if !DEVICE_MXC_A27
//wifi模块蓝牙复位引脚
#define BT_RESET_IO 13
//wifi模块使能引脚
#define WIFI_EN_IO 14
#else
// #if !DEVICE_MXC_A27
// //wifi模块蓝牙复位引脚
// #define BT_RESET_IO 13
// //wifi模块使能引脚
// #define WIFI_EN_IO 14
// #else
#define BT_RESET_IO 94
#define WIFI_EN_IO 46
#endif
// #endif
#define BT_UART_PORT 1

View File

@ -7,10 +7,18 @@
#include "gpio_protocol.h"
#include "moto_config.h"
#if DEVICE_MXC_A58
// #define CAN_USE_TX_DEMO
#elif DEVICE_MXC_A59
// #define CAN_USE_TX_DEMO
#else
#ifdef UI_VIEW_QUICKLY_ARRANGE
#define CAN_USE_TX_DEMO
#endif
#endif
#define CAN_RX_BUF_NUM 32
@ -692,27 +700,38 @@ int iCanGetTransmitErrorCount(CanPort_t *cap)
}
#ifdef CAN_USE_TX_DEMO
int cantx_count = 0;
static void can_txdemo_thread(void *param)
{
CanPort_t *cap = param;
// CanMsg txmsg = {0};
// txmsg.IDE = CAN_Id_Standard;
// txmsg.DLC = 4;
// txmsg.Data[0] = 0x11;
// txmsg.Data[1] = 0x22;
// txmsg.Data[2] = 0x33;
// txmsg.Data[3] = 0x44;
uint8_t checksum = 0;
CanMsg txmsg = {0};
txmsg.StdId = 0x200;
txmsg.StdId = 0x213;
//txmsg.ExtId = 0x400;
txmsg.IDE = CAN_Id_Standard;
txmsg.DLC = 8;
txmsg.Data[0] = Get_sys_tcs_on_off()?0x8:0x00;
txmsg.Data[0] = Get_sys_quickly_arrange()?0x0:0x10;
if(Get_sys_grade() >= 7)
txmsg.Data[1] = 0xFF;//档位
else
txmsg.Data[1] = Get_sys_grade();//档位
txmsg.Data[2] = Get_sys_velocity();//速度
txmsg.Data[3] = 0x00;
txmsg.Data[4] = 0x00;
txmsg.Data[5] = 0x00;
txmsg.Data[6] = 0x00;
txmsg.Data[7] = 0x00;
for (;;) {
txmsg.Data[0] = Get_sys_tcs_on_off()?0x8:0x00;
iCanWrite(cap, &txmsg, 1, 0);
vTaskDelay(pdMS_TO_TICKS(100));
if(Get_sys_power_on_self_test() == 100){
txmsg.Data[0] = Get_sys_quickly_arrange()?0x0:0x10;
if(Get_sys_grade() >= 7)
txmsg.Data[1] = 0xFF;//档位
else
txmsg.Data[1] = Get_sys_grade();
txmsg.Data[2] = Get_sys_velocity();
iCanWrite(cap, &txmsg, 1, 0);
}
vTaskDelay(pdMS_TO_TICKS(10));
}
}
#endif
@ -794,11 +813,18 @@ static void can_rxdemo_thread(void *param)
#else
switch(rxmsg[i].StdId){
// #ifdef UI_VIEW_QUICKLY_ARRANGE
// case 0x100:
// if(abs_speed_flag != 10)
// abs_speed_flag = 10;
// ASB_speed_event_handing(tlv_data_value);
// break;
// #endif
case 0x141:
if(abs_speed_flag != 10)
abs_speed_flag = 10;
ASB_141_speed_event_handing(tlv_data_value);
break;
case 0x101:
if(speed_flag != 10)
speed_flag = 10;
@ -841,7 +867,7 @@ int can_demo(void)
// canfilter.ID = 0x37B;
// canfilter.IDMASK = 0x7ff;
canfilter.ID = 0x402;
canfilter.IDMASK = 0x503;
canfilter.IDMASK = 0X543;
vCanSetFilter(cap, &canfilter);
#endif

View File

@ -633,8 +633,10 @@ int carlink_bt_wifi_init()
printf("bt wlan init is ok\r\n");
// app_wifi_update_demo();
wifi_update_init();
printf("app wlan update init ok\r\n");
// wifi_update_init();
// printf("app wlan update init ok\r\n");
return 0;
}

View File

@ -5,24 +5,38 @@
#include "chip.h"
#include "data_port.h"
#include "gear_protocol.h"
#include "moto_config.h"
extern void check_key(void);
// 定义定时器句柄
TimerHandle_t xTimer;
uint8_t GPIO_value_high[7];
#define IO_KEEP 4
#ifdef UI_VIEW_QUICKLY_ARRANGE
#define IO_KEEP 1 //采样大于1次
#define CNT_KEEP 1 //20ms一次判断
#else
#define IO_KEEP 2 //采样大于两次
#define CNT_KEEP 3 //30ms一次判断
#endif
uint8_t gpio_pins[7] = {GPIO_D6, GPIO_D5, GPIO_D4, GPIO_D3, GPIO_D2, GPIO_D1, GPIO_N};
void grade_key(void){
#ifdef UI_VIEW_QUICKLY_ARRANGE
static uint8_t Gear_value = 7;
#else
uint8_t Gear_value = 7;
#endif
static uint8_t cnt =0;
//数据顺序 N 1 2 3 4 5 6 ABS TCS FAN ENG YG R L RMT
//挡位高电平触发, 灯光、ABS、TCS、FAN ENG 低电平触发
if(gpio_get_value(GPIO_GRADE_N))
{
GPIO_value_high[GPIO_N]++;
if(GPIO_value_high[GPIO_N] == IO_KEEP)
{
Gear_value = 0;
printf("N\r\n");
}
}
else
GPIO_value_high[GPIO_N] = 0;
@ -30,11 +44,6 @@ void grade_key(void){
if(gpio_get_value(GPIO_GRADE_D1))
{
GPIO_value_high[GPIO_D1]++;
if(GPIO_value_high[GPIO_D1] == IO_KEEP)
{
Gear_value = 1;
printf("D1\r\n");
}
}
else
GPIO_value_high[GPIO_D1] = 0;
@ -42,11 +51,6 @@ void grade_key(void){
if(gpio_get_value(GPIO_GRADE_D2))
{
GPIO_value_high[GPIO_D2]++;
if(GPIO_value_high[GPIO_D2] == IO_KEEP)
{
Gear_value = 2;
printf("D2\r\n");
}
}
else
GPIO_value_high[GPIO_D2] = 0;
@ -54,11 +58,6 @@ void grade_key(void){
if(gpio_get_value(GPIO_GRADE_D3))
{
GPIO_value_high[GPIO_D3]++;
if(GPIO_value_high[GPIO_D3] == IO_KEEP)
{
Gear_value = 3;
printf("D3\r\n");
}
}
else
GPIO_value_high[GPIO_D3] = 0;
@ -66,11 +65,6 @@ void grade_key(void){
if(gpio_get_value(GPIO_GRADE_D4))
{
GPIO_value_high[GPIO_D4]++;
if(GPIO_value_high[GPIO_D4] == IO_KEEP)
{
Gear_value = 4;
printf("D4\r\n");
}
}
else
GPIO_value_high[GPIO_D4] = 0;
@ -78,11 +72,6 @@ void grade_key(void){
if(gpio_get_value(GPIO_GRADE_D5))
{
GPIO_value_high[GPIO_D5]++;
if(GPIO_value_high[GPIO_D5] == IO_KEEP)
{
Gear_value = 5;
printf("D5\r\n");
}
}
else
GPIO_value_high[GPIO_D5] = 0;
@ -90,16 +79,25 @@ void grade_key(void){
if(gpio_get_value(GPIO_GRADE_D6))
{
GPIO_value_high[GPIO_D6]++;
if(GPIO_value_high[GPIO_D6] == IO_KEEP)
{
Gear_value = 6;
printf("D6\r\n");
}
}
else
GPIO_value_high[GPIO_D6] = 0;
Set_sys_grade(Gear_value);
cnt++;
if(cnt>=CNT_KEEP){
// if(cnt){
// 针对当前档位进行赋值
for (uint8_t i = 0; i < 7; i++) {
if (GPIO_value_high[gpio_pins[i]] >= IO_KEEP) {
Gear_value = (6-i); // 根据索引设置 Gear_value
break; // 找到第一个符合条件的引脚后退出循环
}
}
Set_sys_grade(Gear_value);
cnt=0;
memset(GPIO_value_high, 0, 7); //buff初始化
}
}
// 定时器回调函数
@ -109,13 +107,25 @@ void vTimerCallback(TimerHandle_t xTimer) {
check_key();
//档位检测
grade_key();
}
void Moto_gpio_timer(void) {
static void gear_gpio_init(void){
gpio_direction_input(GPIO_GRADE_N);
gpio_direction_input(GPIO_GRADE_D1);
gpio_direction_input(GPIO_GRADE_D2);
gpio_direction_input(GPIO_GRADE_D3);
gpio_direction_input(GPIO_GRADE_D4);
gpio_direction_input(GPIO_GRADE_D5);
gpio_direction_input(GPIO_GRADE_D6);
}
void Moto_gpio_timer(void) {
gear_gpio_init();
// 创建定时器
xTimer = xTimerCreate("MyTimer", // 定时器名称
pdMS_TO_TICKS(20), // 定时器周期1000毫秒
pdMS_TO_TICKS(5), // 定时器周期1000毫秒
pdTRUE, // 自动重载定时器
(void *)0, // 定时器 ID
vTimerCallback); // 回调函数

View File

@ -3,7 +3,7 @@
#include "awtk.h"
#include "gpio_protocol.h"
#include "tkc/types_def.h"

View File

@ -61,6 +61,11 @@ uint8_t getBit4Value(uint8_t count, int bitPosition) {
return (count >> bitPosition) & 0xf;
}
// 封装的函数获取5个bit组合成的值
uint8_t getBit5Value(uint8_t count, int bitPosition) {
return (count >> bitPosition) & 0x1f;
}
double adc_voltage_calculation(void){
double value = 0;
@ -306,31 +311,31 @@ void data_analysis(uint8_t *buf){
//按键 高set 低mod
data = *(buf++);
#ifdef KEY_EXCHANGE
if(JUDGE_BIN_4(data))
Key_Distinction(KEY_DATA_PRESS,LV_KEY_OPTION);
else if(JUDGE_BIN_5(data))
Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_OPTION);
else if(JUDGE_BIN_0(data))
Key_Distinction(KEY_DATA_PRESS,LV_KEY_SELECT);
else if(JUDGE_BIN_1(data))
Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_SELECT);
else if(JUDGE_BIN_7(data)){
Key_Distinction(KEY_DATA_PRESS,LV_KEY_OTHER1);
}
#else
if(JUDGE_BIN_0(data))
Key_Distinction(KEY_DATA_PRESS,LV_KEY_OPTION);
else if(JUDGE_BIN_1(data))
Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_OPTION);
else if(JUDGE_BIN_4(data))
Key_Distinction(KEY_DATA_PRESS,LV_KEY_SELECT);
else if(JUDGE_BIN_5(data))
Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_SELECT);
else if(JUDGE_BIN_7(data)){
Key_Distinction(KEY_DATA_PRESS,LV_KEY_OTHER1);
}
#endif
// #ifdef KEY_EXCHANGE
// if(JUDGE_BIN_4(data))
// Key_Distinction(KEY_DATA_PRESS,LV_KEY_OPTION);
// else if(JUDGE_BIN_5(data))
// Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_OPTION);
// else if(JUDGE_BIN_0(data))
// Key_Distinction(KEY_DATA_PRESS,LV_KEY_SELECT);
// else if(JUDGE_BIN_1(data))
// Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_SELECT);
// else if(JUDGE_BIN_7(data)){
// Key_Distinction(KEY_DATA_PRESS,LV_KEY_OTHER1);
// }
// #else
// if(JUDGE_BIN_0(data))
// Key_Distinction(KEY_DATA_PRESS,LV_KEY_OPTION);
// else if(JUDGE_BIN_1(data))
// Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_OPTION);
// else if(JUDGE_BIN_4(data))
// Key_Distinction(KEY_DATA_PRESS,LV_KEY_SELECT);
// else if(JUDGE_BIN_5(data))
// Key_Distinction(KEY_DATA_LONG_PRESS,LV_KEY_SELECT);
// else if(JUDGE_BIN_7(data)){
// Key_Distinction(KEY_DATA_PRESS,LV_KEY_OTHER1);
// }
// #endif
//速度
data = *(buf++);
#ifndef DATA_CAN
@ -431,11 +436,11 @@ void data_analysis(uint8_t *buf){
//档位
data = *(buf++);
if(data == 0){
Set_sys_grade(0);
}else if(data < 8){
Set_sys_grade(data);
}
// if(data == 0){
// Set_sys_grade(0);
// }else if(data < 8){
// Set_sys_grade(data);
// }
//油量
oil = *(buf++);

View File

@ -11,6 +11,8 @@ uint8_t getBit2Value(uint8_t count, int bitPosition);
uint8_t getBit3Value(uint8_t count, int bitPosition);
// 封装的函数获取4个bit组合成的值
uint8_t getBit4Value(uint8_t count, int bitPosition);
// 封装的函数获取5个bit组合成的值
uint8_t getBit5Value(uint8_t count, int bitPosition);
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

File diff suppressed because one or more lines are too long

View File

@ -171,6 +171,7 @@
#include "default/inc/images/time_select.res"
#include "default/inc/images/tire.res"
#include "default/inc/images/wifi.res"
#include "default/inc/images/_12_1x.res"
#else
#endif /*WITH_STB_IMAGE*/
#ifdef WITH_VGCANVAS
@ -359,6 +360,7 @@ ret_t assets_init_default(void) {
assets_manager_add(am, image_time_select);
assets_manager_add(am, image_tire);
assets_manager_add(am, image_wifi);
assets_manager_add(am, image__12_1x);
#ifdef WITH_VGCANVAS
#endif /*WITH_VGCANVAS*/
#ifdef WITH_TRUETYPE_FONT

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -171,6 +171,7 @@
#include "assets/default/inc/images/time_select.res"
#include "assets/default/inc/images/tire.res"
#include "assets/default/inc/images/wifi.res"
#include "assets/default/inc/images/_12_1x.res"
#else
#endif /*WITH_STB_IMAGE*/
#ifdef WITH_VGCANVAS
@ -360,6 +361,7 @@ ret_t assets_init(void) {
assets_manager_add(am, image_time_select);
assets_manager_add(am, image_tire);
assets_manager_add(am, image_wifi);
assets_manager_add(am, image__12_1x);
#ifdef WITH_VGCANVAS
#endif /*WITH_VGCANVAS*/
#ifdef WITH_TRUETYPE_FONT

View File

@ -83,4 +83,23 @@ uint8_t getBitValue(uint8_t count, int bitPosition) {
}
#endif
// 封装的函数获取2个bit组合成的值
uint8_t getBit2Value(uint8_t count, int bitPosition) {
return (count >> bitPosition) & 0x3;
}
// 封装的函数获取3个bit组合成的值
uint8_t getBit3Value(uint8_t count, int bitPosition) {
return (count >> bitPosition) & 0x7;
}
// 封装的函数获取4个bit组合成的值
uint8_t getBit4Value(uint8_t count, int bitPosition) {
return (count >> bitPosition) & 0xf;
}
// 封装的函数获取5个bit组合成的值
uint8_t getBit5Value(uint8_t count, int bitPosition) {
return (count >> bitPosition) & 0x1f;
}
#endif /*WITH_MVVM*/

View File

@ -7,6 +7,7 @@
#define MOTO_ICMX_GB518_A270M 1
#define MOTO_ICMX_GB518_A270M_KP 2
#define MOTO_ICMX_GB518_A270S 3
#define MOTO_ICMX_GB518_A270S_KP 4
#define MOTO_WARE_HOSE MOTO_ICMX_GB518_A270S
@ -28,10 +29,20 @@
#elif (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270S)
#define SOFT_WARE_HOST 0
#define SOFT_WARE_ORDER 2
#define SOFT_WARE_ORDER 3
#define HARD_WARE "MXC-A27-M V4.5"
#define HARD_WARE_LABEL "4.5"
#define KEY_EXCHANGE 1
#define MCU_INFO_LABEL "A270S"
#elif (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270S_KP)
#define SOFT_WARE_HOST 0
#define SOFT_WARE_ORDER 2
#define HARD_WARE "MXC-A27-S-KP V4.5"
#define HARD_WARE_LABEL "4.5"
#define KEY_EXCHANGE 1
#define UI_VIEW_QUICKLY_ARRANGE 1//快排功能宏
#else

View File

@ -169,7 +169,7 @@ void Power_On_Self_Test(void){
widget_t* win = window_manager();
widget_t* child = window_manager_get_top_main_window(win);
widget_t* progress_circle = widget_lookup(win, "progress_circle", TRUE);
widget_set_animation(progress_circle, "value(duration=1000,yoyo_times=1,easing=linear,from=120,to=1)");
widget_set_animation(progress_circle, "value(duration=800,yoyo_times=1,easing=linear,from=120,to=1)");
}
//长按事件处理
@ -299,7 +299,7 @@ double calculateTotalDistance(uint8_t count)
void ASB_speed_event_handing(int *buf){
#if (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270S_KP)
#ifdef UI_VIEW_QUICKLY_ARRANGE
uint8_t data = 0;
uint8_t speed_data = 0;
uint8_t speed_flag = 0;
@ -314,7 +314,8 @@ void ASB_speed_event_handing(int *buf){
speed_flag = getBitValue(data,2);
// printf("frontflag=%d.\r\n",speed_flag);
//前轮速度有效
if(!speed_flag){
// if(!speed_flag){
if(0){
// printf("front>speed_data=%05X,speed=%08X,",speed_data,speed);
speed = speed_data | speed<<5;
// printf("rearspeed=%X.\r\n",speed);
@ -352,7 +353,8 @@ void ASB_speed_event_handing(int *buf){
// printf("data3=%X.\r\n",speed_data);
speed_flag = getBitValue(data,4);
// printf("rearflag=%d.\r\n",speed_flag);
if(!speed_flag){
// if(!speed_flag){
if(1){
speed = speed_data | speed<<3;
// printf("rearspeed=%X.\r\n",speed);
@ -385,6 +387,54 @@ void ASB_speed_event_handing(int *buf){
#endif
}
void ASB_141_speed_event_handing(int *buf){
#ifdef UI_VIEW_QUICKLY_ARRANGE
uint8_t data = 0;
uint8_t speed_data = 0;
uint8_t speed_flag = 0;
uint16_t speed = 0;
uint32_t trip = 0;
uint32_t total = 0;
uint16_t display_speed = 0;
*(buf++)&0xFF;
*(buf++)&0xFF;
*(buf++)&0xFF;
*(buf++)&0xFF;
speed = *(buf++)&0xFF;
data = *(buf++)&0xFF;
speed_data = getBit5Value(data,3);
speed = speed_data | speed<<5;
speed = (int)(speed * 0.05625);//偏移系数
display_speed = speed;//UI显示上浮8%
// printf("display_speed=%X>%d,",speed,speed);
speed = (int)(speed * 0.92);
// printf("mile_speed=%X>%d.\r\n",speed,speed);
total_mile += calculateTotalDistance(speed);
if(display_speed>=255)
display_speed = 255;
Set_sys_velocity(display_speed);
trip = flash_trip_mile + total_mile;
total = flash_total_mile + total_mile;
if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
save_total_mile = 1;
total_flag = total;
}
Set_sys_trip_mileage(trip);
Set_sys_total_mileage(total);
#endif
}
void speed_event_handing(int *buf){
uint16_t veer_velocity = 0;
uint16_t eng_temp = 0;
@ -403,13 +453,15 @@ void speed_event_handing(int *buf){
speed = *(buf++)&0xFF;
display_speed = speed;//UI显示上浮8%
speed = (int)(speed * 0.92);
#else
*(buf++)&0xFF;
#endif
*(buf++);
eng_temp = *(buf++) &0xFF;
eng_temp = (*(buf++)&0xFF) | eng_temp<<8;
*(buf++);
// *(buf++);
#if SPEED_DATA_CAN
if(veer_velocity>16384)
veer_velocity = 16384;
@ -1254,7 +1306,7 @@ void information_win_init(widget_t* win){
widget_set_text_utf8(child,tmpStr);
child = widget_lookup(win, "pcb", TRUE);
tk_snprintf(tmpStr, sizeof(tmpStr), "%s V%d.%d",Get_device_produce_num(),Get_device_hardware_version_host(),Get_device_hardware_version_order());
tk_snprintf(tmpStr, sizeof(tmpStr), "%s V%d.%d",MCU_INFO_LABEL,Get_device_hardware_version_host(),Get_device_hardware_version_order());
widget_set_text_utf8(child,tmpStr);
child = widget_lookup(win, "bt", TRUE);

View File

@ -77,5 +77,6 @@ void list_theme_button2_init(void);
void list_theme_button4_init(void);
void speed_event_handing(int *buf);
void ASB_141_speed_event_handing(int *buf);
#endif

View File

@ -201,6 +201,39 @@ static void tp_init(widget_t *win) {
}*/
select_tab = widget_lookup(win, "cp_tab", TRUE);
#else
// 关闭对应按钮
widget_t *dis_tab = widget_lookup(win, "aa_tab", TRUE);
widget_t *cp_tab = widget_lookup(win, "cp_tab", TRUE);
widget_t *ec_tab = widget_lookup(win, "ec_tab", TRUE);
widget_set_visible(dis_tab, FALSE);
widget_set_visible(cp_tab, FALSE);
widget_set_visible(ec_tab, TRUE);
widget_set_visible(carplay_view, FALSE);
widget_set_visible(android_view, FALSE);
widget_set_visible(p2p_view, TRUE);
widget_t *bt_name = widget_lookup(win, "bt_name", TRUE);
printf("strQrText=%s.\r\n",strQrText);
widget_t *qr1 = qr_create(qr_view, 40, 81, 200, 200);
// printf("qr1 >>option>> %d.\r\n",widget_index_of(qr1));
qr_set_value(qr1, strQrText);
// getLastNChars(strQrText, 22, tmpStr);
getTextAfterLastEqual(strQrText, tmpStr);
widget_set_text_utf8(bt_name, tmpStr);
widget_t *uuid = widget_lookup(win, "uuid", TRUE);
tk_snprintf(tmpStr, sizeof(tmpStr), "uuid:%s", UI_uuid);
// printf("UI_uuid > %s .\r\n",UI_uuid);
widget_set_text_utf8(uuid, tmpStr);
// printf("tmpStr>%s.\r\n",tmpStr);
ap_get_ssid(strQrText, tmpStr);
printf("wifi_name>%s.\r\n",tmpStr);
ap_get_pwd(strQrText, tmpStr);
printf("wifi_pwd>%s.\r\n",tmpStr);
qr_flag = 1;
select_tab = widget_lookup(win, "ec_tab", TRUE);
#endif
@ -563,6 +596,11 @@ static ret_t on_new_key_down(void *ctx, event_t *e) {
#if (MOTO_WARE_HOSE == MOTO_ICMX_A591F)
return_demo();
#else
#ifdef UI_VIEW_QUICKLY_ARRANGE
return_demo();
#else
if(Get_sys_wifi_state())//连接上不允许切换
return RET_OK;
widget_t *qr_view = widget_lookup(win, "qr_view", TRUE);
@ -659,6 +697,8 @@ static ret_t on_new_key_down(void *ctx, event_t *e) {
break;
}
#endif
#endif
} else if (evt->key == TK_KEY_q) { // 灯光开关
return_demo();
}

View File

@ -191,6 +191,16 @@ void UI_init(void){
#ifdef AMT630HV100
#ifdef UI_VIEW_QUICKLY_ARRANGE
printf("awtk init .ec\r\n");
Set_sys_tp_state(2);
carlink_cp_enable(0);
carlink_aa_enable(0);
carlink_ec_enable(1);
#else
#if (MOTO_WARE_HOSE == MOTO_ICMX_A580A || (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270S))
if(!Get_sys_tp_state()){//carplay
printf("awtk init carplay.\r\n");
@ -231,6 +241,8 @@ void UI_init(void){
}
#endif
#endif
#endif
@ -573,11 +585,11 @@ void* test_timer_queue(void *args){
A27_BT_init();
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"));//修改蓝牙名
#ifdef AMT630HV100
vTaskDelay(800);
#else
sleep_ms(800);
#endif
// #ifdef AMT630HV100
// vTaskDelay(800);
// #else
// sleep_ms(800);
// #endif
Power_On_Self_Test();
#ifdef AMT630HV100
@ -590,7 +602,7 @@ 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){
if(xTaskGetTickCount() - idletick > configTICK_RATE_HZ * 2.5){
UI_init();
}
}

View File

@ -114,6 +114,7 @@ void vApplicationIRQHandler( void );
static void wifi_reset(void)
{
printf("BT_RESET_IO = %d.\r\n",BT_RESET_IO);
gpio_direction_output(WIFI_RESET_IO, 1);//WiFi复位
gpio_direction_output(WIFI_EN_IO, 1);//wifi-en
gpio_direction_output(BT_RESET_IO, 0);//wifi蓝牙复位
@ -308,7 +309,7 @@ static void prvSetupHardware( void )
//灯光全开
light_gpio_init();
#else
// Moto_gpio_timer();
Moto_gpio_timer();
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -25,7 +25,7 @@ if not "%~1" == "" goto debugFile
@echo on
"E:\IAR\common\bin\cspybat" -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" --backend -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
"E:\IAR\common\bin\cspybat" -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" --backend -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
@echo off
goto end
@ -34,7 +34,7 @@ goto end
@echo on
"E:\IAR\common\bin\cspybat" -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" "--debug_file=%~1" --backend -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
"E:\IAR\common\bin\cspybat" -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" "--debug_file=%~1" --backend -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
@echo off
:end

View File

@ -23,9 +23,9 @@
if ($debugfile -eq "")
{
& "E:\IAR\common\bin\cspybat" -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" --backend -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
& "E:\IAR\common\bin\cspybat" -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" --backend -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
}
else
{
& "E:\IAR\common\bin\cspybat" -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" --debug_file=$debugfile --backend -f "G:\mengxun\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
& "E:\IAR\common\bin\cspybat" -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.general.xcl" --debug_file=$debugfile --backend -f "G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\settings\amt630hv100.AWTK.driver.xcl"
}

View File

@ -2,7 +2,7 @@
"E:\IAR\arm\bin\armjlink2.dll"
"G:\mengxun\MXC_A27-PCB4.5-270S\proj\AWTK\Exe\amt630hv100.out"
"G:\mengxun\MAX_CARLINK_A270S\MXC_A27-PCB4.5-270S\proj\AWTK\Exe\amt630hv100.out"
--plugin="E:\IAR\arm\bin\armbat.dll"

View File

@ -137,7 +137,7 @@
<RecentlyUsedMenus>1</RecentlyUsedMenus>
<MenuShadows>1</MenuShadows>
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
<CommandsUsage>0C0900008B0001DC00000300000002860000010000005786000001000000268400000300000019800000010000005984000002000000138600002801000021DE0000010000000880000001000000298100000C00000040E10000010000002CE10000020000007884000003000000048100000500000000DA00000100000015810000030000005684000001000000268100000100000010860000D003000045810000010000003184000001000000AF0600000400000016B0000001000000239200000100000007E100000200000029E1000001000000018100000E000000878000000A000000D884000002000000009000000500000002B0000001000000ED800000010000005F8600000700000020810000010000000F8100000200000004E1000002000000A680000001000000EA800000010000001D920000010000000D8000000200000026DE0000020000001D8100000900000001E10000070000003F810000010000000C8100009701000003DC000004000000D185000002000000048600000100000009810000010000001A8F00000100000003840000050000000186000001000000568600000F0000002881000001000000178100000500000000DC00000100000014810000060000007784000002000000558400001800000047810000010000003384000001000000808C0000010000002BE100000B0000000084000003000000118400000100000007B00000020000008386000002000000228100000100000028E100000100000085840000010000008980000001000000EF800000010000000E840000010000000C860000030000000081000001000000098600000100000028DE000003000000978000000100000025E100002C010000EC800000010000005E8600001600000003E100000A0000001A860000030000000E810000010000001F8100004701000000E1000002000000A5800000010000000B8100000E0000008E86000001000000E980000002000000D184000001000000038600000100000027840000010000002B8000000100000069860000010000005886000001000000058400000A00000014860000D900000002DC0000010000001681000001000000198F0000030000002A8F000002000000F4800000010000000086000001000000028400000300000027810000040000005586000002000000058100002000000011860000BD000000028100000100000074860000010000000BDE00000100000017B00000010000002AE1000001000000108400000D00000046810000D70000005184000001000000A486000001000000888000000100000044D50000010000004381000001000000608600004B000000EE8000000100000003B00000010000002181000006000000D684000001000000A186000002000000EB800000010000005D860000060000001E8100000300000035E100000600000002E100000300000008860000020000000D8100001000000024E1000001000000058600000100000007840000010000000A81000002000000E880000001000000</CommandsUsage>
<CommandsUsage>680900008B0001DC00000300000002860000010000005786000001000000268400000300000019800000010000005984000002000000138600002C01000021DE0000010000000880000001000000298100000C00000040E10000010000002CE10000020000007884000003000000048100000500000000DA00000100000015810000030000005684000001000000268100000100000010860000FD03000045810000010000003184000001000000AF0600000400000016B0000001000000239200000100000007E100000200000029E1000001000000018100000E000000878000000A000000D884000002000000009000000500000002B0000001000000ED800000010000005F8600000700000020810000010000000F8100000200000004E1000002000000A680000001000000EA800000010000001D920000010000000D8000000200000026DE0000020000001D8100000900000001E10000070000003F810000010000000C8100009701000003DC000004000000D185000002000000048600000100000009810000010000001A8F00000100000003840000050000000186000001000000568600000F0000002881000001000000178100000500000000DC00000100000014810000060000007784000002000000558400001800000047810000010000003384000001000000808C0000010000002BE100000B0000000084000003000000118400000100000007B00000020000008386000002000000228100000100000028E100000100000085840000010000008980000001000000EF800000010000000E840000010000000C860000030000000081000001000000098600000100000028DE000003000000978000000100000025E100002C010000EC800000010000005E8600001600000003E100000A0000001A860000030000000E810000010000001F8100005801000000E1000002000000A5800000010000000B8100000E0000008E86000001000000E980000002000000D184000001000000038600000100000027840000010000002B8000000100000069860000010000005886000001000000058400000A00000014860000DE00000002DC0000010000001681000001000000198F0000030000002A8F000002000000F4800000010000000086000001000000028400000300000027810000040000005586000002000000058100002000000011860000C2000000028100000100000074860000010000000BDE00000100000017B00000010000002AE1000001000000108400000D00000046810000E60000005184000001000000A486000001000000888000000100000044D50000010000004381000001000000608600004B000000EE8000000100000003B00000010000002181000006000000D684000001000000A186000002000000EB800000010000005D860000070000001E8100000300000035E100000600000002E100000300000008860000020000000D8100001000000024E1000001000000058600000100000007840000010000000A81000002000000E880000001000000</CommandsUsage>
</MFCToolBarParameters>
<CommandManager>
<CommandsWithoutImages>4A0008800000098000000A8000000B8000000C800000158000000A810000FFFFFFFF01E8000012810000D2840000D1850000D78600000C84000033840000788400001184000020DE000021DE000026DE000028DE000023DE000022DE000024DE000027DE000025DE000020920000289200002992000037920000389200003492000033920000259200001E92000000DC000001DC000002DC000003DC0000748600007784000007840000808C000044D50000838600005886000004DC000001B0000002B0000003B0000004B0000005B0000006B0000007B0000008B0000009B000000AB000000BB000000CB000000DB000000EB0000000B00000248100002AE10000008200001C8200000182000067860000008800000188000002880000038800000488000005880000</CommandsWithoutImages>
@ -880,7 +880,7 @@
</BasePane-34049>
<MFCToolBar-34050>
<Name>Main</Name>
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000064000000FFFEFF000000000000000000000000000100000001000000018001E100000000000065000000FFFEFF000000000000000000000000000100000001000000018003E100000000000067000000FFFEFF0000000000000000000000000001000000010000000180008100000000000048000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006C000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006B000000FFFEFF000000000000000000000000000100000001000000018025E10000000000006E000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040071000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040072000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005B000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006D000000FFFEFF000000000000000000000000000100000001000000018028E10000000004006F000000FFFEFF000000000000000000000000000100000001000000018029E100000000000070000000FFFEFF000000000000000000000000000100000001000000018002810000000000004A000000FFFEFF000000000000000000000000000100000001000000018029810000000000005F000000FFFEFF000000000000000000000000000100000001000000018027810000000000005D000000FFFEFF000000000000000000000000000100000001000000018028810000000000005E000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040057000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040058000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000004004E000000FFFEFF00000000000000000000000000010000000100000001800C810000000000004F000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000063000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F8100000000000059000000FFFEFF000000000000000000000000000100000001000000018020810000000000005A000000FFFEFF0000000000000000000000000001000000010000000180468100000000020061000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons>
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000064000000FFFEFF000000000000000000000000000100000001000000018001E100000000000065000000FFFEFF000000000000000000000000000100000001000000018003E100000000000067000000FFFEFF0000000000000000000000000001000000010000000180008100000000000048000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006C000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006B000000FFFEFF000000000000000000000000000100000001000000018025E10000000000006E000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040071000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040072000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000000018021810000000004005B000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006D000000FFFEFF000000000000000000000000000100000001000000018028E10000000004006F000000FFFEFF000000000000000000000000000100000001000000018029E100000000000070000000FFFEFF000000000000000000000000000100000001000000018002810000000000004A000000FFFEFF000000000000000000000000000100000001000000018029810000000000005F000000FFFEFF000000000000000000000000000100000001000000018027810000000000005D000000FFFEFF000000000000000000000000000100000001000000018028810000000000005E000000FFFEFF00000000000000000000000000010000000100000001801D8100000000000057000000FFFEFF00000000000000000000000000010000000100000001801E8100000000040058000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B810000000000004E000000FFFEFF00000000000000000000000000010000000100000001800C810000000000004F000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000063000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F8100000000000059000000FFFEFF000000000000000000000000000100000001000000018020810000000000005A000000FFFEFF0000000000000000000000000001000000010000000180468100000000020061000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons>
</MFCToolBar-34050>
<Pane-34050>
<ID>34050</ID>

View File

@ -19,7 +19,7 @@
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
</JLinkDriver>
<DebugChecksum>
<Checksum>2086614885</Checksum>
<Checksum>1136125129</Checksum>
</DebugChecksum>
<Exceptions>
<StopOnUncaught>_ 0</StopOnUncaught>
@ -72,7 +72,7 @@
<Bp19>_ 0 "EMUL_CODE" "{$PROJ_DIR$\..\FreeRTOS-Plus\FreeRTOS-Plus-TCP\FreeRTOS_Sockets.c}.365.13" 0 0 1 "" 0 "" 0</Bp19>
<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>_ 1 "EMUL_CODE" "{$PROJ_DIR$\..\lib\lwip\src\api\sockets.c}.1988.5" 0 0 1 "" 0 "" 0</Bp22>
<Bp22>_ 0 "EMUL_CODE" "{$PROJ_DIR$\..\lib\lwip\src\api\sockets.c}.1988.5" 0 0 1 "" 0 "" 0</Bp22>
<Count>23</Count>
</Breakpoints2>
<Aliases>
@ -88,7 +88,8 @@
<A9>_ "E:\proj\HMI\SW\HMI_AWTK_SDK\VG_DRIVER_FREERTOS_10_4_3\software\VIVANTE_GAL_OpenVG_Src_drv\hal\user\gcBuffer.c" ""</A9>
<A10>_ "E:\proj\HMI\SW\HMI_AWTK_SDK\VG_DRIVER_FREERTOS_10_4_3\software\VIVANTE_GAL_OpenVG_Src_drv\hal\user\gcHeap.c" ""</A10>
<A11>_ "E:\proj\HMI\SW\HMI_AWTK_SDK\nanovg\fontstash.h" ""</A11>
<Count>12</Count>
<A12>_ "E:\proj\HMI\SW\HMI_AWTK_SDK\nanovg\nanovg.c" ""</A12>
<Count>13</Count>
<SuppressDialog>1</SuppressDialog>
</Aliases>
</settings>

File diff suppressed because one or more lines are too long