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.
|
|
|
|
#ifndef MAVONE_H
|
|
|
|
|
#define MAVONE_H
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <mavsdk/mavsdk.h>
|
|
|
|
|
#include <mavsdk/plugins/action/action.h>
|
|
|
|
|
#include <mavsdk/plugins/telemetry/telemetry.h>
|
|
|
|
|
#include <mavsdk/plugins/mavlink_passthrough/mavlink_passthrough.h>
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
#include <iostream>
|
|
|
|
|
#include <fstream>
|
|
|
|
|
#include <sstream>
|
|
|
|
|
#include <iomanip>
|
|
|
|
|
#include <future>
|
|
|
|
|
#include <thread>
|
|
|
|
|
#include <chrono>
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <mutex>
|
|
|
|
|
#include <map>
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
|
|
#include <mysql_driver.h>
|
|
|
|
|
#include <mysql_connection.h>
|
|
|
|
|
#include <cppconn/resultset.h>
|
|
|
|
|
#include <cppconn/statement.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using namespace mavsdk;
|
|
|
|
|
using std::chrono::seconds;
|
|
|
|
|
using std::chrono::milliseconds;
|
|
|
|
|
using std::this_thread::sleep_for;
|
|
|
|
|
|
|
|
|
|
struct MavInitParameter {
|
|
|
|
|
std::string connectPort;
|
|
|
|
|
std::string connectPort2;
|
|
|
|
|
|
|
|
|
|
float C;
|
|
|
|
|
std::string mysqlHost;
|
|
|
|
|
std::string mysqlPort;
|
|
|
|
|
std::string mysqlUser;
|
|
|
|
|
std::string mysqlPW;
|
|
|
|
|
std::string mysqlDatabase;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class systemHandlerState {
|
|
|
|
|
Init, // 剛剛交給 systemHandler 去處理
|
|
|
|
|
Prologue, // 建立了 mysql row 並取得 serialNo
|
|
|
|
|
Ready, // 收到第一筆並放到 telemetryInfo 後
|
|
|
|
|
Disconnected, // mavsdk 判斷該系統斷線了
|
|
|
|
|
// Void
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct systemHandlerInfo {
|
|
|
|
|
int systemID;
|
|
|
|
|
std::thread systemThread;
|
|
|
|
|
systemHandlerState handlerState;
|
|
|
|
|
int mysqlSN;
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
bool reset;
|
|
|
|
|
|
|
|
|
|
#endif
|