|
|
@@ -285,27 +285,18 @@ void USART2_IRQHandler(void)
|
|
|
rx_buf_uart2_DMA[10] == 0xFF &&
|
|
|
rx_buf_uart2_DMA[11] == 0xEE)
|
|
|
{
|
|
|
- if (GET_CMD(deviceInfo.commandFromCloud) == IDLE &&
|
|
|
- GET_STEP(deviceInfo.commandFromCloud) == STEP_INIT)
|
|
|
+ if (rx_buf_uart2_DMA[2] == 0x0A || (GET_CMD(deviceInfo.commandFromCloud) == IDLE &&
|
|
|
+ GET_STEP(deviceInfo.commandFromCloud) == STEP_INIT))
|
|
|
{
|
|
|
+ deviceInfo.isOnline = TRUE;
|
|
|
memcpy(rx_buf_uart2, rx_buf_uart2_DMA, rx_len); // 拷贝实际接收数据
|
|
|
deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_VERIFY);
|
|
|
- //测试将命令加入队列
|
|
|
- if (RingBuffer_Enqueue(&deviceInfo.queueLoraCommandData, rx_buf_uart2_DMA) == 0) {
|
|
|
- // 入队成功
|
|
|
- } else {
|
|
|
- // 入队失败(已满暂停入队)
|
|
|
- }
|
|
|
- }
|
|
|
- else if (rx_buf_uart2_DMA[2] == 0x0A) { //意外情况,后台控制恢复初始状态
|
|
|
- deviceInfo.isOnline = TRUE;
|
|
|
- deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
|
|
|
}
|
|
|
}
|
|
|
// ====== 判断 "SUCCESS" ======
|
|
|
else if (rx_len >= 7 && strncmp((char *)rx_buf_uart2_DMA, "SUCCESS", 7) == 0)
|
|
|
{
|
|
|
- // deviceInfo.loraSendSuccessFlag = 0;
|
|
|
+ deviceInfo.loraSendSuccessFlag = 0;
|
|
|
}
|
|
|
// ====== 判断 "AT" 指令 ======
|
|
|
else if (rx_len >= 2 && strncmp((char *)rx_buf_uart2_DMA, "AT", 2) == 0)
|
|
|
@@ -428,9 +419,11 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
|
|
|
// 松开(上升沿)
|
|
|
// printf("SOS_KEY 松开\r\n");
|
|
|
// deviceInfo.isSOS = FALSE;
|
|
|
+ __HAL_UART_ENABLE_IT(&huart3, UART_IT_IDLE);
|
|
|
} else {
|
|
|
// 按下(下降沿)
|
|
|
// printf("SOS_KEY 按下\r\n");
|
|
|
+ __HAL_UART_DISABLE_IT(&huart3, UART_IT_IDLE);
|
|
|
SOS_struct = currentTime; // 记录上报时间
|
|
|
// deviceInfo.isSOS = TRUE;
|
|
|
}
|