【类 型】:fix

【主	题】:mavlink数据请求 放在单片机第二个核心上执行
【描	述】:
	[原因]:防止核心一 阻塞
	[过程]:
	[影响]:
【结	束】

# 类型 包含:
# feat:新功能(feature)
# fix:修补bug
# docs:文档(documentation)
# style: 格式(不影响代码运行的变动)
# refactor:重构(即不是新增功能,也不是修改bug的代码变动)
# test:增加测试
# chore:构建过程或辅助工具的变动
This commit is contained in:
tk 2024-07-03 19:43:03 +08:00
parent a23bc5a277
commit ce111595eb
4 changed files with 7 additions and 7 deletions

View File

@ -22,5 +22,4 @@ lib_deps =
sandeepmistry/CAN@^0.3.1
fastled/FastLED@^3.5.0
madhephaestus/ESP32Servo@^0.13.0
bblanchon/ArduinoJson@^6.21.2

View File

@ -44,7 +44,6 @@ boolean isPush = false; // 记得删除 板子按钮状态 ps:D3引脚下拉微
Ticker pubTicker; // 定时发布主题 线程
Ticker mavTicker; // 定时 指定飞控mavlink 串口返回的数据类别 防止飞控启动滞后
Ticker flashTicker; // 单片机主动 按钮主动发布主题 线程
// Ticker chanTicker; //定时向飞控 发送油门指定
/**
@ -342,6 +341,7 @@ void mavlink_receiveCallback(uint8_t c)
{
mavlink_message_t msg;
mavlink_status_t status;
// 尝试从数据流里 解析数据
if (mavlink_parse_char(MAVLINK_COMM_0, c, &msg, &status))
{ // MAVLink解析是按照一个一个字符进行解析我们接收到一个字符就对其进行解析直到解析完根据返回标志判断一帧数据为止。

View File

@ -15,8 +15,8 @@ extern void mavlink_receiveCallback(uint8_t c);
extern const String topicPub[];
extern const int topicPubCount;
extern String topicPubMsg[];
extern String topicHandle[];
extern String oldMsg[];
extern String topicHandle[];
extern FoodCube fc; // 创建项目对象
extern Ticker pubTicker; // 定时发布主题 线程
extern Ticker mavTicker; // 定时 指定飞控mavlink 串口返回的数据类别 防止飞控启动滞后

View File

@ -434,10 +434,6 @@ void loop()
check_tare(); // 检查看是否需要校准称重
// 检测执行初始化工作
checkinited();
/////////////////////////////////MQTT_语音_MAVLINK 部分
/*从飞控拿数据*/
fc.comm_receive(mavlink_receiveCallback);
/////////////////////////////////MQTT_语音_MAVLINK 部分结束
delay(1);
}
// 在核心0上执行耗时长的低优先级的
@ -460,6 +456,11 @@ void Task1(void *pvParameters)
// 显示重量
// printf("pullweight: %d \n", pullweight);
/////////////////////////////////MQTT_语音_MAVLINK 部分
/*从飞控拿数据*/
fc.comm_receive(mavlink_receiveCallback);
vTaskDelay(1);
/////////////////////////////////MQTT_语音_MAVLINK 部分结束
if (fc.checkWiFiStatus())
/*保持mqtt心跳,如果Mqtt没有连接会自动连接*/
fc.mqttLoop("cmd");