|
@@ -95,7 +95,6 @@ void Device_Info_Init_Fun() {
|
|
|
RingBuffer_Init(&deviceInfo.queueLoraCommandData);
|
|
RingBuffer_Init(&deviceInfo.queueLoraCommandData);
|
|
|
|
|
|
|
|
deviceInfo.isOnline = FALSE;
|
|
deviceInfo.isOnline = FALSE;
|
|
|
- deviceInfo.isSOS = FALSE;
|
|
|
|
|
deviceInfo.broadcast_type = BROADCAST_ALL;
|
|
deviceInfo.broadcast_type = BROADCAST_ALL;
|
|
|
deviceInfo.loraDeviceAddress_H = 0xFE; //默认地址高位
|
|
deviceInfo.loraDeviceAddress_H = 0xFE; //默认地址高位
|
|
|
deviceInfo.loraDeviceAddress_L = 0xEF; //默认地址低位
|
|
deviceInfo.loraDeviceAddress_L = 0xEF; //默认地址低位
|
|
@@ -340,7 +339,7 @@ int main(void)
|
|
|
// 检查是否接收到"心跳"命令,且设备在线
|
|
// 检查是否接收到"心跳"命令,且设备在线
|
|
|
printf("设备状态:0x%02X\n", deviceInfo.commandFromCloud);
|
|
printf("设备状态:0x%02X\n", deviceInfo.commandFromCloud);
|
|
|
|
|
|
|
|
- schedule_Fun();
|
|
|
|
|
|
|
+ // schedule_Fun();
|
|
|
// 心跳:不在线时,每 10 秒发一次
|
|
// 心跳:不在线时,每 10 秒发一次
|
|
|
if (!deviceInfo.isOnline) {
|
|
if (!deviceInfo.isOnline) {
|
|
|
if (IsTimeElapsed(&hrtc, &Online_struct, 10)) {
|
|
if (IsTimeElapsed(&hrtc, &Online_struct, 10)) {
|
|
@@ -348,13 +347,6 @@ int main(void)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // SOS:如果超过 20 秒还没释放,自动关闭
|
|
|
|
|
- if (deviceInfo.isSOS) {
|
|
|
|
|
- if (IsTimeElapsed(&hrtc, &SOS_struct, 20)) {
|
|
|
|
|
- deviceInfo.isSOS = FALSE;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
// IDLE 检测
|
|
// IDLE 检测
|
|
|
if (GET_CMD(deviceInfo.commandFromCloud) == IDLE || GET_STEP(deviceInfo.commandFromCloud) == STEP_INIT) {
|
|
if (GET_CMD(deviceInfo.commandFromCloud) == IDLE || GET_STEP(deviceInfo.commandFromCloud) == STEP_INIT) {
|
|
|
HAL_RTC_GetTime(&hrtc, &IDLE_struct, RTC_FORMAT_BIN); // 直接更新
|
|
HAL_RTC_GetTime(&hrtc, &IDLE_struct, RTC_FORMAT_BIN); // 直接更新
|
|
@@ -372,7 +364,7 @@ int main(void)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 03:请求蓝牙数据
|
|
// 03:请求蓝牙数据
|
|
|
- if (((GET_CMD(deviceInfo.commandFromCloud) == REQUEST_BLUETOOTH_DATA && deviceInfo.isOnline ) || deviceInfo.isSOS)) {
|
|
|
|
|
|
|
+ if (GET_CMD(deviceInfo.commandFromCloud) == REQUEST_BLUETOOTH_DATA && deviceInfo.isOnline ) {
|
|
|
switch (GET_STEP(deviceInfo.commandFromCloud)) {
|
|
switch (GET_STEP(deviceInfo.commandFromCloud)) {
|
|
|
case REQUEST_BLUETOOTH_DATA_SCAN:
|
|
case REQUEST_BLUETOOTH_DATA_SCAN:
|
|
|
deviceInfo.BlDataFlag = BL_STOP;
|
|
deviceInfo.BlDataFlag = BL_STOP;
|
|
@@ -402,26 +394,11 @@ int main(void)
|
|
|
|
|
|
|
|
default:
|
|
default:
|
|
|
// 处理未知步骤
|
|
// 处理未知步骤
|
|
|
- if (deviceInfo.isSOS) {
|
|
|
|
|
- // HAL_Delay(1000);
|
|
|
|
|
- deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_VERIFY);
|
|
|
|
|
- rx_buf_uart2[0] = 0x55;
|
|
|
|
|
- rx_buf_uart2[1] = 0xBB;
|
|
|
|
|
- rx_buf_uart2[2] = 0x03;
|
|
|
|
|
- rx_buf_uart2[3] = deviceInfo.loraDeviceAddress_H;
|
|
|
|
|
- rx_buf_uart2[4] = deviceInfo.loraDeviceAddress_L;
|
|
|
|
|
- rx_buf_uart2[5] = 0x03;
|
|
|
|
|
- rx_buf_uart2[6] = 0xE8;
|
|
|
|
|
- rx_buf_uart2[7] = 0x00;
|
|
|
|
|
- rx_buf_uart2[8] = 0xFF;
|
|
|
|
|
- rx_buf_uart2[9] = 0xEE;
|
|
|
|
|
- }else {
|
|
|
|
|
- receiveBlDataCount = 0;
|
|
|
|
|
- deviceInfo.timeCount = 0;
|
|
|
|
|
- deviceInfo.forwardBLAndLoraDataDuration = 0;
|
|
|
|
|
- i = 0;
|
|
|
|
|
- deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ receiveBlDataCount = 0;
|
|
|
|
|
+ deviceInfo.timeCount = 0;
|
|
|
|
|
+ deviceInfo.forwardBLAndLoraDataDuration = 0;
|
|
|
|
|
+ i = 0;
|
|
|
|
|
+ deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|