You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.2 KiB
C++

#include "globals.h"
#include <array>
/*
用簡單粗暴的全域變數讓主迴圈跟副迴圈傳遞資料
另外加個 互斥鎖(Mutex) 避免存取衝突
gTelemetryInfo
這個變數是存放 副迴圈 到 主迴圈的資訊 (主要是要讓無人機的 telemetry 藉由主迴圈再寫進資料庫)
資料形式為 systemid[INT] : { 資訊名稱[String] : 資訊內容[String] }
例如
gTelemetryInfo = {
1 : { "vehicle_lat" : "24.16584990", "vehicle_lon" : "120.99977417", "vehicle_head" : "167.01" },
2 : { "vehicle_bat" : "0.97", "drone_air" : "1" }
}
則代表裡面存有 system id 1 的 經緯度與航向 而 system id 2 有電量與滯空狀態
gVehicleCommand
gHandlerMask
這個變數是讓 主迴圈 得知 副迴圈 的連線狀態
gHandlerMask[sysid]["is_connected"]
這個變數是讓 主迴圈 通知 副迴圈 切斷Loop
gHandlerMask[sysid]["cutoff"]
*/
std::map<int, std::map<std::string, std::string>> gTelemetryInfo;
std::map<int, std::map<int, std::array<double, 2>>> gVehicleCommand;
std::map<int, std::map<std::string, int>> gHandlerMask;
std::mutex gTeleMtx;
std::mutex gComMtx;