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

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

parent cda7f08d
......@@ -53,6 +53,8 @@ uint8_t btmac[6];
uint8_t firstpowerflag = 0;
uint16_t lightnumber = 0;
uint8_t writeflag = 0;
uint8_t UbootMajor;
uint8_t UbootMinor;
void get_key(void)
{
key_array[0] = seed_value[0] | seed_value[3];
......@@ -179,6 +181,8 @@ void datacheck(void)
blename[4] = 0xff;
lightnumber = (RS485_data[12]<<8)+RS485_data[11];
writeflag = RS485_data[13];
UbootMajor = RS485_data[14];
UbootMinor = RS485_data[15];
}
// General_Number_Disp(blename, 3, 165);
......
......@@ -11,6 +11,8 @@ void Recv_Byte(void);
void Recv_Byte1(void);
void Recv_Byte2(void);
extern uint8_t GetDataCompare(void);
extern uint8_t UbootMajor;
extern uint8_t UbootMinor;
extern uint32_t readNum;
extern uint8_t BarCode[256];
extern uint32_t readNum1;
......
......@@ -439,14 +439,89 @@ uint8_t yibiaoshuju[34];
// Buzzer_Warning();
break;
// case 4:
// break;
case 4: //AP模式
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 = 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:
// POWER_CTRL_KL30 = 0u;
......
......@@ -20,6 +20,7 @@ uint16_t Fuel_Res;
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_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 unsigned char gImage_icon_01X16_Y16[]={/*Byte Size834*/
......@@ -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);
}
void Display_Add(void)
void Display_Add( void)
{
Display_Menu_Type++;
}
......@@ -3893,12 +3894,22 @@ void Display_Sub(void)
if ( Display_Menu_Type != 0 )
Display_Menu_Type--;
}
uint8_t OTAMode;
uint8_t OTAModeBegin = 0;
uint32_t Get_Display_Type(void)
{
if(BlueTooth == 1)
{
return 3;
}
else if(OTAMode == 1)
{
return 4;
}
else if(OTAMode == 2)
{
return 5;
}
else
{
if(zhenduanflag == Data_Mode_Dot)
......@@ -4771,10 +4782,18 @@ void Display_Version_Info(uint32_t ON_OFF)
General_Number_Disp(wifiruanjian, 190, 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(lightnumber, Num_15, 6, 5, ODODigitNum09PosXlight, 80);
uint8_t wuliao[16];
......@@ -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(210, 160, ( uint8_t * )gImage_Alarm_13_ImageX222_Y166); //%
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);
}
......
......@@ -49,6 +49,8 @@ enum DisplayFont
extern unsigned int Display_Menu_Type;
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 Display_Title_Info(void);
void Display_Version_Info(uint32_t ON_OFF);
......
......@@ -176,8 +176,8 @@ void Key_Init(void)
}
stKeyParameter.u16KeyLoosenTime = 0U;
stKeyParameter.u16KeyShortPressTime = 20U;
stKeyParameter.u16KeyLongPressTime = 3000U;
stKeyParameter.u32KeySuperLongPressTime = 90000U;
stKeyParameter.u16KeyLongPressTime = 2000U;
stKeyParameter.u32KeySuperLongPressTime = 50000U;
}
/*����Ӳ�߰������ԣ��ж϶̰���ʱ�����*/
Key_Set_en_t Key_Parameter_Set_Short_Press_Time(uint16_t u16Time)
......
......@@ -83,6 +83,7 @@ extern void confirmkeyserve(void);
extern void upkeyserve(void);
extern void downkeyserve(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_Long_Press_Time(uint16_t u16Time);
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)
{
}
}
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;
}
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 )
{
......@@ -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;
}
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 )
{
......@@ -217,6 +222,7 @@ void Key_Operation_SW1(Key_Event_en_t enKeyEvent) //上移位
}
}
void Key_Operation_SW6(Key_Event_en_t enKeyEvent)
{
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
......@@ -355,6 +361,39 @@ void PasswordUnlock(void)
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)
{
......
......@@ -59,6 +59,7 @@ void Sys_Run_Mode_2ms_Tasks_Group(void)
{
RTE_ADC_Services( );
Get_static_Current();
Bluetoothname();
}
/*==============================================================================
......@@ -75,8 +76,8 @@ void Sys_Run_Mode_5ms_Tasks_Group(void)
void Sys_Run_Mode_10ms_Tasks_Group(void)
{
Key_Service();
Bluetoothname();
if(clearOdoFlag == 0)
OpenOTASercice();
if((clearOdoFlag == 0) && (OTAMode != 1) && (OTAMode != 2))
{
confirmkeyserve();
upkeyserve();
......@@ -112,9 +113,21 @@ uint8_t flashtime = 0;
uint8_t showtime = 0;
uint8_t bleuarttime = 0;
uint8_t querendelay = 0;
uint8_t OTAModeBeginTime;
void Sys_Run_Mode_100ms_Tasks_Group(void)
{
if((OTAMode == 1) || (OTAMode == 2))
{
if(OTAModeBeginTime <= 150)
{
OTAModeBeginTime++;
}
else
{
OTAModeBegin = 1;
}
}
ProcessBluetoothDeviceNameWithLock();
AutoClearCounterAfterAllLit();
TimeDelay_3s();
......
......@@ -8,6 +8,8 @@ extern uint32_t devicename;
extern uint8_t upkeyflag;
extern uint8_t downkeyflag;
extern uint8_t Confirmkeyflag;
extern uint8_t Confirmkeyflag;
extern uint8_t OTAModeBeginTime;
// extern uint8_t Openble[20];
void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void);
void Sys_Run_Mode_2ms_Tasks_Group(void);
......
......@@ -131,7 +131,7 @@ void Sys_Startup_Init(void)
/*上电扫码校验功能如果需要扫码校验注释掉firstpowerflag = 2,saomafinish = 3;打开上面两行的注释即可*/
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