|
@@ -139,6 +139,7 @@ void Device_Info_Init_Fun() {
|
|
|
deviceInfo.newLoraDataFlag = 0;
|
|
deviceInfo.newLoraDataFlag = 0;
|
|
|
deviceInfo.isReady = 0;
|
|
deviceInfo.isReady = 0;
|
|
|
deviceInfo.commandFromCloud = IDLE;
|
|
deviceInfo.commandFromCloud = IDLE;
|
|
|
|
|
+ deviceInfo.loraSendSuccessFlag = 0;
|
|
|
//TODO: 大循环,获取设备地址信息,否则重新发送。发送上线信息,等待反馈,否则重新发送上线信息。一切准备就绪后,开启isready为1,进入工作模式。
|
|
//TODO: 大循环,获取设备地址信息,否则重新发送。发送上线信息,等待反馈,否则重新发送上线信息。一切准备就绪后,开启isready为1,进入工作模式。
|
|
|
// while (1){}
|
|
// while (1){}
|
|
|
}
|
|
}
|
|
@@ -284,6 +285,8 @@ int main(void)
|
|
|
/* USER CODE END WHILE */
|
|
/* USER CODE END WHILE */
|
|
|
|
|
|
|
|
/* USER CODE BEGIN 3 */
|
|
/* USER CODE BEGIN 3 */
|
|
|
|
|
+ //检测是否有新的lora 数据判断
|
|
|
|
|
+ //TODO 应该防止频繁调用此函数。如果command 是IDLE,则调用此函数。
|
|
|
if (deviceInfo.newLoraDataFlag == 1) {
|
|
if (deviceInfo.newLoraDataFlag == 1) {
|
|
|
// printf("loraDeviceAddress: 0x%02X 0x%02X\r\n", deviceInfo.loraDeviceAddress_H,deviceInfo.loraDeviceAddress_L);
|
|
// printf("loraDeviceAddress: 0x%02X 0x%02X\r\n", deviceInfo.loraDeviceAddress_H,deviceInfo.loraDeviceAddress_L);
|
|
|
E52_Analyze_Data();
|
|
E52_Analyze_Data();
|
|
@@ -296,12 +299,23 @@ int main(void)
|
|
|
Timer_Managment_Fun(&htim4, TIMER_OP_STOP);
|
|
Timer_Managment_Fun(&htim4, TIMER_OP_STOP);
|
|
|
deviceInfo.BlDataFlag = BL_STOP;
|
|
deviceInfo.BlDataFlag = BL_STOP;
|
|
|
while (receiveBlDataCount >= i) {
|
|
while (receiveBlDataCount >= i) {
|
|
|
- i++;
|
|
|
|
|
|
|
+
|
|
|
printf("发送第%d个蓝牙数据给Lora\r\n", i);
|
|
printf("发送第%d个蓝牙数据给Lora\r\n", i);
|
|
|
- E52_Send_Bl_Data_Fun(i);
|
|
|
|
|
|
|
+ if (deviceInfo.loraSendSuccessFlag == 0) {
|
|
|
|
|
+ E52_Send_Bl_Data_Fun(i);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ memset(totalData[i], 0, sizeof(totalData[i]));
|
|
|
|
|
+ i++;
|
|
|
}
|
|
}
|
|
|
|
|
+ receiveBlDataCount = 0;
|
|
|
|
|
+ deviceInfo.timeCount = 0;
|
|
|
|
|
+ deviceInfo.forwardBLAndLoraDataDuration = 0;
|
|
|
|
|
+ i = 0;
|
|
|
|
|
|
|
|
deviceInfo.commandFromCloud = IDLE;
|
|
deviceInfo.commandFromCloud = IDLE;
|
|
|
|
|
+ // 清空缓冲区(可选)
|
|
|
//TODO 停止计时器后,将数据发送出去。
|
|
//TODO 停止计时器后,将数据发送出去。
|
|
|
printf("停止蓝牙扫描,开始发送蓝牙数据给Lora\r\n");
|
|
printf("停止蓝牙扫描,开始发送蓝牙数据给Lora\r\n");
|
|
|
}else {
|
|
}else {
|