|
|
@@ -176,6 +176,8 @@ void powerOn() {
|
|
|
//设备关闭供电
|
|
|
void powerOff() {
|
|
|
HAL_GPIO_WritePin(POWER_ON_GPIO_Port, POWER_ON_Pin, GPIO_PIN_RESET);
|
|
|
+ HAL_GPIO_WritePin(JUGE_PIN_GPIO_Port, JUGE_PIN_Pin, GPIO_PIN_RESET);
|
|
|
+ HAL_GPIO_WritePin(PowerLED_GPIO_Port, PowerLED_Pin, GPIO_PIN_RESET);
|
|
|
}
|
|
|
|
|
|
uint32_t RTC_CalcDiffSeconds(RTC_DateTimeTypeDef *t1, RTC_DateTimeTypeDef *t2)
|
|
|
@@ -252,7 +254,7 @@ int main(void)
|
|
|
// 使能 USART2 空闲中断
|
|
|
__HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE);
|
|
|
printf("开始初始化1\r\n");
|
|
|
- HAL_Delay(4000);
|
|
|
+ HAL_Delay(1000);
|
|
|
printf("开始初始化\r\n");
|
|
|
printf("切换为观察者模式\r\n");
|
|
|
E104_BT5005A_ROLE_Fun();
|
|
|
@@ -313,7 +315,7 @@ int main(void)
|
|
|
}
|
|
|
|
|
|
if (!sosState) {
|
|
|
- HAL_GPIO_WritePin(PowerLED_GPIO_Port, PowerLED_Pin, GPIO_PIN_SET);
|
|
|
+ // HAL_GPIO_WritePin(PowerLED_GPIO_Port, PowerLED_Pin, GPIO_PIN_SET);
|
|
|
E52_Heartbeat_Fun();
|
|
|
printf("SOS中\r\n");
|
|
|
|
|
|
@@ -348,20 +350,29 @@ int main(void)
|
|
|
continue;
|
|
|
// HAL_Delay(000);
|
|
|
}
|
|
|
- HAL_GPIO_TogglePin(PowerLED_GPIO_Port, PowerLED_Pin);
|
|
|
+ // HAL_GPIO_TogglePin(PowerLED_GPIO_Port, PowerLED_Pin);
|
|
|
|
|
|
// 命令为IDLE,且步骤为STEP_INIT 说明有新数据。
|
|
|
- if (GET_CMD( deviceInfo.commandFromCloud) == IDLE && GET_STEP(deviceInfo.commandFromCloud) == STEP_VERIFY && sosState) {
|
|
|
+ if (GET_CMD( deviceInfo.commandFromCloud) == IDLE && GET_STEP(deviceInfo.commandFromCloud) == STEP_VERIFY) {
|
|
|
E52_Analyze_Data();
|
|
|
}
|
|
|
|
|
|
// 检查是否接收到"心跳"命令,且设备在线
|
|
|
- if (!deviceInfo.isOnline && sosState){
|
|
|
+ if (!deviceInfo.isOnline){
|
|
|
printf("The device is not online.\r\n");
|
|
|
if (!deviceInfo.loraSendSuccessFlag) {
|
|
|
E52_Heartbeat_Fun();
|
|
|
}
|
|
|
- HAL_Delay(3000);
|
|
|
+ uint8_t count = 0;
|
|
|
+ while (count < 10) {
|
|
|
+ GPIO_PinState powerState1 = HAL_GPIO_ReadPin(JUGE_PIN_GPIO_Port, JUGE_PIN_Pin);
|
|
|
+ // printf("SOS_KEY_Pin pin state = %d\r\n", sosState);
|
|
|
+ if (powerState1 == GPIO_PIN_RESET) {
|
|
|
+ powerOff();
|
|
|
+ }
|
|
|
+ count++;
|
|
|
+ HAL_Delay(1000);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// if (SOS_key_struct.sosCheckActive) {
|
|
|
@@ -384,7 +395,7 @@ int main(void)
|
|
|
// }
|
|
|
|
|
|
// 03:请求蓝牙数据
|
|
|
- if (GET_CMD( deviceInfo.commandFromCloud) == REQUEST_BLUETOOTH_DATA && deviceInfo.isOnline && sosState) {
|
|
|
+ if (GET_CMD( deviceInfo.commandFromCloud) == REQUEST_BLUETOOTH_DATA && deviceInfo.isOnline) {
|
|
|
|
|
|
switch (GET_STEP(deviceInfo.commandFromCloud)) {
|
|
|
case REQUEST_BLUETOOTH_DATA_SCAN:
|
|
|
@@ -430,7 +441,7 @@ int main(void)
|
|
|
}
|
|
|
|
|
|
// 08:请求心跳数据
|
|
|
- if (GET_CMD( deviceInfo.commandFromCloud) == E52_HEARTBEAT && deviceInfo.isOnline && sosState) {
|
|
|
+ if (GET_CMD( deviceInfo.commandFromCloud) == E52_HEARTBEAT && deviceInfo.isOnline) {
|
|
|
switch (GET_STEP(deviceInfo.commandFromCloud)) {
|
|
|
case HEARTBEAT_SEND:
|
|
|
if (deviceInfo.loraSendSuccessFlag == 0) {
|
|
|
@@ -452,7 +463,7 @@ int main(void)
|
|
|
}
|
|
|
|
|
|
// 07:配置E52
|
|
|
- if (GET_CMD( deviceInfo.commandFromCloud) == CONFIGURE_E52 && deviceInfo.isOnline && sosState) {
|
|
|
+ if (GET_CMD( deviceInfo.commandFromCloud) == CONFIGURE_E52 && deviceInfo.isOnline) {
|
|
|
switch (GET_STEP(deviceInfo.commandFromCloud)) {
|
|
|
case CONFIGURE_E52_SET_BROADCAST_TYPE: //第一步,配置广播类型
|
|
|
E52_CONFIG_BROADCAST_TYPE_FUN(deviceInfo.broadcast_type);
|