164 lines
4.7 KiB
C
164 lines
4.7 KiB
C
#include "McuBspSys.h"
|
|
#include "McuBspRtc.h"
|
|
#include "McuBspTimer.h"
|
|
|
|
#include "McuTaskFlash.h"
|
|
#include "McuTaskImu.h"
|
|
#include "McuTaskInPara.h"
|
|
#include "McuTaskLowPower.h"
|
|
#include "McuTaskManyPara.h"
|
|
#include "McuTaskPosition.h"
|
|
#include "McuTaskBlueTooth.h"
|
|
#include "McuBspGpio.h"
|
|
#include "BeiDouHtyDrv.h"
|
|
#include "Usr_4GCatDtuDrv.h"
|
|
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
|
|
/* 初始化任务 */
|
|
static void AppInit(void);
|
|
/* APP的各任务 */
|
|
static void AppTask(void);
|
|
|
|
int main(void)
|
|
{
|
|
uint8_t mode = 0;
|
|
uint8_t qos;
|
|
/* 初始化系统 */
|
|
McuBspSysInit();
|
|
McuTaskLowPowerInit();
|
|
/* 初始化RTC */
|
|
McuBspRtcInit();
|
|
McuTaskFlashInit();
|
|
/* 初始化4G */
|
|
McuDrv4GCatDtuInit();
|
|
/* 北斗初始化 */
|
|
//McuDrvBeiDouHtyInit();
|
|
/* 写入数据 */
|
|
McuTaskFlashWriteOpt("App Join Success\r\n", strlen("App Join Success\r\n"));
|
|
/* 蓝牙任务初始化 */
|
|
McuTaskBlueToothInit();
|
|
AppInit();
|
|
mode = TaskBlueToothGetAppMode();
|
|
if (mode == 1) {
|
|
/* 关闭北斗 */
|
|
McuDrvBeiDouHtyClosePower();
|
|
/* 打开4G通信 */
|
|
if (0 == McuDrv4GCatDtuPowerSta()) {
|
|
McuDrv4GCatDtuOpenPower();
|
|
}
|
|
HAL_Delay(60000);
|
|
/* 判断4G信号质量 */
|
|
qos = McuDrv4GCatDtuSta();
|
|
if (qos > 0 && qos < 99) {
|
|
/* 4G通信 */
|
|
} else {
|
|
// /* 断开4G通信 */
|
|
// McuDrv4GCatDtuClosePower();
|
|
// /* 打开北斗通信 */
|
|
// if (0 == McuDrvBeiDouHtyPowerSta()) {
|
|
// McuDrvBeiDouHtyOpenPower();
|
|
// }
|
|
// HAL_Delay(60000);
|
|
}
|
|
McuTaskImuBeiDouAsk();
|
|
McuTaskInParaBeiDouAsk();
|
|
McuTaskManyParaBeiDouAsk();
|
|
McuTaskPositionBeiDouAsk();
|
|
}
|
|
while (1) {
|
|
AppTask();
|
|
/* 通知上位机,蓝牙进入低功耗模式 */
|
|
if (0 == TaskBlueToothGetBluetoothMode()) {
|
|
if (1 == McuTaskLowPowerGetLowerPowerBlth()) {
|
|
TaskBlueToothJoinLowPowerNoticePlat();
|
|
McuTaskLowPowerSetLowerPowerBlth(0);
|
|
}
|
|
} else {
|
|
continue;
|
|
}
|
|
/* 判断是否有北斗任务在执行,没有就进行关闭 */
|
|
if ((0 == (0x01 & McuTaskImuAskStatus())) && (0 == (0x01 & McuTaskInParaAskStatus())) &&
|
|
(0 == (0x01 & McuTaskManyParaAskStatus())) && (0 == (0x01 & McuTaskPositionAskStatus()))) {
|
|
McuDrvBeiDouHtyClosePower();
|
|
McuDrv4GCatDtuClosePower();
|
|
}
|
|
/* 进入低功耗 */
|
|
if (0 == McuTaskFlashGetAsk() && 0 == McuTaskImuAskStatus() &&
|
|
0 == McuTaskInParaAskStatus() && 0 == McuTaskManyParaAskStatus() &&
|
|
0 == McuTaskPositionAskStatus() && 0 == TaskBlueToothGetBluetoothMode() &&
|
|
(0 == McuTaskSetSelfStructionTimerState())) {
|
|
McuTaskLowPowerJoin();
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
/* 初始化任务 */
|
|
static void AppInit(void)
|
|
{
|
|
/* 初始化定时器 */
|
|
McuBspTimerInit();
|
|
/* FLASH任务初始化 */
|
|
McuTaskFlashConfInit();
|
|
/* 姿态任务初始化 */
|
|
McuTaskImuInit();
|
|
/* 内部环境任务初始化 */
|
|
McuTaskInParaInit();
|
|
/* 多参数任务初始化 */
|
|
McuTaskManyParaInit();
|
|
/* 定位任务初始化 */
|
|
McuTaskPositionInit();
|
|
}
|
|
|
|
/* APP的各任务 */
|
|
static void AppTask(void)
|
|
{
|
|
uint32_t j = 0;
|
|
/******************************************* FLASH任务 ***********************************/
|
|
while (1) {
|
|
j = 0;
|
|
if (0 == McuTaskFlashGetAsk()) {
|
|
break;
|
|
}
|
|
McuTaskFlash(NULL);
|
|
/* 等待发送再次被置位 */
|
|
while (1) {
|
|
HAL_Delay(15);
|
|
j++;
|
|
if (j >= 1000) {
|
|
break;
|
|
}
|
|
McuTaskBlueTooth();
|
|
if (0 != McuTaskFlashGetSendFlag()) {
|
|
break;
|
|
}
|
|
}
|
|
if (j >= 1000) {
|
|
McuTaskFlashClearAsk();
|
|
break;
|
|
}
|
|
}
|
|
/****************************************** IMU任务 *************************************/
|
|
if (McuTaskImuAskStatus()) {
|
|
McuTaskImuTask();
|
|
}
|
|
McuTaskBlueTooth();
|
|
/************************************* 内部环境参量任务 **********************************/
|
|
if (McuTaskInParaAskStatus()) {
|
|
McuTaskInParaTask();
|
|
}
|
|
McuTaskBlueTooth();
|
|
/*************************************** 多参数任务 *************************************/
|
|
if (McuTaskManyParaAskStatus()) {
|
|
McuTaskManyPara();
|
|
}
|
|
McuTaskBlueTooth();
|
|
/**************************************** 位置任务 **************************************/
|
|
if (McuTaskPositionAskStatus()) {
|
|
McuTaskPosition();
|
|
}
|
|
McuTaskBlueTooth();
|
|
}
|