#include "globals.h" #include /* 用簡單粗暴的全域變數讓主迴圈跟副迴圈傳遞資料 另外加個 互斥鎖(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> gTelemetryInfo; std::map>> gVehicleCommand; std::map> gHandlerMask; std::mutex gTeleMtx; std::mutex gComMtx;