123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805 |
- /* USER CODE BEGIN Header */
- /**
- ******************************************************************************
- * File Name : freertos.c
- * Description : Code for freertos applications
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2024 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
- /* USER CODE END Header */
- /* Includes ------------------------------------------------------------------*/
- #include "FreeRTOS.h"
- #include "task.h"
- #include "main.h"
- #include "cmsis_os.h"
- /* Private includes ----------------------------------------------------------*/
- /* USER CODE BEGIN Includes */
- #include "usart.h"
- #include "can.h"
- #include "ConfigMacros.h"
- //#include "net4g.h"
- /* USER CODE END Includes */
- /* Private typedef -----------------------------------------------------------*/
- /* USER CODE BEGIN PTD */
- /* USER CODE END PTD */
- /* Private define ------------------------------------------------------------*/
- /* USER CODE BEGIN PD */
- /* USER CODE END PD */
- /* Private macro -------------------------------------------------------------*/
- /* USER CODE BEGIN PM */
- uint8_t test = 0;
- uint8_t count = 0;
- extern Menu_table menu;
- extern UART_HandleTypeDef huart1;
- extern UART_HandleTypeDef huart2;
- extern UART_HandleTypeDef huart3;
- extern UART_HandleTypeDef huart4;
- extern UART_HandleTypeDef huart5;
- extern unsigned char SN1[];
- extern char DisConnected[];
- extern char Connected_phone[];
- extern bool warningtag ;
- extern bool resetML307A;
- extern bool refresh;
- extern bool resetFlag;
- extern bool sealFlag;
- extern bool BT_CONN;
- extern bool REBOOT;
- extern bool bd_flag; //已绑定标志位
- extern bool open_flagw;
- extern bool close_flagw;
- extern bool bt_lock_ropesta;
- extern bool bt_lock_machinesta;
- extern uint8_t u4RecvFlag; // 串口4接收标志串口接收完成标志
- extern RTC_HandleTypeDef hrtc;
- extern CAN_HandleTypeDef hcan;
- RTC_DateTypeDef GetData; //获取日期结构体
- RTC_TimeTypeDef GetTime; //获取时间结构体
- /* USER CODE END PM */
- /* Private variables ---------------------------------------------------------*/
- /* USER CODE BEGIN Variables */
- /* USER CODE END Variables */
- osThreadId ScanKeyTaskHandle;
- osThreadId BT4GTaskHandle;
- osThreadId testTaskHandle;
- osThreadId loginfoTaskHandle;
- /* Private function prototypes -----------------------------------------------*/
- /* USER CODE BEGIN FunctionPrototypes */
- /* USER CODE END FunctionPrototypes */
- void StartScanKeyTask(void const * argument);
- void StarBT4GTask(void const * argument);
- void StartTestTask(void const * argument);
- void StartloginfoTaskTask(void const * argument);
- void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
- /* GetIdleTaskMemory prototype (linked to static allocation support) */
- void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
- /* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
- static StaticTask_t xIdleTaskTCBBuffer;
- static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
- void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
- {
- *ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
- *ppxIdleTaskStackBuffer = &xIdleStack[0];
- *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
- /* place for user code */
- }
- /* USER CODE END GET_IDLE_TASK_MEMORY */
- /**
- * @brief FreeRTOS initialization
- * @param None
- * @retval None
- */
- void MX_FREERTOS_Init(void) {
- /* USER CODE BEGIN Init */
- /* USER CODE END Init */
- /* USER CODE BEGIN RTOS_MUTEX */
- /* add mutexes, ... */
- /* USER CODE END RTOS_MUTEX */
- /* USER CODE BEGIN RTOS_SEMAPHORES */
- /* add semaphores, ... */
- /* USER CODE END RTOS_SEMAPHORES */
- /* USER CODE BEGIN RTOS_TIMERS */
- /* start timers, add new ones, ... */
- /* USER CODE END RTOS_TIMERS */
- /* USER CODE BEGIN RTOS_QUEUES */
- /* add queues, ... */
- /* USER CODE END RTOS_QUEUES */
- /* Create the thread(s) */
- /* definition and creation of ScanKeyTask */
- osThreadDef(ScanKeyTask, StartScanKeyTask, osPriorityRealtime, 0, 128);
- ScanKeyTaskHandle = osThreadCreate(osThread(ScanKeyTask), NULL);
- /* definition and creation of BT4GTask */
- osThreadDef(BT4GTask, StarBT4GTask, osPriorityRealtime, 0, 128);
- BT4GTaskHandle = osThreadCreate(osThread(BT4GTask), NULL);
- /* definition and creation of testTask */
- osThreadDef(testTask, StartTestTask, osPriorityRealtime, 0, 128);
- testTaskHandle = osThreadCreate(osThread(testTask), NULL);
- /* definition and creation of loginfoTask */
- osThreadDef(loginfoTask, StartloginfoTaskTask, osPriorityRealtime, 0, 128);
- loginfoTaskHandle = osThreadCreate(osThread(loginfoTask), NULL);
- /* USER CODE BEGIN RTOS_THREADS */
- /* add threads, ... */
- /* USER CODE END RTOS_THREADS */
- }
- /* USER CODE BEGIN Header_StartScanKeyTask */
- /**
- * @brief Function implementing the ScanKeyTask thread.
- * @param argument: Not used
- * @retval None
- */
- /* USER CODE END Header_StartScanKeyTask */
- void StartScanKeyTask(void const * argument)
- {
- /* USER CODE BEGIN StartScanKeyTask */
- /* Infinite loop */
- for(;;)
- {
- osDelay(1);
- updatekeystate();
- execute_function(menu);
- OLED_Refresh();
- workinfo(); //搬移蓝牙数据
- }
- /* USER CODE END StartScanKeyTask */
- }
- /* USER CODE BEGIN Header_StarBT4GTask */
- /**
- * @brief Function implementing the BT4GTask thread.
- * @param argument: Not used
- * @retval None
- */
- /* USER CODE END Header_StarBT4GTask */
- void StarBT4GTask(void const * argument)
- {
- /* USER CODE BEGIN StarBT4GTask */
- /* Infinite loop */
- for(;;)
- {
-
- osDelay(1);
- if(resetMBA32A) //freertos监测蓝牙复位标志位
- {
- MBA32A_Init();
- }
- else if(warningtag) //freertos监测施解封确认标志位
- {
- HAL_Delay(2000); //延时显示1.2s
- menu.current=0; //回到首界面显示
- refresh=true; //清除界面元素标志位
- warningtag=false; //复位施解封确认标志位
- Write_Information(resetDevAddr+FLASH_PAGE_SIZE);
- //printf("******解封标志:%s\t%d %d %d %d %d\n",(sealFlag ? "true":"false"), menu.current, menu.up, menu.next, menu.enter, menu.back);
- }
-
- else if(REBOOT && bd_flag)//初始化完成,并且已经绑定
- {
-
- BT_CONN=true;
- if(bt_lock_ropesta==0x01 && bt_lock_machinesta==0x01)// 0x01电机关 0x01锁绳拔出
- {
- menu.home=0x04;//关(电机关上,锁绳未插入)
- menu.sn=SN1;
- }
- else if(bt_lock_ropesta==0x01 && bt_lock_machinesta==0x00)// 0x00电机开 0x01锁绳拔出
- {
- menu.home=0x01;//开(全部打开)
- menu.sn=SN1;
- }
- else if(bt_lock_ropesta==0x00 && bt_lock_machinesta==0x00)//0x00电机开 0x00锁绳插入
- {
- menu.home=0x03;//开(电机没关,锁绳已插入)
- menu.sn=SN1;
- }
- else if(bt_lock_ropesta==0x00 && bt_lock_machinesta==0x01)//0x01电机关 0x00锁绳插入
- {
- menu.home=0x02;//关(全部关闭)
- menu.sn=SN1;
- }
- else
- {
- //default status
- menu.home=0;
- menu.sn=SN1;
- }
- }
- else
- {
- //default status
- menu.home=0;
- menu.sn=SN1;
- }
-
- // USART_SendString(&huart5, "AT+MAC?\r\n");
- // HAL_Delay(100);
- // printf("%s", g_MBA32A_8buf_Down); // 使用接收缓冲区的内容
- // USART_SendString(&huart5, "AT+DISCONN=0\r\n");
- // HAL_Delay(50);
- // USART_SendString(&huart5, "AT+AUTO_DEL\r\n");
- // HAL_Delay(50);
- // USART_SendString(&huart5, "AT+RESET=1\r\n");
-
- // USART_SendString(&huart5, "AT+UUIDS?\r\n");
- // HAL_UART_Transmit(&huart1,g_MBA32A_8buf_Down, 30, 0xFFFF);//485回显
- // USART_SendString(&huart5, "AT+UUIDW?\r\n");
- // HAL_UART_Transmit(&huart1,g_MBA32A_8buf_Down, 30, 0xFFFF);//485回显
- // USART_SendString(&huart5, "AT+UUIDN?\r\n");
- // HAL_UART_Transmit(&huart1,g_MBA32A_8buf_Down, 30, 0xFFFF);//485回显
-
-
- // if(UART_485_EN)
- // {
- // printf("485 output\r\n");
- // }
- // if(UART_TTL_EN)
- // {
- // printf("TTL output\r\n");
- // }
- // if(test==1)
- // {
- //test=0;
- //int txLen = sprintf((char *)recvBuff, "RecvAT>>%s<<",g_ML307A_8buf_Down);//4g
- // int txLen = sprintf((char *)recvBuff, "RecvAT>>\r\n%s<<",g_MBA32A_8buf);//bt
- // HAL_UART_Transmit(&huart3,recvBuff,txLen,0xffff);
- // memcpy(g_ML307A_8buf_Down,g_ML307A_8buf,20);
- //
- // printf("buf:%s\r\n",g_MBA32A_8buf);
- // printf("bufD:%s\r\n",g_ML307A_8buf_Down);
-
- // }
- // test ++;
- //
- // if(test==2)
- // {
- // test =0;
- //
- // }
- //printf("%d\r\n",test);
- }
- /* USER CODE END StarBT4GTask */
- }
- /* USER CODE BEGIN Header_StartTestTask */
- /**
- * @brief Function implementing the testTask thread.
- * @param argument: Not used
- * @retval None
- */
- /* USER CODE END Header_StartTestTask */
- void StartTestTask(void const * argument)
- {
- /* USER CODE BEGIN StartTestTask */
-
- #ifdef CAN_TEST
- #if CAN_TEST ==1
- CAN_TxHeaderTypeDef TxHeader;
- uint8_t TxData[8] = {1, 2, 3, 4, 5, 6, 7, 8};
- uint32_t TxMailbox;
- TxHeader.StdId = 0x123;
- TxHeader.ExtId = 0;
- TxHeader.RTR = CAN_RTR_DATA;
- TxHeader.IDE = CAN_ID_STD;
- TxHeader.DLC = 8;
- TxHeader.TransmitGlobalTime = DISABLE;
- CAN_RxHeaderTypeDef RxHeader; // 添加这行定义RxHeader变量
- uint8_t RxData[8]; // 添加这行定义RxData变量
- #endif
- #endif
- /* Infinite loop */
- for(;;)
- {
- osDelay(1500);
- #ifdef WORK_BT_TEST
- #if WORK_BT_TEST ==1
- {
- test++;
-
- //测试协议报文
- // uint8_t header[2] = {0x66, 0x00};//Jl_lock帧头
- // //uint8_t serchInfo_CMD[] = {0x01, 0x00};//查询信息命令帧
- // uint8_t openlock_CMD[] = {0x00,0x00, 0x00,0x00,0x00,0x01, 0x55,0x55,0x55,0x55, 0x24,0x02,0x04,0x0E ,0x01};//开锁命令帧
- // uint8_t openlock_head = 0x02;
- // uint8_t openlock_length = (sizeof(openlock_CMD)-2);
- // openlock_CMD[0]=openlock_head;
- // openlock_CMD[1]=openlock_length;
- // sendCombinedArray(header,sizeof(header),openlock_CMD,sizeof(openlock_CMD));
- if(close_flagw && (open_flagw==false))
- {
- close_lock();
- }
- else if(open_flagw && (close_flagw==false))
- {
- open_lock();
- }
- else if((close_flagw==false)&&(open_flagw==false)&& bd_flag)
- {
- lock_searchInfo();
- }
- //open_lock();
- // close_lock();
-
- //测试条件语句
- // USART_SendString(&huart5, "AT+RESET=1\r\n");
- // HAL_Delay(50);
- // HAL_UART_Transmit(&huart1,g_MBA32A_8buf_Down, 30, 0xFFFF);//485回显
- //
-
- // test++;
- // USART_SendString(&huart5, "AT+DEV?\r\n");
- // HAL_Delay(100);
- // printf("%s", g_MBA32A_8buf_Down); // 使用接收缓冲区的内容
- // USART_SendString(&huart5, "AT+NAME?\r\n");
- // HAL_Delay(100);
- // printf("%s", g_MBA32A_8buf_Down); // 使用接收缓冲区的内容
- // USART_SendString(&huart5, "AT+MAC?\r\n");
- // HAL_Delay(100);
- // printf("%s", g_MBA32A_8buf_Down); // 使用接收缓冲区的内容
-
- //USART_SendString(&huart5, "AT+RESET=1\r\n");
- // HAL_Delay(100);
- // USART_SendString(&huart5, "AT+CONN=1500000000cb\r\n");//连接指定 MAC 地址设备
- // HAL_Delay(100);
- //// USART_SendString(&huart5, "AT+DEV?\r\n"); //查询当前已连接的设备
- // count = countValidData(g_MBA32A_8buf,1024,0);
- // printf("Mbabuf:%s\r\n_%d\r\n",g_MBA32A_8buf,count);
-
- {
- /**蓝牙发送命令无需带内冒号**/
- //BLE 协议说明
- //0xfff2 Write 写入的数据会从串口TX输出
- //0xfff1 Notify 从串口 RX 输入的数据将会在此通道产生通知发给移动设备!!!移动接收
- //APP 通过 0xFFF2 通道 将数据发送给 MCU:MCU 通过 0xFFF1 通道将数据发送给 APP,用户也可通过 AT 指令对读写通道进行自定义。
-
-
-
- // USART_SendString(&huart5, "AT+UUIDS=0000000200001000800000805f9b34fb\r\n"); //设置主服务通道
- // HAL_Delay(50);
- // USART_SendString(&huart5, "AT+UUIDN=0000ff0500001000800000805f9b34fb\r\n"); //设置读服务通道
- // HAL_Delay(50);
- // USART_SendString(&huart5, "AT+UUIDW=0000ff0400001000800000805f9b34fb\r\n"); //设置写服务通道
- // HAL_Delay(50);
- // USART_SendString(&huart5, "AT+UUIDS=0000180100001000800000805f9b34fb\r\n"); //设置主服务通道
- // HAL_Delay(50);
- //USART_SendString(&huart5, "AT+RESET=1\r\n");//恢复出厂设置 // USART_SendString(&huart5, "AT+RESET=1\r\n");//恢复出厂设置
- // USART_SendString(&huart5, "AT+NAME?\r\n");//23字节(0-22)
- // HAL_Delay(50);
- // printf("%s",g_MBA32A_8buf);
- //USART_SendString(&huart5, "AT+MAC?\r\n"); //查询蓝牙 4.0 地址码
- // HAL_Delay(50);
- // printf("1%s",g_MBA32A_8buf);
- // printf("2%s",&g_MBA32A_8buf[23]);
- // HAL_Delay(100);
- //USART_SendString(&huart5, "AT+DEV?\r\n"); //查询当前已连接的设备
- // HAL_UART_Receive(&huart5,&g_MBA32A_8buf[0],20,150);
- // printf("%s\r\n",g_MBA32A_8buf);
- //USART_SendString(&huart5, "AT+RESET=1\r\n");//恢复出厂设置
- // HAL_Delay(100);
-
- // USART_SendString(&huart5, "AT+CONN=1500000000cb\r\n");
- // HAL_Delay(100);
- // printf("%s", g_MBA32A_8buf_Down); // 使用接收缓冲区的内容
-
-
-
-
- // USART_SendString(&huart5, "AT+UUIDN?\r\n");
- // HAL_Delay(100);
- // USART_SendString(&huart5, "AT+UUIDW?\r\n");
- // USART_SendString(&huart5, "AT+DISCONN=0\r\n");
- // USART_SendString(&huart5, "AT+CONN=1500000000cb\r\n");//连接指定 MAC 地址设备
- // USART_SendString(&huart5, "AT+UUIDS=0000fff000001000800000805f9b34fb\r\n"); //设置主服务通道
- // USART_SendString(&huart5, "AT+UUIDW=0000ff0500001000800000805f9b34fb\r\n"); //设置写服务通道
- // USART_SendString(&huart5, "AT+UUIDN=0000ff0400001000800000805f9b34fb\r\n"); //设置读服务通道
- // USART_SendString(&huart5, "AT+AUTO_CFG=1\r\n");
- // HAL_Delay(100);
- // USART_SendString(&huart5, "AT+AUTO_MAC=1500000000cb\r\n");
- // HAL_Delay(100);
- // USART_SendString(&huart5, "AT+CONN=1500000000cb\r\n");//连接指定 MAC 地址设备
- // HAL_Delay(100);
- // USART_SendString(&huart5, "AT+TXPOWER=10\r\n");
- // uint8_t data[] = {0x01, 0x00,0x00};
- // HAL_UART_Transmit(&huart1,data,3,0xffff);
- // HAL_UART_Transmit(&huart5,data,3,0xffff);
- // uint8_t len = sizeof(data) / sizeof(data[0]);
- // uint8_t data_open[] = {0x02, 0x04,0x01,0,0,0};
- // uint8_t len = sizeof(data_open) / sizeof(data_open[0]);
- // uint8_t crc = crc16(data_open, len);
- // uint8_t sendData[len + 1];
- // for (uint8_t i = 0; i < len; i++) {
- // sendData[i] = data_open[i];
- // }
- // sendData[len] = crc;
- //printf("Send Data with CRC: ");
- // for (uint8_t i = 0; i < len + 1; i++) {
- // printf("%02X ", sendData[i]);
- // }
- //printf("\n");
- //USART_SendString(&huart5, "AT+SCAN=1\r\n");//查询扫描蓝牙 4.0 BLE 设备(0-关闭 1-开启)
- // USART_SendString(&huart5, "AT+UUIDW?\r\n"); //查询 BLE 写服务通道fff2
- // HAL_UART_Receive(&huart5,g_MBA32A_8buf,BUFFER_SIZE,100);
- // USART_SendString(&huart5, "AT+DISCONN=1\r\n");//断开蓝牙连接(0-断开所有连接的从设备 1-主动断开与主机端设备的连接)
- // USART_SendString(&huart5, "AT+AINTVL?\r\n");//查询广播间隔 单位ms
- // HAL_Delay(50);
- // USART_SendString(&huart5, "AT+VER?\r\n"); //读取软件版本
- // HAL_Delay(50);
- // USART_SendString(&huart5, "AT+TXPOWER?\r\n");//查询模块的发射功率
- // HAL_Delay(50);
- // int count = countValidData(g_MBA32A_8buf,256,0);
- // if(count<2)
- // {
- // test = 0;
- // //HAL_Delay(100);
- // }else {
- // printf("mba:%s-%d",g_MBA32A_8buf,count);
- // }
- // USART_SendString(&huart5, "AT+REBOOT=1\r\n");//设置模块重启
- // USART_SendString(&huart5, "AT+SCAN_MANU=1\r\n");//扫描蓝牙自定义广播数据
- // USART_SendString(&huart5, "AT+SCAN=1\r\n");//查询扫描蓝牙 4.0 BLE 设备(0-关闭 1-开启)
- // HAL_Delay(200);
- // USART_SendString(&huart5, "AT+CONN=DC:2D:04:C7:21:8A\r\n");//连接指定 MAC 地址设备
- // USART_SendString(&huart5, "AT+DISCONN=0\r\n");//断开蓝牙连接(0-断开所有连接的从设备 1-主动断开与主机端设备的连接)
- // USART_SendString(&huart5, "AT+ADV?\r\n");//查询广播状态(0-关闭 1-开启)
- // USART_SendString(&huart5, "AT+UART?\r\n");//查询模块串口波特率(0:9600/ 1:14400/ 2:19200/ 3:38400/ 4:57600/ 5:115200/ 6:230400)
- // }
- // }
- //USART_SendString(&huart5, "AT+DEV?\r\n");//查询当前已连接的设备
- //}
- // else if(test == 3)
- // {
- // //USART_SendString(&huart5, "AT+VER?\r\n");//查询当前已连接的设备
- // }
- // }
- }
- }
- #endif
- #endif
-
-
- #ifdef WORK_4G_TEST
- #if WORK_4G_TEST == 1
- {
- //if(test==1)
- //{
- //1 必须步骤AT
- //USART_SendString(&huart4, "AT\r\n");
-
- //2 查询SIM卡状态
- //USART_SendString(&huart4, "AT+CPIN?\r\n");
-
- //3 查询协议栈是否打开(return 1)
- //USART_SendString(&huart4, "AT+CFUN?\r\n");//确保驻网前为1
-
- //4 查询信号质量(小于10表示信号弱)
- //USART_SendString(&huart4, "AT+CSQ\r\n");
-
- //5 设置APN(中国移动 return ok)
- //USART_SendString(&huart4, "AT+CGDCONT=1,\"IP\",\"CMNET\"\r\n");
-
- //6 查询是否驻网成功 (return 0,1)
- //USART_SendString(&huart4, "AT+CEREG?\r\n");//查看是否附着(驻网)成功
-
- //7 激活PDP (return ok))
- //USART_SendString(&huart4, "AT+CGACT=1,1\r\n");
-
- //8 测试tcp连接(网址为ubuntu公网)
- //USART_SendString(&huart4, "AT+MIPOPEN=1,\"TCP\",\"121.36.7.137\",22\r\n");
- //USART_SendString(&huart4, "AT+MIPCLOSE=1\r\n");
- //9连接mqtt
- //若省略可选参数,则是查询
- //USART_SendString(&huart4, "AT+CREG?\r\n");//查看是否GSM成功
- //USART_SendString(&huart4, "AT+CPIN?\r\n");
-
- //USART_SendString(&huart4, "AT+MGNSSCFG=?\r\n");//AT+MGNSSCFG GNSS测试命令
- //USART_SendString(&huart4, "ATI\r\n");//查询产品版本信息
- //USART_SendString(&huart4, "ATI\r\n");//查询产品版本信息
- //USART_SendString(&huart4, "AT+MCCID\r\n");//读取ICCID
- //USART_SendString(&huart4, "AT+MDIALUP=1,1\r\n");//拨号上网
- //USART_SendString(&huart4, "AT+MCHIPINFO=‘temp’\r\n");//查询芯片温度
-
- //USART_SendString(&huart4, "AT+CPIN?\r\n");//SIM卡状态
- //USART_SendString(&huart4, "AT+CSQ\r\n");//查看信号强度
- //USART_SendString(&huart4, "AT+CREG?\r\n");
- //USART_SendString(&huart4, "AT+CFUN?\r\n");//确保驻网前为1
- //USART_SendString(&huart4, "AT+CEREG?\r\n");//查看是否附着(驻网)成功
- //USART_SendString(&huart4, "AT+MIPCALL?\r\n");// 查询拨号状态
- /*已激活请跳过*/
- //USART_SendString(&huart4, "AT+CGDCONT=1,\"IPV4V6\",\"cmnet\"\r\n");// //配置PDP上下文
- //USART_SendString(&huart4, "AT+MIPCALL=1,1\r\n");// 激活PDP,建立应用层拨号连接。
-
- //USART_SendString(&huart4, "AT+MUECONFIG=\"autoconn\",1\r\n");// 配置为自动连网(模组应用层网络)
- //USART_SendString(&huart4, "AT+MDIALUPCFG=\"auto\",1\r\n");// 配置为自动拨号(上位机网卡拨号)
-
- //USART_SendString(&huart4, "AT+CMGF=0\r\n");//配置PDU模式(默认)
- //USART_SendString(&huart4, "AT+CSMP=33,167,0,0\r\n");//设置文本模式参数为:有效期为相对时间格式,并且编码类型为GSM 7bit
- //USART_SendString(&huart4, "AT+CNMI=2,2,0,2,0\r\n");//配置接收到短信时自动上报
- //USART_SendString(&huart4, "AT+CMGS=23\r\n");//发送PDU短信,PDU长度23字节,数据以ctrl-z(0x1A)结尾。
-
- //USART_SendString(&huart4, "AT+CMGF=1\r\n");// //配置文本模式
- //USART_SendString(&huart4, "AT+CSMP=33,167,0,0\r\n");//设置发送为bit7。(可根据实际设置为bit8/bit16)
-
- //发送短信
- //char msg[] = "Hello, World!";
- //char smsCmd[50];
- //sprintf(smsCmd, "AT+CMGS=\"**\"\r\n%s%c", msg, 0x1A); // 使用Ctrl+Z (0x1A) 结束短信内容
- //USART_SendString(&huart4, smsCmd);
-
- //USART_SendString(&huart4, "AT+CCLK?\r\n");//驻网自动同步网络时间
- //USART_SendString(&huart4, "AT+MQTTCONN=?\r\n");
-
- //查询mqtt版本
- //AT+MQTTCFG="version",<connect_id>[,<version>]
- //+MQTTCFG: "version",<version>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"version\"\r\n"); //+MQTTCFG: "version",4
-
- //查询mqtt客户端使用的pdp
- //AT+MQTTCFG="cid",<connect_id>[,<cid>]
- //+MQTTCFG: "cid"[,<cid>]
- //USART_SendString(&huart4, "AT+MQTTCFG=\"cid\"\r\n"); //+MQTTCFG: "cid",1
-
- //查询当前MQTT SSL模式以及SSL上下文索引配置情况
- //AT+MQTTCFG="ssl",<connect_id>[,<ssl_enable>[,<ssl_id>]]
- //+MQTTCFG: "ssl",<ssl_enable>,<ssl_id>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"ssl\"\r\n"); //+MQTTCFG: "ssl",0,0
- //USART_SendString(&huart4, "AT+MQTTCFG=\"ssl\",2,1\r\n"); //OK
-
- //查询当前保活时间
- //AT+MQTTCFG="keepalive",<connect_id>[,<keepalive_time>]
- //+MQTTCFG: "keepalive",<keepalive_time>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"keepalive\"\r\n");//+MQTTCFG: "keepalive",120
-
- //查询当前会话类型
- //AT+MQTTCFG="clean",<connect_id>[,<clean_session>]
- //+MQTTCFG: "clean",<clean_session>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"clean\"\r\n"); //+MQTTCFG: "clean",0
-
- //查询当前设置的重传间隔以及重传次数配置
- //AT+MQTTCFG="retrans",<connect_id>[,<retrans_interval>[,<retry_times>]]
- //+MQTTCFG: "retrans",<retrans_interval>,<retry_times>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"retrans\"\r\n"); //+MQTTCFG: "retrans",20,0
-
- //查询设置命令(配置Will flag、qos及retain信息)
- //AT+MQTTCFG="willoption",<connect_id>[,<will_flag>[,<will_qos>[,<will_retain>]]]
- //+MQTTCFG: "willoption",<will_flag>,<will_qos>,<will_retain>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"willoption\"\r\n"); //+MQTTCFG: "willoption",0,0,0
-
- //设置命令(配置 Will topic和message信息)查询当前 Will Topic和Will Message信息,<will_msg>输入格式解析受"encoding"配置影响
- //AT+MQTTCFG="willpayload",<connect_id>[,<will_topic>,<will_msg>]
- //+MQTTCFG: "willpayload",<will_topic>,<will_msg>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"willpayload\"\r\n"); //+MQTTCFG: "willpayload",,
-
- //设置命令(配置MQTT心跳请求间隔) 则查询当前MQTT的心跳间隔
- //AT+MQTTCFG="pingreq",<connect_id>[,<ping_interval>]
- //+MQTTCFG: "pingreq",<ping_interval>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"pingreq\"\r\n"); //+MQTTCFG: "pingreq",120
-
- //设置命令(配置MQTT心跳请求回显) 查询当前MQTT的心跳回显配置
- //AT+MQTTCFG="pingresp",<connect_id>[,<pingack>]
- //+MQTTCFG: "pingresp",<pingack>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"pingresp\",0,1\r\n"); //+MQTTCFG: "pingresp",0
-
- //设置命令(配置MQTT消息的输入编码以及输出打印编码) 则查询当前编码配置
- //AT+MQTTCFG="encoding",<connect_id>[,<input_format>[,<output_format>]]
- //+MQTTCFG: "encoding",<input_format>,<output_format>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"encoding\"\r\n"); //+MQTTCFG: "encoding",0,0
-
- //设置命令(配置MQTT消息缓存输出模式) 查询当前缓存配置
- //AT+MQTTCFG="cached",<connect_id>[,<cached_mode>]
- //+MQTTCFG: "cached",<cached_mode>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"cached\"\r\n"); //+MQTTCFG: "cached",0
-
- //设置命令(配置MQTT重连次数) 查询当前重连配置
- //AT+MQTTCFG="reconn",<connect_id>[,<recon_times>[,<reconn_interval>[,<mode>]]]
- //+MQTTCFG: "reconn",<reconn_times>,<reconn_interval>,<mode>
- //USART_SendString(&huart4, "AT+MQTTCFG=\"reconn\"\r\n"); //+MQTTCFG: "reconn",3,20,0
-
- //设置命令(查询MQTT配置信息)
- //AT+MQTTCFG="query",<connect_id>
- /* +MQTTCFG: "version",<version>
- +MQTTCFG: "cid",<cid>
- +MQTTCFG: "ssl",<ssl_enable>,<ssl_id>
- +MQTTCFG: "keepalive",<keepalive_time>
- +MQTTCFG: "clean",<clean_session>
- +MQTTCFG: "retrans",<retrans_interval>,<retry_times>
- +MQTTCFG: "willoption",<will_flag>,<will_qos>,<will_retain>
- +MQTTCFG: "willpayload",[<will_topic>,<will_msg>]
- +MQTTCFG: "pingreq",<ping_interval>
- +MQTTCFG: "pingresp",<pingack>
- +MQTTCFG: "encoding",<input_format>,<output_format>
- +MQTTCFG: "cached",<cached_mode>
- +MQTTCFG: "reconn",<reconn_times>,<reconn_interval>,<mode>*/
- //USART_SendString(&huart4, "AT+MQTTCFG=\"query\"\r\n"); //+MQTTCFG: "reconn",3,20,0
-
-
- //mqttconn 连接(连接至MQTT或MQTTS服务器)
- //AT+MQTTCONN=?
- //+MQTTCONN: <connect_id>,<host>,<port>,<clientID>,<user>,<passwd>
- //USART_SendString(&huart4, "AT+MQTTCONN=?\r\n"); //+MQTTCONN: (0-5),,(0-65535),,,
- //USART_SendString(&huart4, "AT+MQTTSTART\r\n"); //+MQTTCONN: (0-5),,(0-65535),,,
-
-
-
- //设置命令
- //AT+MQTTCONN=<connect_id>,<host>[,<port>[,<clientID>,<user>,<passwd>]]
- //+MQTTURC: "conn",<connect_id>,<conn_state>
- //USART_SendString(&huart4, "AT+MQTTCONN=0,\"iot-06z00aohulvp4gg.mqtt.iothub.aliyuncs.com\",1883,\"k0qza26L4FE.4g_dtuV1.0|securemode=2,signmethod=hmacsha256,timestamp=1705036680114|\",\"4g_dtuV1.0&k0qza26L4FE\",\"42177cf93ab7ae09ac82ef151b27b94e123cea0237a77fdb3e24b32a2423b7dc\"\r\n");
-
-
- //AT+MQTTSUB订阅主题
- //AT+MQTTSUB=<connect_id>,<topic>,<qos>[,<topic1>,<qos1>..]
- //+MQTTSUB: <connect_id>,<mid>
- //成功+MQTTURC: "suback",<connect_id>,<mid>,<code>[,<code1>,...]
- //超时+MQTTURC: "timeout",<connect_id>,<mid>
- //USART_SendString(&huart4, "AT+MQTTSUB=0,\"/sys/k0qza26L4FE/${4g_dtuV1.0}/thing/service/property/set\",1\r\n");
-
- //USART_SendString(&huart4, "AT+MQTTSUB=0\r\n");
- }
- #endif
- #endif
-
-
-
- #ifdef RTC_TEST
- #if RTC_TEST ==1
- /* Get the RTC current Time */
- HAL_RTC_GetTime(&hrtc, &GetTime, RTC_FORMAT_BIN);
- /* Get the RTC current Date */
- HAL_RTC_GetDate(&hrtc, &GetData, RTC_FORMAT_BIN);
- /* Display date Format : yy/mm/dd */
- printf("%02d/%02d/%02d\t",2000 + GetData.Year, GetData.Month, GetData.Date);
- /* Display time Format : hh:mm:ss */
- printf("%02d:%02d:%02d\r\n",GetTime.Hours, GetTime.Minutes, GetTime.Seconds);
- //printf("test\r\n");
- #endif
- #endif
-
- #ifdef CAN_TEST
- #if CAN_TEST ==1
- //CANTEST,cpu发
- // if (HAL_CAN_GetTxMailboxesFreeLevel(&hcan) > 0) {
- // if (HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox) == HAL_OK) {
- // // 成功发送CAN消息
- // // 可以在这里添加自定义的测试代码
- //
- // }
- // }
- //CANTEST,收发测试
- if (HAL_CAN_GetTxMailboxesFreeLevel(&hcan) > 0) {
- if (HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData, &TxMailbox) == HAL_OK) {
- // 成功发送CAN消息
- // 可以在这里添加自定义的测试代码
- // 修改代码段开始
- if (HAL_CAN_GetRxFifoFillLevel(&hcan, CAN_RX_FIFO0) > 0) {
- HAL_CAN_GetRxMessage(&hcan, CAN_RX_FIFO0, &RxHeader, RxData);
- // 处理接收到的CAN消息
- // 示例代码:将接收到的数据回传
- if (HAL_CAN_AddTxMessage(&hcan, (CAN_TxHeaderTypeDef*)&RxHeader, RxData, &TxMailbox) != HAL_OK) {
- // 发送CAN消息失败,处理错误情况
- }
- }
- // 修改代码段结束
- //HAL_CAN_AddTxMessage(&hcan, &TxHeader, TxData,&TxMailbox);
- }
- }
- #endif
- #endif
- #ifdef RESET_4G_TEST
- #if RESET_4G_TEST ==1
- //reset_4G();
- if(resetML307A)
- {
- resetML307A = false;
- ML307A_Init();
- }
- #endif
- #endif
- #ifdef RESET_BT_TEST
- #if RESET_BT_TEST ==1
- if(resetMBA32A)
- {
-
- resetMBA32A = false;
- HAL_GPIO_WritePin(REST_BT_GPIO_Port,REST_BT_Pin,GPIO_PIN_SET);
- MBA32A_Init();
- }
- #endif
- #endif
- #ifdef RESET_CPU_TEST
- #if RESET_CPU_TEST ==1
- //HAL_Delay(50000);//关闭看门狗
- #endif
- #endif
- }
- /* USER CODE END StartTestTask */
- }
- /* USER CODE BEGIN Header_StartloginfoTaskTask */
- /**
- * @brief Function implementing the loginfoTask thread.
- * @param argument: Not used
- * @retval None
- */
- /* USER CODE END Header_StartloginfoTaskTask */
- void StartloginfoTaskTask(void const * argument)
- {
- /* USER CODE BEGIN StartloginfoTaskTask */
- /* Infinite loop */
- for(;;)
- {
- osDelay(500);
- //printf("长度:%d,事件:%d,流水号:%d,电量:%d,log:%d,MS:%d,RS:%d,HW:%04X,SW:%04X\r\n",bt_dataLength,bt_error_num,bt_serial_num,bt_battery,bt_log_num,bt_lock_machinesta,bt_lock_ropesta,bt_hwver,bt_sfver);
- }
- /* USER CODE END StartloginfoTaskTask */
- }
- /* Private application code --------------------------------------------------*/
- /* USER CODE BEGIN Application */
- /* USER CODE END Application */
|