20230731_XiaoFuZi_emb/ZheDaXiaoFuZi/Src/Usr/App/XfzApp.c
Rjh913828050 a8560d741e 类型:重构
内容:重新整理项目文件分类
人员:任家豪
2023-10-08 16:10:23 +08:00

253 lines
7.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 <string.h>
#include <stdio.h>
/* 初始化任务 */
static void AppInit(void);
/* APP的各任务 */
static void AppTask(void);
/* APP测试程序 */
static void AppTest(void);
int main(void)
{
uint8_t mode = 0;
/* 初始化系统 */
McuBspSysInit();
/* 初始化RTC */
McuBspRtcInit();
McuTaskFlashInit();
/* 北斗初始化 */
McuDrvBeiDouHtyInit();
McuDrvBeiDouHtyConfOpposite("0917587", strlen("0917587"));
/* 写入数据 */
McuTaskFlashWriteOpt("App Join Success\r\n", strlen("App Join Success\r\n"));
/* 蓝牙任务初始化 */
McuTaskBlueToothInit();
/* 测试引入的开启北斗 */
if (0 == McuDrvBeiDouHtyPowerSta()) {
int j = 0;
McuDrvBeiDouHtyOpenPower();
while (1) {
HAL_Delay(10);
j++;
if (j >= 6000) {
break;
}
}
}
do {
// mode = TaskBlueToothGetAppMode();
// if (mode == 0) {
// int j = 0;
// /* 通知上位机,蓝牙进入低功耗模式 */
// if (0 == TaskBlueToothGetBluetoothMode()) {
// TaskBlueToothJoinLowPowerNoticePlat();
// }
// /* 将北斗模块断电处理 */
// if (0 != McuDrvBeiDouHtyPowerSta()) {
// McuDrvBeiDouHtyClosePower();
// }
// /* 进入休眠 */
// McuTaskSleep();
// /* 从完全低功耗唤醒之后的动作 */
// while (1) {
// HAL_Delay(10);
// j++;
// if (j >= 6000) {
// break;
// }
// McuTaskBlueTooth();
// mode = TaskBlueToothGetAppMode();
// if (mode != 0) {
// AppInit();
// McuTaskImuBeiDouAsk();
// McuTaskInParaBeiDouAsk();
// McuTaskManyParaBeiDouAsk();
// McuTaskPositionBeiDouAsk();
// /* 打开北斗通信 */
// if (0 == McuDrvBeiDouHtyPowerSta()) {
// McuDrvBeiDouHtyOpenPower();
// }
// HAL_Delay(60000);
// break;
// }
// }
// } else if (mode == 1) {
// TaskBlueToothNewTimer();
// while (1) {
// AppTask();
// mode = TaskBlueToothGetAppMode();
// if (mode != 1) {
// TaskBlueToothDelTimer();
// break;
// }
// /* 通知上位机,蓝牙进入低功耗模式 */
// if (0 == TaskBlueToothGetBluetoothMode()) {
// TaskBlueToothJoinLowPowerNoticePlat();
// }
// /* 判断是否有北斗任务在执行,没有就进行关闭 */
// if ((0 == (0x01 & McuTaskImuAskStatus())) && (0 == (0x01 & McuTaskInParaAskStatus())) &&
// (0 == (0x01 & McuTaskManyParaAskStatus())) && (0 == (0x01 & McuTaskPositionAskStatus()))) {
// McuDrvBeiDouHtyClosePower();
// }
// /* 进入低功耗 */
// if (0 == McuTaskFlashGetAsk() && 0 == McuTaskImuAskStatus() && 0 == McuTaskInParaAskStatus() && 0 == McuTaskManyParaAskStatus() && 0 == McuTaskPositionAskStatus() && 0 == TaskBlueToothGetBluetoothMode()) {
// McuTaskLowPowerJoin();
// }
// }
// } else if (mode == 2) {
// TaskBlueToothNewTimer();
// while (1) {
// AppTest();
// mode = TaskBlueToothGetAppMode();
// if (mode != 2) {
// TaskBlueToothDelTimer();
// break;
// }
// /* 通知上位机蓝牙进入低功耗模式 */
// if (0 == TaskBlueToothGetBluetoothMode()) {
// TaskBlueToothJoinLowPowerNoticePlat();
// }
// }
// }
AppTest();
} while (1);
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();
}
static void AppTest(void)
{
uint32_t j = 0;
AppInit();
McuTaskImuBeiDouAsk();
McuTaskInParaBeiDouAsk();
McuTaskManyParaBeiDouAsk();
McuTaskPositionBeiDouAsk();
/******************************************* 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();
}