Commit a5107afe authored by 王金亮's avatar 王金亮

feat:完善串口协议

parent cfedf395
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
"protocol_crc16.h": "c", "protocol_crc16.h": "c",
"gatts_table_creat_demo.h": "c", "gatts_table_creat_demo.h": "c",
"app_ble_user.h": "c", "app_ble_user.h": "c",
"main_user.h": "c" "main_user.h": "c",
"mcu_core_protocol.h": "c"
} }
} }
\ No newline at end of file
#include "Protocol_Lib.h"
#include "MCU_Core_Protocol.h" #include "MCU_Core_Protocol.h"
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -9,15 +10,15 @@ ...@@ -9,15 +10,15 @@
void Uart_ID10_process(void) void Uart_ID10_process(void)
{ {
if(1) uint8_t ID10[1] = {0x00};
if(1)//蓝牙模组启动状态
{ {
uint8_t ID10[2] = {0x00,0x01}; ID10[0] = 0x01;
Protocol_Send(0x21,ID10,2); Protocol_Send(0x10,ID10,1);
} }
else else
{ {
uint8_t ID10[2] = {0x00,0x01}; Protocol_Send(0x10,ID10,1);
Protocol_Send(0x10,ID10,2);
} }
} }
...@@ -43,41 +44,81 @@ void Uart_ID01_process(void) ...@@ -43,41 +44,81 @@ void Uart_ID01_process(void)
void Uart_ID12_process(void) void Uart_ID12_process(void)
{ {
uint8_t ID12[2] = {0x00,0x00}; uint8_t ID12[1] = {0x00};
ID12[1] = Ble_User.Ble_Sts; ID12[0] = Ble_User.Ble_Sts;
Protocol_Send(0x12,ID12,2); Protocol_Send(0x12,ID12,1);
} }
void Uart_ID20_process(void) void Uart_ID20_process(const Protocol_Data_t *pData)
{ {
//开始正式通信 //开始正式通信
} }
unsigned char ID21_num = 0;
void Uart_ID21_process(void)//底板给ESP32发 void Uart_ID02_process(void)
{
uint8_t ID02[1] = {0x00};
ID02[0] = 0;//蓝牙电话状态
Protocol_Send(0x02,ID02,1);
}
uint8_t ID03[33] = {0x00};
void Uart_ID03_process(const Protocol_Data_t *pData)
{ {
if (1) if(pData->Data[0] == 1/*接到值为1*/)
{
//来电
}
else if (pData->Data[0] == 2/*接到值为2*/)
{
//去电
}
else if (pData->Data[0] == 3/*接到值为3*/)
{
//通话中
}
else/*默认值*/
{
//无动作
}
/*接到UUID,给蓝牙*/
unsigned int i = 1;
for ( i = 1; i < 33; i++)
{ {
ID21_num++; ID03[i] = pData->Data[i+1];//接到串口传来的UUID值
} }
printf("ID21 IS %d!!!\r\n",ID21_num);
} }
// unsigned char ID21_num = 0;
// void Uart_ID21_process(const Protocol_Data_t *pData)//底板给ESP32发
// {
// if (1)
// {
// ID21_num++;
// }
// printf("ID21 IS %d!!!\r\n",ID21_num);
// }
void MCU_T_32(void) void MCU_T_32(void)
{ {
// printf("MCU_T_32!!\r\n"); // printf("MCU_T_32!!\r\n");
Protocol_Service(); Protocol_Service();
if(ID21_num >= 5) // if(ID21_num >= 5)
{ // {
ID21_num = 0; // ID21_num = 0;
//ESP32需要升级 // //ESP32需要升级
}
// }
} }
......
#ifndef _MCU_CORE_PROTOCOL_H_ #ifndef _MCU_CORE_PROTOCOL_H_
#define _MCU_CORE_PROTOCOL_H_ #define _MCU_CORE_PROTOCOL_H_
#include "Protocol_Lib.h"
extern void Uart_ID10_process(void); extern void Uart_ID10_process(void);
extern void Uart_ID01_process(void); extern void Uart_ID01_process(void);
extern void Uart_ID12_process(void); extern void Uart_ID12_process(void);
extern void Uart_ID21_process(void); //extern void Uart_ID21_process(const Protocol_Data_t *pData);
extern void Uart_ID20_process(void); extern void Uart_ID20_process(const Protocol_Data_t *pData);
extern void Uart_ID02_process(void);
extern void Uart_ID03_process(const Protocol_Data_t *pData);
extern void MCU_T_32(void); extern void MCU_T_32(void);
#endif #endif
...@@ -83,6 +83,12 @@ void Send_UartID(Protocol_uint8_t ID) ...@@ -83,6 +83,12 @@ void Send_UartID(Protocol_uint8_t ID)
case BLE_NAVIGATION: case BLE_NAVIGATION:
Uart_ID01_process(); Uart_ID01_process();
break; break;
case BLE_WEATHER:
Uart_ID02_process();
break;
// case BLE_LOCATION:
// Uart_ID03_process();
// break;
case BLE_STA: case BLE_STA:
Uart_ID12_process(); Uart_ID12_process();
break; break;
...@@ -93,10 +99,24 @@ void Send_UartID(Protocol_uint8_t ID) ...@@ -93,10 +99,24 @@ void Send_UartID(Protocol_uint8_t ID)
} }
void Protocol_Send_Service(void) void Ble_to_MCU(void)
{ {
Protocol_uint8_t ID = BLE_START_STA; Protocol_uint8_t ID = 0;
if (1)
{
ID = 0;
}
else
{
}
//判断应该发送哪个ID的串口数据
Send_UartID(ID); Send_UartID(ID);
}
void Protocol_Send_Service(void)
{
Ble_to_MCU();
Protocol_uint32_t i = 0u; Protocol_uint32_t i = 0u;
Protocol_uint32_t DataLen = 0u; Protocol_uint32_t DataLen = 0u;
Protocol_uint32_t SendLen = 0u; Protocol_uint32_t SendLen = 0u;
...@@ -229,33 +249,33 @@ static Protocol_uint32_t Protocol_UartSend(const Protocol_uint8_t *pData, Protoc ...@@ -229,33 +249,33 @@ static Protocol_uint32_t Protocol_UartSend(const Protocol_uint8_t *pData, Protoc
uint8_t Ble_connect_flag = 0; uint8_t Ble_connect_flag = 0;
static void Protocol_UartHandle(const Protocol_Data_t *pData) static void Protocol_UartHandle(const Protocol_Data_t *pData)
{ {
printf("ProcParse success22222222222!!\r\n"); //printf("ProcParse success22222222222!!\r\n");
Ble_connect_flag = 0; Ble_connect_flag = 0;
if ( pData->CmdID == BLE_START_STA ) if ( pData->CmdID == BLE_START_STA )
{ {
Uart_ID10_process();//TX //Uart_ID10_process();//TX
} }
else if ( pData->CmdID == MCU_REPLY ) else if ( pData->CmdID == MCU_REPLY )
{ {
Uart_ID20_process(); Uart_ID20_process(pData);
Ble_connect_flag = 1; Ble_connect_flag = 1;
} }
else if(pData->CmdID == BLE_NAVIGATION ) else if(pData->CmdID == BLE_NAVIGATION )
{ {
Uart_ID01_process();//TX //Uart_ID01_process();//TX
} }
else if(pData->CmdID == BLE_WEATHER ) else if(pData->CmdID == BLE_WEATHER )
{ {
//Uart_ID02_process();
} }
else if(pData->CmdID == BLE_LOCATION ) else if(pData->CmdID == BLE_LOCATION )
{ {
//Uart_ID03_process();
} }
else if(pData->CmdID == BLE_STA ) else if(pData->CmdID == BLE_STA )
{ {
Uart_ID12_process();//TX // Uart_ID12_process();//TX
} }
else if((pData->CmdID & 0x3f) == MCU_TO_BLE_INFO ) else if((pData->CmdID & 0x3f) == MCU_TO_BLE_INFO )
{ {
...@@ -267,7 +287,7 @@ static void Protocol_UartHandle(const Protocol_Data_t *pData) ...@@ -267,7 +287,7 @@ static void Protocol_UartHandle(const Protocol_Data_t *pData)
Wifi_OTA_Request = 1; Wifi_OTA_Request = 1;
} }
} }
printf("ID21 IS in!!!\r\n"); //printf("ID21 IS in!!!\r\n");
// Uart_ID21_process();//RX // Uart_ID21_process();//RX
} }
else else
...@@ -291,6 +311,6 @@ void UART_Put(Protocol_uint16_t Data) ...@@ -291,6 +311,6 @@ void UART_Put(Protocol_uint16_t Data)
UARTRxBuf.Rx_Buffer [ UARTRxBuf.write_pos ] = Data; UARTRxBuf.Rx_Buffer [ UARTRxBuf.write_pos ] = Data;
UARTRxBuf.write_pos = (UARTRxBuf.write_pos + 1) % UART_RX_MAX_DEPTH; UARTRxBuf.write_pos = (UARTRxBuf.write_pos + 1) % UART_RX_MAX_DEPTH;
} }
printf("into UARTRxBuf!!!!\r\n"); //printf("into UARTRxBuf!!!!\r\n");
return; return;
} }
...@@ -109,8 +109,8 @@ static void rx_task(void *arg) ...@@ -109,8 +109,8 @@ static void rx_task(void *arg)
} }
if (rxBytes > 0) { if (rxBytes > 0) {
data[rxBytes] = 0; data[rxBytes] = 0;
ESP_LOGI(RX_TASK_TAG, "Read %d bytes: '%s'", rxBytes, data); //ESP_LOGI(RX_TASK_TAG, "Read %d bytes: '%s'", rxBytes, data);
ESP_LOG_BUFFER_HEXDUMP(RX_TASK_TAG, data, rxBytes, ESP_LOG_INFO); //ESP_LOG_BUFFER_HEXDUMP(RX_TASK_TAG, data, rxBytes, ESP_LOG_INFO);
} }
MCU_T_32(); MCU_T_32();
} }
......
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