Commit 74500fcf authored by 何锐's avatar 何锐

feat:增加版本号校验,增加光感显示,增加0TA升级

parent cda7f08d
...@@ -53,6 +53,8 @@ uint8_t btmac[6]; ...@@ -53,6 +53,8 @@ uint8_t btmac[6];
uint8_t firstpowerflag = 0; uint8_t firstpowerflag = 0;
uint16_t lightnumber = 0; uint16_t lightnumber = 0;
uint8_t writeflag = 0; uint8_t writeflag = 0;
uint8_t UbootMajor;
uint8_t UbootMinor;
void get_key(void) void get_key(void)
{ {
key_array[0] = seed_value[0] | seed_value[3]; key_array[0] = seed_value[0] | seed_value[3];
...@@ -179,6 +181,8 @@ void datacheck(void) ...@@ -179,6 +181,8 @@ void datacheck(void)
blename[4] = 0xff; blename[4] = 0xff;
lightnumber = (RS485_data[12]<<8)+RS485_data[11]; lightnumber = (RS485_data[12]<<8)+RS485_data[11];
writeflag = RS485_data[13]; writeflag = RS485_data[13];
UbootMajor = RS485_data[14];
UbootMinor = RS485_data[15];
} }
// General_Number_Disp(blename, 3, 165); // General_Number_Disp(blename, 3, 165);
......
...@@ -11,6 +11,8 @@ void Recv_Byte(void); ...@@ -11,6 +11,8 @@ void Recv_Byte(void);
void Recv_Byte1(void); void Recv_Byte1(void);
void Recv_Byte2(void); void Recv_Byte2(void);
extern uint8_t GetDataCompare(void); extern uint8_t GetDataCompare(void);
extern uint8_t UbootMajor;
extern uint8_t UbootMinor;
extern uint32_t readNum; extern uint32_t readNum;
extern uint8_t BarCode[256]; extern uint8_t BarCode[256];
extern uint32_t readNum1; extern uint32_t readNum1;
......
...@@ -439,14 +439,89 @@ uint8_t yibiaoshuju[34]; ...@@ -439,14 +439,89 @@ uint8_t yibiaoshuju[34];
// Buzzer_Warning(); // Buzzer_Warning();
break; break;
// case 4: case 4: //AP模式
if(Auto_ONOFF == 0)
{
// break; LINE_OUT_NEG_01 = 1;
LINE_OUT_NEG_04 = 1;
LINE_OUT_NEG_02 = 1;
LINE_OUT_NEG_03 = 1;
}
RightturnSignal = 0;
LeftturnSignal = 1;
Bluetoothlight = 0;
Positionlight = 1;
highbeam = 0;
Lowbeam = 0;
GUI_Display_Version_Code_Service(15, 120, "OTA ", Letter_Num_11, PCodeText_Space_size);
GUI_Display_Version_Code_Service(15, 150, "Name is ", Letter_Num_11, PCodeText_Space_size);
blnamedisplay[0] = name2 / 16;
blnamedisplay[1] = name2 % 16;
blnamedisplay[2] = name1 / 16;
blnamedisplay[3] = name1 % 16;
for(int i = 0; i<4; i++)
{
if(blnamedisplay[i] >= 10)
{
blnamedisplay[i] += 55;
}
}
blenamedisplay[0] = blnamedisplay[0];
blenamedisplay[1] = blnamedisplay[1];
blenamedisplay[2] = blnamedisplay[2];
blenamedisplay[3] = blnamedisplay[3];
blenamedisplay[4] = 0xFF;
if(blnamedisplay[0]+blnamedisplay[1]+blnamedisplay[2]+blnamedisplay[3] != 0)
{
General_Number_Disp(blenamedisplay, 90, 154);
}
break;
case 5: //P2P模式
if(Auto_ONOFF == 0)
{
LINE_OUT_NEG_01 = 1;
LINE_OUT_NEG_04 = 1;
LINE_OUT_NEG_02 = 1;
LINE_OUT_NEG_03 = 1;
}
RightturnSignal = 1;
LeftturnSignal = 0;
Bluetoothlight = 0;
Positionlight = 1;
highbeam = 0;
Lowbeam = 0;
GUI_Display_Version_Code_Service(15, 120, "OTA ", Letter_Num_11, PCodeText_Space_size);
GUI_Display_Version_Code_Service(15, 150, "Name is ", Letter_Num_11, PCodeText_Space_size);
blnamedisplay[0] = name2 / 16;
blnamedisplay[1] = name2 % 16;
blnamedisplay[2] = name1 / 16;
blnamedisplay[3] = name1 % 16;
for(int i = 0; i<4; i++)
{
if(blnamedisplay[i] >= 10)
{
blnamedisplay[i] += 55;
}
}
blenamedisplay[0] = blnamedisplay[0];
blenamedisplay[1] = blnamedisplay[1];
blenamedisplay[2] = blnamedisplay[2];
blenamedisplay[3] = blnamedisplay[3];
blenamedisplay[4] = 0xFF;
if(blnamedisplay[0]+blnamedisplay[1]+blnamedisplay[2]+blnamedisplay[3] != 0)
{
General_Number_Disp(blenamedisplay, 90, 154);
}
break;
default: default:
// POWER_CTRL_KL30 = 0u; // POWER_CTRL_KL30 = 0u;
......
...@@ -20,6 +20,7 @@ uint16_t Fuel_Res; ...@@ -20,6 +20,7 @@ uint16_t Fuel_Res;
uint32_t loc_Current_0 = 0; uint32_t loc_Current_0 = 0;
const unsigned char gImage_cuo11[] = {24, 24,0X00,0X00,0X00,0X00,0X30,0X70,0XE0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0X70,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X83,0XC7,0X66,0X38,0X38,0X7C,0XE6,0XC3,0X81,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0C,0X0C,0X06,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03,0X07,0X0E,0X0C,0X00,0X00,0X00,0X00,}; const unsigned char gImage_cuo11[] = {24, 24,0X00,0X00,0X00,0X00,0X30,0X70,0XE0,0XC0,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0X70,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X83,0XC7,0X66,0X38,0X38,0X7C,0XE6,0XC3,0X81,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0C,0X0C,0X06,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03,0X07,0X0E,0X0C,0X00,0X00,0X00,0X00,};
const unsigned char gImage_dui11[] = {24, 24,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0XE0,0X40,0X00,0X00,0X00,0X00,0X08,0X18,0X30,0X70,0XC0,0X80,0X00,0X00,0X80,0XC0,0XE0,0X70,0X38,0X1C,0X0E,0X07,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03,0X07,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,}; const unsigned char gImage_dui11[] = {24, 24,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X80,0XC0,0XE0,0X40,0X00,0X00,0X00,0X00,0X08,0X18,0X30,0X70,0XC0,0X80,0X00,0X00,0X80,0XC0,0XE0,0X70,0X38,0X1C,0X0E,0X07,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X03,0X07,0X03,0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,};
const uint16_t ODODigitNum09PosXlight [] = {220,210,200,190,180,170};
//const uint16_t BackLightDigitNum09PosX[] = {30*9, 30*8, 30*7, 30*6, 30*5, 30*4, 30*3, 30*2, 30*1, 30*0}; //const uint16_t BackLightDigitNum09PosX[] = {30*9, 30*8, 30*7, 30*6, 30*5, 30*4, 30*3, 30*2, 30*1, 30*0};
//坐垫感应功能开启 //坐垫感应功能开启
const unsigned char gImage_icon_01X16_Y16[]={/*Byte Size834*/ const unsigned char gImage_icon_01X16_Y16[]={/*Byte Size834*/
...@@ -3884,7 +3885,7 @@ void Display_TFT_Clear(void) ...@@ -3884,7 +3885,7 @@ void Display_TFT_Clear(void)
TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR); TFT_LCD_Draw_Box(0, 0, 239, 319, TFT_LCD_FILL_FULL, TFT_LCD_TYPE_CLR);
} }
void Display_Add(void) void Display_Add( void)
{ {
Display_Menu_Type++; Display_Menu_Type++;
} }
...@@ -3893,12 +3894,22 @@ void Display_Sub(void) ...@@ -3893,12 +3894,22 @@ void Display_Sub(void)
if ( Display_Menu_Type != 0 ) if ( Display_Menu_Type != 0 )
Display_Menu_Type--; Display_Menu_Type--;
} }
uint8_t OTAMode;
uint8_t OTAModeBegin = 0;
uint32_t Get_Display_Type(void) uint32_t Get_Display_Type(void)
{ {
if(BlueTooth == 1) if(BlueTooth == 1)
{ {
return 3; return 3;
} }
else if(OTAMode == 1)
{
return 4;
}
else if(OTAMode == 2)
{
return 5;
}
else else
{ {
if(zhenduanflag == Data_Mode_Dot) if(zhenduanflag == Data_Mode_Dot)
...@@ -4771,10 +4782,18 @@ void Display_Version_Info(uint32_t ON_OFF) ...@@ -4771,10 +4782,18 @@ void Display_Version_Info(uint32_t ON_OFF)
General_Number_Disp(wifiruanjian, 190, 50); General_Number_Disp(wifiruanjian, 190, 50);
GUI_General_Digit_Display(wifihoumianbanben, Num_15, 2, 0, banebenhao4, 50); GUI_General_Digit_Display(wifihoumianbanben, Num_15, 2, 0, banebenhao4, 50);
//nboot版本号
uint8_t ubootqianmian[3] = {UbootMajor,0x2E,0xff};
uint8_t uboothoumianbanben = UbootMinor;
General_Number_Disp(ubootqianmian, 190, 25);
GUI_General_Digit_Display(uboothoumianbanben, Num_15, 2, 0, banebenhao4, 25);
//硬件版本号 //硬件版本号
const uint16_t Currenttest[] = {180,170}; const uint16_t Currenttest[] = {130,120};
GUI_General_Digit_Display(R485_IDB4h.Sig.Hardware_Version, Num_15, 2, 0, Currenttest, 50+30); GUI_General_Digit_Display(R485_IDB4h.Sig.Hardware_Version, Num_15, 2, 0, Currenttest, 50+30);
//光感显示
GUI_General_Digit_Display(lightnumber, Num_15, 6, 5, ODODigitNum09PosXlight, 80);
uint8_t wuliao[16]; uint8_t wuliao[16];
...@@ -4903,7 +4922,7 @@ void Display_Version_Info(uint32_t ON_OFF) ...@@ -4903,7 +4922,7 @@ void Display_Version_Info(uint32_t ON_OFF)
// TFT_LCD_Draw_Bmp(3, 160, ( uint8_t * )gImage_Alarm_12_WordX6_Y165); //24脚输出占空比 // TFT_LCD_Draw_Bmp(3, 160, ( uint8_t * )gImage_Alarm_12_WordX6_Y165); //24脚输出占空比
// TFT_LCD_Draw_Bmp(210, 160, ( uint8_t * )gImage_Alarm_13_ImageX222_Y166); //% // TFT_LCD_Draw_Bmp(210, 160, ( uint8_t * )gImage_Alarm_13_ImageX222_Y166); //%
TFT_LCD_Draw_Bmp(3, 290, ( uint8_t * )gImage_gImage_checkVX6_Y165 ); //检测台版本号 TFT_LCD_Draw_Bmp(3, 290, ( uint8_t * )gImage_gImage_checkVX6_Y165 ); //检测台版本号
uint8_t mbuff [7] = {2,5,1,2,1,6,0xff}; uint8_t mbuff [7] = {2,5,1,2,1,9,0xff};
General_Number_Disp(mbuff, 160, 290); General_Number_Disp(mbuff, 160, 290);
} }
......
...@@ -49,6 +49,8 @@ enum DisplayFont ...@@ -49,6 +49,8 @@ enum DisplayFont
extern unsigned int Display_Menu_Type; extern unsigned int Display_Menu_Type;
extern uint32_t odo_val_Back ; extern uint32_t odo_val_Back ;
extern uint8_t OTAMode;
extern uint8_t OTAModeBegin;
void GeneralInfoDisp(unsigned char *p, unsigned short x, unsigned short y); void GeneralInfoDisp(unsigned char *p, unsigned short x, unsigned short y);
void Display_Title_Info(void); void Display_Title_Info(void);
void Display_Version_Info(uint32_t ON_OFF); void Display_Version_Info(uint32_t ON_OFF);
......
...@@ -176,8 +176,8 @@ void Key_Init(void) ...@@ -176,8 +176,8 @@ void Key_Init(void)
} }
stKeyParameter.u16KeyLoosenTime = 0U; stKeyParameter.u16KeyLoosenTime = 0U;
stKeyParameter.u16KeyShortPressTime = 20U; stKeyParameter.u16KeyShortPressTime = 20U;
stKeyParameter.u16KeyLongPressTime = 3000U; stKeyParameter.u16KeyLongPressTime = 2000U;
stKeyParameter.u32KeySuperLongPressTime = 90000U; stKeyParameter.u32KeySuperLongPressTime = 50000U;
} }
/*����Ӳ�߰������ԣ��ж϶̰���ʱ�����*/ /*����Ӳ�߰������ԣ��ж϶̰���ʱ�����*/
Key_Set_en_t Key_Parameter_Set_Short_Press_Time(uint16_t u16Time) Key_Set_en_t Key_Parameter_Set_Short_Press_Time(uint16_t u16Time)
......
...@@ -83,6 +83,7 @@ extern void confirmkeyserve(void); ...@@ -83,6 +83,7 @@ extern void confirmkeyserve(void);
extern void upkeyserve(void); extern void upkeyserve(void);
extern void downkeyserve(void); extern void downkeyserve(void);
extern void PasswordUnlock(void); extern void PasswordUnlock(void);
extern void OpenOTASercice(void);
extern Key_Set_en_t Key_Parameter_Set_Short_Press_Time(uint16_t u16Time); extern Key_Set_en_t Key_Parameter_Set_Short_Press_Time(uint16_t u16Time);
extern Key_Set_en_t Key_Parameter_Set_Long_Press_Time(uint16_t u16Time); extern Key_Set_en_t Key_Parameter_Set_Long_Press_Time(uint16_t u16Time);
extern Key_Set_en_t Key_Parameter_Set_Super_Long_Press_Time(uint32_t u32Time); extern Key_Set_en_t Key_Parameter_Set_Super_Long_Press_Time(uint32_t u32Time);
......
...@@ -124,14 +124,17 @@ void Key_Operation_SW8(Key_Event_en_t enKeyEvent) ...@@ -124,14 +124,17 @@ void Key_Operation_SW8(Key_Event_en_t enKeyEvent)
{ {
} }
} }
void Key_Operation_SW9(Key_Event_en_t enKeyEvent) //下移位 void Key_Operation_SW9(Key_Event_en_t enKeyEvent)
{ {
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) //下移位
{ {
downkeyflag = 1; downkeyflag = 1;
} }
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) //P2P模式
{ {
OTAMode = 2;
name1 = (devicename) & 0xFF;
name2 = (devicename >> 8) & 0xFF;
} }
else if ( enKeyEvent == KEY_EVENT_SUPER_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_SUPER_LONG_PRESS )
{ {
...@@ -197,15 +200,17 @@ void Key_Operation_SW3(Key_Event_en_t enKeyEvent) ...@@ -197,15 +200,17 @@ void Key_Operation_SW3(Key_Event_en_t enKeyEvent)
{ {
} }
} }
void Key_Operation_SW1(Key_Event_en_t enKeyEvent) //上移位 void Key_Operation_SW1(Key_Event_en_t enKeyEvent)
{ {
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) //上移位
{ {
upkeyflag = 1; upkeyflag = 1;
} }
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_LONG_PRESS ) //AP模式
{ {
OTAMode = 1;
name1 = (devicename) & 0xFF;
name2 = (devicename >> 8) & 0xFF;
} }
else if ( enKeyEvent == KEY_EVENT_SUPER_LONG_PRESS ) else if ( enKeyEvent == KEY_EVENT_SUPER_LONG_PRESS )
{ {
...@@ -217,6 +222,7 @@ void Key_Operation_SW1(Key_Event_en_t enKeyEvent) //上移位 ...@@ -217,6 +222,7 @@ void Key_Operation_SW1(Key_Event_en_t enKeyEvent) //上移位
} }
} }
void Key_Operation_SW6(Key_Event_en_t enKeyEvent) void Key_Operation_SW6(Key_Event_en_t enKeyEvent)
{ {
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS ) if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
...@@ -355,6 +361,39 @@ void PasswordUnlock(void) ...@@ -355,6 +361,39 @@ void PasswordUnlock(void)
KeyStep = 0; KeyStep = 0;
} }
} }
uint8_t OpenOTATime;
void OpenOTASercice(void)
{
if (((OTAMode != 1) && (OTAMode != 2)) || (OTAModeBegin != 1))
{
return;
}
if (OpenOTATime > 240)
{
OTAMode = 0;
OpenOTATime = 0;
OTAModeBegin = 0;
OTAModeBeginTime = 0;
return;
}
OpenOTATime++;
if (OpenOTATime <= 120)
{
Press_to_up = ((OpenOTATime / 10) % 2) == 0 ? 1 : 0;
Press_to_down = 0;
}
else
{
uint16_t relativeTime = OpenOTATime - 120;
Press_to_down = ((relativeTime / 10) % 2) == 0 ? 1 : 0;
Press_to_up = 0;
}
}
/*-------------------------------------------------*/ /*-------------------------------------------------*/
Key_Real_Status_en_t Key_Real_sw5(void) Key_Real_Status_en_t Key_Real_sw5(void)
{ {
......
...@@ -59,6 +59,7 @@ void Sys_Run_Mode_2ms_Tasks_Group(void) ...@@ -59,6 +59,7 @@ void Sys_Run_Mode_2ms_Tasks_Group(void)
{ {
RTE_ADC_Services( ); RTE_ADC_Services( );
Get_static_Current(); Get_static_Current();
Bluetoothname();
} }
/*============================================================================== /*==============================================================================
...@@ -75,8 +76,8 @@ void Sys_Run_Mode_5ms_Tasks_Group(void) ...@@ -75,8 +76,8 @@ void Sys_Run_Mode_5ms_Tasks_Group(void)
void Sys_Run_Mode_10ms_Tasks_Group(void) void Sys_Run_Mode_10ms_Tasks_Group(void)
{ {
Key_Service(); Key_Service();
Bluetoothname(); OpenOTASercice();
if(clearOdoFlag == 0) if((clearOdoFlag == 0) && (OTAMode != 1) && (OTAMode != 2))
{ {
confirmkeyserve(); confirmkeyserve();
upkeyserve(); upkeyserve();
...@@ -112,9 +113,21 @@ uint8_t flashtime = 0; ...@@ -112,9 +113,21 @@ uint8_t flashtime = 0;
uint8_t showtime = 0; uint8_t showtime = 0;
uint8_t bleuarttime = 0; uint8_t bleuarttime = 0;
uint8_t querendelay = 0; uint8_t querendelay = 0;
uint8_t OTAModeBeginTime;
void Sys_Run_Mode_100ms_Tasks_Group(void) void Sys_Run_Mode_100ms_Tasks_Group(void)
{ {
if((OTAMode == 1) || (OTAMode == 2))
{
if(OTAModeBeginTime <= 150)
{
OTAModeBeginTime++;
}
else
{
OTAModeBegin = 1;
}
}
ProcessBluetoothDeviceNameWithLock(); ProcessBluetoothDeviceNameWithLock();
AutoClearCounterAfterAllLit(); AutoClearCounterAfterAllLit();
TimeDelay_3s(); TimeDelay_3s();
......
...@@ -8,6 +8,8 @@ extern uint32_t devicename; ...@@ -8,6 +8,8 @@ extern uint32_t devicename;
extern uint8_t upkeyflag; extern uint8_t upkeyflag;
extern uint8_t downkeyflag; extern uint8_t downkeyflag;
extern uint8_t Confirmkeyflag; extern uint8_t Confirmkeyflag;
extern uint8_t Confirmkeyflag;
extern uint8_t OTAModeBeginTime;
// extern uint8_t Openble[20]; // extern uint8_t Openble[20];
void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void); void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void);
void Sys_Run_Mode_2ms_Tasks_Group(void); void Sys_Run_Mode_2ms_Tasks_Group(void);
......
...@@ -131,7 +131,7 @@ void Sys_Startup_Init(void) ...@@ -131,7 +131,7 @@ void Sys_Startup_Init(void)
/*上电扫码校验功能如果需要扫码校验注释掉firstpowerflag = 2,saomafinish = 3;打开上面两行的注释即可*/ /*上电扫码校验功能如果需要扫码校验注释掉firstpowerflag = 2,saomafinish = 3;打开上面两行的注释即可*/
firstpowerflag = 2; firstpowerflag = 2;
saomafinish = 3; saomafinish = 4;
} }
/*********************************************************************** /***********************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment