#ifndef VEHICLE_H #define VEHICLE_H #include "VehicleManage_global.h" #include #include "QIcon" #include "QHash" #include "QMap" #include "QDebug" #include "QDateTime" #include "mavlink.h" #include "QTimer" /* 定时往外发消息 航线 航迹 图片 颜色 参数 状态 指令 消息 警告 自己在发送心跳 有自己的定时器,定时查询是否要解码,定时检查是不是来数据了 */ class VEHICLEMANAGE_EXPORT Vehicle : public QObject { Q_OBJECT public: explicit Vehicle(int id = 1, QObject *parent = nullptr); ~Vehicle(); public slots: QString Name(void) { return name; } void setName(QString value) { name = value; } QIcon Icon(void) { return icon; } void setIcon(QIcon value) { icon = value; } QColor TailColor(void) { return tailColor; } void setTailColor(QColor value) { tailColor = value; } QColor WayColor(void) { return wayColor; } void setWayColor(QColor value) { wayColor = value; } int SysID(void) { return sysid; } void setSysID(int value) { sysid = value; } int Type(void) { return type; } void setType(int value) { type = value; } bool Selected(void) { return isSelected; } void setSelected(bool value) { isSelected = value; } bool Heartbeat(void) { return heartbeat; } void setHeartbeat(bool value) { heartbeat = value; //发一次声音 beep } bool Arm(void) { return arm; } void setArm(bool value) { arm = value; //有变化后要播报语音 } int Flightmode(void) { return flightmode; } void setFlightmode(int value) { flightmode = value; //有变化后要播报语音 } int Flightstate(void) { return flightstate; } void setFlightstate(int value) { flightstate = value; //有变化后要播报语音 } void setMsg(mavlink_message_t *msg); void setParam(mavlink_param_value_t *param); void setMission(mavlink_mission_item_int_t *item); void _Handler(mavlink_message_t msg); private slots: void receiveMessage(mavlink_message_t message); void heartbeattimeout(void); signals: private: QTimer *heartbeattimer = nullptr; //一些可以配置的东西可以存在json里面,一旦生成这个飞机就导入json的设置 //基本信息 QString name = "vehicle"; QIcon icon = QIcon("fixwing.png"); QColor tailColor = "#026F80"; QColor wayColor = "#F09382"; qint32 group = 0;//当前飞机的组别 qint32 sysid = 0;//当前飞机的ID qint32 type = 0;//设备类型 bool isSelected = false; bool issendheartbeat = false; bool heartbeat = false;//反复变化 bool arm = false;//false 上锁 true 解锁 qint32 flightmode = 0;//飞行模式 stanby bit operational qint32 flightstate = 0;// qint32 imu_select = 0;//惯导选择 qint32 das_select = 0;//大气选择 //健康字 bool inner_INS = false; bool outer_INS = false; bool servosystem = false; bool loadinggear = false; bool recorder = false;//数据记录健康 bool inner_das = false; bool outer_das = false; //惯性 qreal roll = 0; qreal pitch = 0; qreal yaw = 0; qreal p = 0; qreal q = 0; qreal r = 0; qreal ax = 0; qreal ay = 0; qreal az = 0; //导航 qreal lat = 0; qreal lng = 0; qreal gpsalt = 0;//GPS海拔 qreal relalt = 0;//相对海拔 qreal absalt = 0;//绝对海拔 qreal baroalt = 0;//气压海拔 qreal groudspeed = 0; qreal heading = 0; qint32 fixtype = 0; qint32 directioncapture = false; qint32 satellites = 0; qreal vn = 0; qreal ve = 0; qreal vd = 0; //大气 qreal tas = 0;//真空速 qreal cas = 0;//表速 qreal Ma = 0;//马赫数 qreal alpha = 0;//攻角 qreal beta = 0;//侧滑角 //控制 qreal aileron = 0;//副翼 qreal elevator = 0;//升降舵 qreal throttle = 0;//油门 qreal ruddor = 0;//方向舵 //... //遥控 QList rc = {0};//收到的rc信号 QList rc_cmd = {0};//地面站站发出的rc指令 //电压 qreal mainvoltage = 0;//飞控电压 qreal servovoltage = 0;//舵机电压 qreal powervoltage = 0;//动力电压 QList battery = {0};//其余电压 QList voltagegain = {1};//电压转换系数 //数据链 bool isOnline = false;//数据链有没有丢失 qreal rssi = 0;//数据链强度 qint32 datain = 0;//数据输入量 qint32 dataout = 0;//数据输出量 //数据记录 bool isrecording = false;//是否在记录 /* * 航线组 * | * / \ * / \ * 航线1 航线2 * / | \ | \ * p p p p p * * 组下面有航线,航线下面有航点 * */ //当前飞机的航线 QMap> missions;//航线组 航线 //电子围栏 geoFancy //飞机的参数 QMap parameters; //飞机收到的消息 QMap messages; //飞机已经发出去的消息 //飞机收到的指令 //飞机要发出去的指令 //log文件,各种操作都要记录 }; #endif // VEHICLE_H