/* * This file is part of Skyward Hub. * * Skyward Hub is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * Skyward Hub is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * Skyward Hub. If not, see <https://www.gnu.org/licenses/>. * */ #pragma once #include <Modules/CommandPad/MessageFormElement.h> #include <Modules/Mavlink/MavlinkVersionHeader.h> #include <QMap> #include <QString> namespace MessagesList { static const QStringList messagesList{"PING_TC", "COMMAND_TC", "SYSTEM_TM_REQUEST_TC", "SENSOR_TM_REQUEST_TC", "SERVO_TM_REQUEST_TC", "SET_SERVO_ANGLE_TC", "WIGGLE_SERVO_TC", "RESET_SERVO_TC", "SET_REFERENCE_ALTITUDE_TC", "SET_REFERENCE_TEMPERATURE_TC", "SET_ORIENTATION_TC", "SET_COORDINATES_TC", "RAW_EVENT_TC", "SET_DEPLOYMENT_ALTITUDE_TC", "SET_TARGET_COORDINATES_TC", "SET_ALGORITHM_TC", "SET_ATOMIC_VALVE_TIMING_TC", "SET_VALVE_MAXIMUM_APERTURE_TC", "SET_IGNITION_TIME_TC", "CONRIG_STATE_TC"}; static const QMap<QString, int> systemTmList{ {"MAV_SYS_ID", MAV_SYS_ID}, {"MAV_FSM_ID", MAV_FSM_ID}, {"MAV_PIN_OBS_ID", MAV_PIN_OBS_ID}, {"MAV_LOGGER_ID", MAV_LOGGER_ID}, {"MAV_MAVLINK_STATS", MAV_MAVLINK_STATS}, {"MAV_TASK_STATS_ID", MAV_TASK_STATS_ID}, {"MAV_ADA_ID", MAV_ADA_ID}, {"MAV_NAS_ID", MAV_NAS_ID}, {"MAV_CAN_ID", MAV_CAN_ID}, {"MAV_FLIGHT_ID", MAV_FLIGHT_ID}, {"MAV_STATS_ID", MAV_STATS_ID}, {"MAV_SENSORS_STATE_ID", MAV_SENSORS_STATE_ID}, {"MAV_GSE_ID", MAV_GSE_ID}, {"MAV_MOTOR_ID", MAV_MOTOR_ID}, {"MAV_REGISTRY_ID", MAV_REGISTRY_ID}}; static const QMap<QString, int> sensorsList{ {"MAV_GPS_ID", MAV_GPS_ID}, {"MAV_BMX160_ID", MAV_BMX160_ID}, {"MAV_VN100_ID", MAV_VN100_ID}, {"MAV_MPU9250_ID", MAV_MPU9250_ID}, {"MAV_ADS_ID", MAV_ADS_ID}, {"MAV_MS5803_ID", MAV_MS5803_ID}, {"MAV_BME280_ID", MAV_BME280_ID}, {"MAV_CURRENT_SENSE_ID", MAV_CURRENT_SENSE_ID}, {"MAV_LIS3MDL_ID", MAV_LIS3MDL_ID}, {"MAV_DPL_PRESS_ID", MAV_DPL_PRESS_ID}, {"MAV_STATIC_PRESS_ID", MAV_STATIC_PRESS_ID}, {"MAV_PITOT_PRESS_ID", MAV_PITOT_PRESS_ID}, {"MAV_BATTERY_VOLTAGE_ID", MAV_BATTERY_VOLTAGE_ID}, {"MAV_LOAD_CELL_ID", MAV_LOAD_CELL_ID}, {"MAV_FILLING_PRESS_ID", MAV_FILLING_PRESS_ID}, {"MAV_VESSEL_PRESS_ID", MAV_VESSEL_PRESS_ID}, {"MAV_TANK_TOP_PRESS_ID", MAV_TANK_TOP_PRESS_ID}, {"MAV_TANK_BOTTOM_PRESS_ID", MAV_TANK_BOTTOM_PRESS_ID}, {"MAV_TANK_TEMP_ID", MAV_TANK_TEMP_ID}, {"MAV_COMBUSTION_PRESS_ID", MAV_COMBUSTION_PRESS_ID}, {"MAV_LOAD_CELL_VESSEL_ID", MAV_LOAD_CELL_VESSEL_ID}, {"MAV_LOAD_CELL_TANK_ID", MAV_LOAD_CELL_TANK_ID}, {"MAV_LIS2MDL_ID", MAV_LIS2MDL_ID}, {"MAV_LPS28DFW_ID", MAV_LPS28DFW_ID}, {"MAV_LSM6DSRX_ID", MAV_LSM6DSRX_ID}, {"MAV_H3LIS331DL_ID", MAV_H3LIS331DL_ID}, {"MAV_LPS22DF_ID", MAV_LPS22DF_ID}}; static const QMap<QString, int> commandsList{ {"MAV_CMD_ARM", MAV_CMD_ARM}, {"MAV_CMD_DISARM", MAV_CMD_DISARM}, {"MAV_CMD_CALIBRATE", MAV_CMD_CALIBRATE}, {"MAV_CMD_SAVE_CALIBRATION", MAV_CMD_SAVE_CALIBRATION}, {"MAV_CMD_FORCE_INIT", MAV_CMD_FORCE_INIT}, {"MAV_CMD_FORCE_LAUNCH", MAV_CMD_FORCE_LAUNCH}, {"MAV_CMD_FORCE_LANDING", MAV_CMD_FORCE_LANDING}, {"MAV_CMD_FORCE_APOGEE", MAV_CMD_FORCE_APOGEE}, {"MAV_CMD_FORCE_EXPULSION", MAV_CMD_FORCE_EXPULSION}, {"MAV_CMD_FORCE_MAIN", MAV_CMD_FORCE_DEPLOYMENT}, {"MAV_CMD_START_LOGGING", MAV_CMD_START_LOGGING}, {"MAV_CMD_STOP_LOGGING", MAV_CMD_STOP_LOGGING}, {"MAV_CMD_FORCE_REBOOT", MAV_CMD_FORCE_REBOOT}, {"MAV_CMD_ENTER_TEST_MODE", MAV_CMD_ENTER_TEST_MODE}, {"MAV_CMD_EXIT_TEST_MODE", MAV_CMD_EXIT_TEST_MODE}, {"MAV_CMD_START_RECORDING", MAV_CMD_START_RECORDING}, {"MAV_CMD_STOP_RECORDING", MAV_CMD_STOP_RECORDING}, {"MAV_CMD_OPEN_NITROGEN", MAV_CMD_OPEN_NITROGEN}, {"MAV_CMD_REGISTRY_LOAD", MAV_CMD_REGISTRY_LOAD}, {"MAV_CMD_REGISTRY_SAVE", MAV_CMD_REGISTRY_SAVE}, {"MAV_CMD_REGISTRY_CLEAR", MAV_CMD_REGISTRY_CLEAR}}; const QMap<QString, int> servosList{ {"AIR_BRAKES_SERVO", AIR_BRAKES_SERVO}, {"EXPULSION_SERVO", EXPULSION_SERVO}, {"PARAFOIL_LEFT_SERVO", PARAFOIL_LEFT_SERVO}, {"PARAFOIL_RIGHT_SERVO", PARAFOIL_RIGHT_SERVO}, {"MAIN_VALVE", MAIN_VALVE}, {"VENTING_VALVE", VENTING_VALVE}, {"RELEASE_VALVE", RELEASE_VALVE}, {"FILLING_VALVE", FILLING_VALVE}, {"DISCONNECT_SERVO", DISCONNECT_SERVO}}; inline void fillMessagesMap(QMap<QString, MessageFormElement *> &formElements) { MessageFormElement *element; element = new MessageFormElement(); formElements["PING_TC"] = element; element = new MessageFormElement(); element->addComboBox("command_id", "Command:", commandsList); formElements["COMMAND_TC"] = element; element = new MessageFormElement(); element->addComboBox("tm_id", "Telemetry:", systemTmList); formElements["SYSTEM_TM_REQUEST_TC"] = element; element = new MessageFormElement(); element->addComboBox("sensor_id", "Sensor:", sensorsList); formElements["SENSOR_TM_REQUEST_TC"] = element; element = new MessageFormElement(); element->addComboBox("servo_id", "Servo:", servosList); formElements["SERVO_TM_REQUEST_TC"] = element; element = new MessageFormElement(); element->addComboBox("servo_id", "Servo:", servosList); element->addFloat("angle", "Angle:", 0, 180, 2); formElements["SET_SERVO_ANGLE_TC"] = element; element = new MessageFormElement(); element->addComboBox("servo_id", "Servo:", servosList); formElements["WIGGLE_SERVO_TC"] = element; element = new MessageFormElement(); element->addComboBox("servo_id", "Servo:", servosList); formElements["RESET_SERVO_TC"] = element; element = new MessageFormElement(); element->addFloat("ref_altitude", "Altitude:", 0, 9999, 2); formElements["SET_REFERENCE_ALTITUDE_TC"] = element; element = new MessageFormElement(); element->addFloat("ref_temp", "Temperature:", 0, 999, 2); formElements["SET_REFERENCE_TEMPERATURE_TC"] = element; element = new MessageFormElement(); element->addFloat("yaw", "Yaw:", -180, 180, 2); element->addFloat("pitch", "Pitch:", -180, 180, 2); element->addFloat("roll", "Roll:", -180, 180, 2); formElements["SET_ORIENTATION_TC"] = element; element = new MessageFormElement(); element->addFloat("latitude", "Latitude:", -90, 90, 6); element->addFloat("longitude", "Longitude:", -90, 90, 6); formElements["SET_COORDINATES_TC"] = element; element = new MessageFormElement(); element->addInteger("topic_id", "Topic:", 0, 999); element->addInteger("event_id", "Event:", 0, 999); formElements["RAW_EVENT_TC"] = element; element = new MessageFormElement(); element->addFloat("dpl_altitude", "Altitude:", 0, 9999, 2); formElements["SET_DEPLOYMENT_ALTITUDE_TC"] = element; element = new MessageFormElement(); element->addFloat("latitude", "Latitude:", -90, 90, 6); element->addFloat("longitude", "Longitude:", -90, 90, 6); formElements["SET_TARGET_COORDINATES_TC"] = element; element = new MessageFormElement(); element->addInteger("algorithm_number", "Algorithm:", 0, 999); formElements["SET_ALGORITHM_TC"] = element; element = new MessageFormElement(); element->addComboBox("servo_id", "Servo:", servosList); element->addInteger("maximum_timing", "Timing [ms]:", 0, 3600000); formElements["SET_ATOMIC_VALVE_TIMING_TC"] = element; element = new MessageFormElement(); element->addComboBox("servo_id", "Servo:", servosList); element->addFloat("maximum_aperture", "Aperture [0-1]:", 0, 1); formElements["SET_VALVE_MAXIMUM_APERTURE_TC"] = element; element = new MessageFormElement(); element->addInteger("timing", "Timing [ms]:", 0, 3600000); formElements["SET_IGNITION_TIME_TC"] = element; element = new MessageFormElement(); element->addInteger("ignition_btn", "Ignition:", 0, 1); element->addInteger("filling_valve_btn", "Filling:", 0, 1); element->addInteger("venting_valve_btn", "Venting:", 0, 1); element->addInteger("release_pressure_btn", "Release:", 0, 1); element->addInteger("quick_connector_btn", "Quick connector:", 0, 1); element->addInteger("start_tars_btn", "Tars:", 0, 1); element->addInteger("arm_switch", "Arm:", 0, 1); formElements["CONRIG_STATE_TC"] = element; } } // namespace MessagesList