Commit 437e8804 authored by 梁百峰's avatar 梁百峰

feat:增加控制蓝牙功能

parent 9de7f272
......@@ -35,6 +35,7 @@ uint8_t RS485_data[64];
uint8_t checknumwrong = 3;
uint8_t zhenduanflag = 0;
uint8_t clearOdoFlag = 0;
uint8_t connectbleFlag = 0;
uint8_t Auto_ONOFF = 0;
uint32_t key_value;
uint8_t key_array[4];
......@@ -44,6 +45,7 @@ uint8_t line_stdio = 2;
uint8_t powerstdio = 0;
uint8_t get_num_buf[34];
uint8_t comparestart;
uint8_t blename[4];
void get_key(void)
{
key_array[0] = seed_value[0] | seed_value[3];
......@@ -55,6 +57,7 @@ void get_key(void)
key_value = key_value | ((uint32_t)key_array[2] << 8U);
key_value = key_value | (uint32_t)key_array[3];
}
uint8_t recvflag111 = 0;
void datacheck(void)
{
......@@ -98,6 +101,10 @@ void datacheck(void)
}
break;
case 0x4A:
if(connectbleFlag == 1)
{
memcpy(R485_ID4Ah.Msg,RS485_data,64);
}
memcpy(R485_ID4Ah.Msg,RS485_data,64);
checksum = Yadi_CAL_Data_Sum(&BarCode[2], 64 + 2);
if(checksum != BarCode[68])
......@@ -105,6 +112,15 @@ void datacheck(void)
checknumwrong = 1;
}
break;
case 0x81:
{
blename[0] = RS485_data[6];
blename[1] = RS485_data[7];
blename[2] = RS485_data[8];
blename[3] = RS485_data[9];
recvflag111 = 1;
}
break;
case 0x4F:
{
switch (BarCode[6])
......
......@@ -29,5 +29,8 @@ extern uint8_t checknumwrong;
extern uint8_t powerstdio;
extern uint8_t Auto_ONOFF;
extern uint8_t comparestart;
extern uint8_t connectbleFlag;
extern uint8_t get_num_buf[34];
extern uint8_t blename[4];
extern uint8_t recvflag111;
#endif
\ No newline at end of file
......@@ -285,19 +285,25 @@ uint8_t yibiaoshuju[34];
break;
// case 3:
case 3:
blename[4] = 0xFF;
if(recvflag111 == 1)
{
General_Number_Disp(blename, 3, 165);
recvflag111 = 0;
}
// POWER_CTRL_KL30 = 0u; //B+
// POWER_CTRL_KL15 = 0u; //KL15
// CAN_Msg_Tx_Enable = 1u;
// Diag_Info_Init( );
// Display_Init( );
// Display_Version_Info(0);
// POWER_CTRL_KL30 = 0u; //B+
// POWER_CTRL_KL15 = 0u; //KL15
// CAN_Msg_Tx_Enable = 1u;
// Diag_Info_Init( );
// Display_Init( );
// Display_Version_Info(0);
// Display_Set_Buff();
// // Function_Check_Ctrl(1); //Excel表格发报文。硬线信号
// //FUEL_UDS__Display(3);
// Buzzer_Warning();
// Display_Set_Buff();
// // Function_Check_Ctrl(1); //Excel表格发报文。硬线信号
// //FUEL_UDS__Display(3);
// Buzzer_Warning();
......
......@@ -2880,6 +2880,10 @@ void Display_Sub(void)
}
uint32_t Get_Display_Type(void)
{
if(connectbleFlag == 1)
{
return 3;
}
if(zhenduanflag == 0)
{
return 2;
......@@ -2892,6 +2896,8 @@ uint32_t Get_Display_Type(void)
{
return 1;
}
}
......@@ -3517,7 +3523,7 @@ void HW_Voltage_Check(uint32_t cmd)
}
const uint16_t CurrentDigitNum09PosX[] = {200,180,170};
#define Sampling_NUM 40
#define Sampling_NUM 15
uint32_t dianliu;
void HW_Static_Current_Check(uint32_t cmd)
{
......
......@@ -11,6 +11,7 @@ typedef enum
KEY_8,
KEY_9,
KEY_10,
KEY_11,
KEY_3,
KEY_NUM_MAX,
} Key_Num_en_t;
......
......@@ -319,7 +319,52 @@ Key_Real_Status_en_t Key_Real_sw3(void)
return enKeyRealStatus;
}
Key_Real_Status_en_t Key_Real_sw10(void)
{
Key_Real_Status_en_t enKeyRealStatus = KEY_LINE_LOOSEN;
if ( SW10 == 0U )
{
enKeyRealStatus = KEY_LINE_PRESS;
}
return enKeyRealStatus;
}
void Key_Operation_SW10(Key_Event_en_t enKeyEvent)
{
/*清零ODO*/
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{
Display_TFT_Clear();
if(connectbleFlag == 0)
{
connectbleFlag = 1;
name1= (devicename) & 0xFF;
name2 = (devicename >> 8) & 0xFF;
}
else
{
name1= (devicename) & 0xFF;
name2 = (devicename >> 8) & 0xFF;
startONfalg = 0;
send0x42time = 0;
bleOFFtoONtime = 0;
startONfalg = 0;
startIGONtime = 0;
}
}
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
{
}
else if ( enKeyEvent == KEY_EVENT_SUPER_LONG_PRESS )
{
}
else
{
}
}
/*---------------------------------------------------------------------------------------*/
const Key_Attribute_st_t stKeyAttribute [ KEY_NUM_MAX ] = {
{KEY_TYPE_LINE, Key_Real_sw5, Key_Operation_SW5}, //SW5
......@@ -328,7 +373,7 @@ const Key_Attribute_st_t stKeyAttribute [ KEY_NUM_MAX ] = {
{KEY_TYPE_LINE, Key_Real_sw8, Key_Operation_SW8},
{KEY_TYPE_LINE, Key_Real_sw2, Key_Operation_SW2}, //SW2-
{KEY_TYPE_LINE, Key_Real_sw1, Key_Operation_SW1}, //SW1+
{KEY_TYPE_LINE, Key_Real_sw10, Key_Operation_SW10},
{KEY_TYPE_LINE, Key_Real_sw3, Key_Operation_SW3}, //SW1+
};
......@@ -3,6 +3,8 @@
#include "string.h"
uint8_t barcode_Msg[64];
uint8_t barcode_Msg1[64];
uint8_t name1 = 0;
uint8_t name2 = 0;
uint32_t R485_Send_0x40(void)
{
memset(R485_ID40h.Msg, 0xFF, 64);
......@@ -712,6 +714,12 @@ uint32_t R485_Send_0x42(void)
uint32_t u32sendendflag = 0;
R485_ID42h.Sig.TPower = 0; //T动力状态
R485_ID42h.Sig.TotalBatteryCurrent = 0;
R485_ID42h.Sig.BLE_MAC01 = name1; //发送mac地址
R485_ID42h.Sig.BLE_MAC02 = name2;
R485_ID42h.Sig.BLE_MAC03 = 0xA;
R485_ID42h.Sig.BLE_MAC04 = 0xA;
R485_ID42h.Sig.BLE_MAC05 = 0xA;
R485_ID42h.Sig.BLE_MAC06 = 0xA;
switch (MENU_CHECK_STEP)
{
case 0:
......@@ -741,8 +749,7 @@ uint32_t R485_Send_0x42(void)
break;
case 8:
break;
case 9:
case 9:
break;
default:
break;
......@@ -752,6 +759,22 @@ uint32_t R485_Send_0x42(void)
// RS485_TX_finish = 1;
return u32sendendflag;
}
uint32_t R485_Send_ble0x42(void)
{
LINE_OUT_NEG_09 = 1;
memset(R485_ID42h.Msg, 0xFF, 64);
uint32_t u32sendendflag = 0;
R485_ID42h.Sig.BLE_MAC01 = 0xAA; //发送mac地址
R485_ID42h.Sig.BLE_MAC02 = 0xBB;
R485_ID42h.Sig.BLE_MAC03 = 0xAA;
R485_ID42h.Sig.BLE_MAC04 = 0xBB;
R485_ID42h.Sig.BLE_MAC05 = 0xAA;
R485_ID42h.Sig.BLE_MAC06 = 0xBB;
u32sendendflag = R485_Send(0x42, R485_ID42h.Msg, sizeof(R485_ID42h.Msg));
// LINE_OUT_NEG_09 = 0;
// RS485_TX_finish = 1;
return u32sendendflag;
}
uint8_t R485_zhenduan_Msg[64];
uint32_t R485_Send_0x47(void)
{
......@@ -833,6 +856,24 @@ uint32_t R485_Send_0x47(void)
RS485_TX_finish = 1;
return u32sendendflag;
}
uint8_t R485_0x80_msg[64];
uint32_t R485_Send_0x80(void)
{
uint8_t length;
uint32_t u32sendendflag = 0;
memset(R485_0x80_msg,0xFF,sizeof(R485_0x80_msg));
if(RS485_TX_finish == 0)
{
RS485_TX_finish = 1;
u32sendendflag = R485_Send(0x80, R485_0x80_msg, sizeof(R485_0x80_msg));
RS485_send_time = 0;
RS485_TX_finish = 1;
}
RS485_TX_finish = 1;
return u32sendendflag;
}
uint8_t Send_Lineget_Msg[64];
uint8_t firstsec = 0;;
uint32_t R485_Send_Line_0x47(uint8_t n)
......@@ -1022,4 +1063,19 @@ uint32_t R485_Send_0x70(void)
// RS485_TX_finish = 1;
// return u32sendendflag;
}
\ No newline at end of file
}
uint32_t R485_SendMACaddress_0x42(void)
{
uint8_t length;
uint32_t u32sendendflag = 0;
if(RS485_TX_finish == 0)
{
R485_ID42h.Sig.BLE_MAC01 = 0;
R485_ID42h.Sig.BLE_MAC02 = 0;
u32sendendflag = R485_Send(0x42, R485_ID42h.Msg, sizeof(R485_ID42h.Msg));
RS485_send_time = 0;
}
RS485_TX_finish = 1;
return u32sendendflag;
}
......@@ -1137,6 +1137,12 @@ extern uint32_t R485_Send_Line_0x47(uint8_t n);
extern uint32_t R485_Send_clear(void);
extern uint32_t R485_Sendcheck_0x47(void);
extern uint32_t R485_Send_0x80(void);
extern uint32_t R485_Send_ble0x42(void);
extern uint8_t barcode_Msg[64];
extern uint8_t barcode_Msg1[64];
extern uint8_t name1;
extern uint8_t name2;
#endif
......@@ -79,7 +79,7 @@
#define LINE_SafeBelt_5_press NEG_9_Ctrl
//ljs
#define LINE_OUT_POS_01 GPIO_OUT_PORT10_PIN06
// #define SW10 GPIO_OUT_PORT10_PIN06 //返回
#define LINE_OUT_POS_02 GPIO_OUT_PORT09_PIN00
#define LINE_OUT_POS_03 GPIO_OUT_APORT00_PIN04
#define LINE_OUT_POS_04 GPIO_OUT_APORT00_PIN05
......
......@@ -32,6 +32,10 @@
uint8_t time100ms = 0;
uint8_t finish = 0;
uint8_t AutoFlag = 0;
uint32_t send0x42time = 0;
uint32_t bleOFFtoONtime = 0;
uint8_t startONfalg = 0;
uint32_t startIGONtime = 0;
const unsigned char gImage_cuo1[] = {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_dui1[] = {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,};
void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void)
......@@ -72,11 +76,20 @@ void Sys_Run_Mode_5ms_Tasks_Group(void)
------------------------------------------------------------------------------*/
uint8_t testdata[3] = {0,1,2};
uint32_t clearodotime;
uint32_t devicename = 0;
uint8_t sartigon = 0;
void Sys_Run_Mode_10ms_Tasks_Group(void)
{
// BusOff_Service( );
Key_Service( );
if(devicename<0xFFFF)
{
devicename++;
}
else
{
devicename = 0;
}
// Fre_In_Time_Out_Handle(10);
//刷数字、刷英文拼写。
......@@ -93,6 +106,7 @@ void Sys_Run_Mode_10ms_Tasks_Group(void)
// UART_Ch0_Send_Multiple_Byte(testdata,3);
// RS485_User_Tx_Data();
if(clearOdoFlag == 0)
{
backsend();
......@@ -102,26 +116,78 @@ void Sys_Run_Mode_10ms_Tasks_Group(void)
LINE_OUT_NEG_09 = 1;
if(LINE_OUT_NEG_09 == 1)
{
if(zhenduanflag == 0)
if(connectbleFlag == 0)
{
R485_Send_Line_0x47(MENU_CHECK_STEP);
RS485_User_Tx_Data();
comparestart = 0;
}
else if(zhenduanflag == 1)
{
R485_Send_0x47();
comparestart = 0;
}
else if(zhenduanflag == 2)
{
R485_Sendcheck_0x47();
if(zhenduanflag == 0)
{
// R485_Send_Line_0x47(MENU_CHECK_STEP);
RS485_User_Tx_Data();
comparestart = 0;
}
else if(zhenduanflag == 1)
{
R485_Send_0x47();
comparestart = 0;
}
else if(zhenduanflag == 2)
{
R485_Sendcheck_0x47();
}
else
{
;
}
}
else
{
;
{
// if(send0x42time<0xFFFFFFFF)
// {
// send0x42time++;
// }
// if(bleOFFtoONtime<0xFFFFFFFF)
// {
// bleOFFtoONtime++;
// }
if(startONfalg == 0)
{
if(send0x42time<130)
{
R485_Send_0x42();
Display_TFT_Clear();
}
else
{
// bleOFFtoONtime = 0;
LINE_OUT_NEG_01 = 0;
LINE_OUT_NEG_02 = 0;
LINE_OUT_NEG_03 = 0;
LINE_OUT_NEG_04 = 0;
startONfalg = 1;
Display_TFT_Clear();
}
}
else
{
if(startIGONtime >= 50)
{
LINE_OUT_NEG_01 = 1;
LINE_OUT_NEG_02 = 1;
LINE_OUT_NEG_03 = 1;
LINE_OUT_NEG_04 = 1;
R485_Send_0x80();
blename[4] = 0xFF;
if(recvflag111 == 1)
{
General_Number_Disp(blename, 3, 165);
recvflag111 = 0;
}
}
}
RS485_send_time = 0;
RS485_TX_finish = 1;
}
}
// else
// {
......@@ -395,7 +461,26 @@ void Sys_Exact_50us_Tasks(void)
------------------------------------------------------------------------------*/
void Sys_Exact_100ms_Tasks(void)
{
if(connectbleFlag == 1)
{
if(send0x42time<0xFFFFFFFF)
{
send0x42time++;
}
if(bleOFFtoONtime<0xFFFFFFFF)
{
bleOFFtoONtime++;
}
}
if(startONfalg)
{
if(startIGONtime < 0xFFFFFFFF)
{
startIGONtime++;
}
}
// CHECK_IPK_COUNT( );
}
/*============================================================================*/
void Sys_Enter_Sleep_Mode(void)
......
......@@ -4,6 +4,11 @@
#include "TYW_stdint.h"
extern uint8_t AutoFlag;
extern uint32_t devicename;
extern uint32_t send0x42time;
extern uint32_t bleOFFtoONtime;
extern uint8_t startONfalg;
extern uint32_t startIGONtime;
void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void);
void Sys_Run_Mode_2ms_Tasks_Group(void);
void Sys_Run_Mode_5ms_Tasks_Group(void);
......
......@@ -476,7 +476,7 @@ void RS485_User_Tx_Data(void)
if(RS485_TX_finish == 1)
{
RS485_send_num++;
RS485_send_num ++;
}
}
break;
......@@ -492,6 +492,18 @@ void RS485_User_Tx_Data(void)
}
}
break;
// case 3:
// sendfinishflag = R485_Send_0x80();
// if(sendfinishflag == 0)
// {
// RS485_send_time = 0;
// RS485_TX_finish = 1;
// if(RS485_TX_finish == 1)
// {
// RS485_send_num++;
// }
// }
// break;
default:
flag = 1;
RS485_send_time = 0;
......@@ -505,7 +517,7 @@ void RS485_User_Tx_Data(void)
}
void backsend(void)
{
if(RS485_send_time>=15)
if(RS485_send_time>=10)
{
RS485_send_time = 0;
RS485_TX_finish = 0;
......
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