Source: models/PacketTypes.js

/**
 * @author Serge Babayan
 * @module models/PacketTypes
 * @copyright Waterloo Aerial Robotics Group 2016
 * @licence https://raw.githubusercontent.com/UWARG/WARG-Ground-Station/master/LICENSE
 * @description Contains the different packet types that the TelemetryData module sends out. Also lists the validation
 * function to use for a certain header received from the picpilot.
 * @see http://docs.uwarg.com/picpilot/datalink/
 */

var PacketTypes = {
  aircraft_position: { //this is the event name
    'lat': 'isValidLatitude', //the key is the header name, the value is a function name in the Validator module. Could be an array if you want to use multiple
    'lon': 'isValidLongitude',
    'sys_time': 'isValidTime',
    'time': 'isValidTime',
    'airspeed': 'isValidSpeed',
    'ground_speed': 'isValidSpeed',
    'heading': 'isValidHeading',
    'heading_setpoint': 'isValidHeading',
    'altitude': 'isValidAltitude',
    'altitude_setpoint': 'isValidAltitude',
    'throttle_setpoint': 'isValidThrottle',
    'flap_setpoint': 'isValidFlap'
  },

  aircraft_orientation: {
    'pitch': 'isValidPitch',
    'roll': 'isValidRoll',
    'yaw': 'isValidYaw',
    'pitch_rate': 'isValidNumber',
    'roll_rate': 'isValidNumber',
    'yaw_rate': 'isValidNumber',
    'yaw_rate_setpoint': 'isValidNumber',
    'roll_rate_setpoint': 'isValidNumber',
    'roll_setpoint': 'isValidRoll',
    'pitch_rate_setpoint': 'isValidNumber',
    'pitch_setpoint': 'isValidPitch'
  },

  aircraft_gains: {
    'roll_kd': 'isValidNumber',
    'roll_kp': 'isValidNumber',
    'pitch_kd': 'isValidNumber',
    'pitch_kp': 'isValidNumber',
    'yaw_kd': 'isValidNumber',
    'yaw_kp': 'isValidNumber',
    'roll_ki': 'isValidNumber',
    'pitch_ki': 'isValidNumber',
    'yaw_ki': 'isValidNumber',
    'heading_kd': 'isValidNumber',
    'heading_kp': 'isValidNumber',
    'heading_ki': 'isValidNumber',
    'altitude_kd': 'isValidNumber',
    'altitude_kp': 'isValidNumber',
    'altitude_ki': 'isValidNumber',
    'throttle_kd': 'isValidNumber',
    'throttle_kp': 'isValidNumber',
    'throttle_ki': 'isValidNumber',
    'flap_kd': 'isValidNumber',
    'flap_kp': 'isValidNumber',
    'flap_ki': 'isValidNumber',
    'path_gain': 'isValidNumber',
    'orbit_gain': 'isValidNumber'
  },

  aircraft_status: {
    'last_command_sent0': ['isPositiveNumber', 'isInteger'],
    'last_command_sent1': ['isPositiveNumber', 'isInteger'],
    'last_command_sent2': ['isPositiveNumber', 'isInteger'],
    'last_command_sent3': ['isPositiveNumber', 'isInteger'],
    'battery_level1': 'isValidBattery',
    'battery_level2': 'isValidBattery',
    'autonomousLevel': ['isPositiveNumber', 'isInteger'],
    'startup_error_codes': ['isPositiveNumber', 'isInteger'],
    'startupSettings': ['isPositiveNumber', 'isInteger'],
    'probe_status': ['isPositiveNumber', 'isInteger'],
    'RSSI': 'isValidNumber',
    'wireless_connection': ['isPositiveNumber', 'isInteger'],
    'autopilot_active': ['isPositiveNumber', 'isInteger'],
    'gps_status': ['isPositiveNumber', 'isInteger'],
    'camera_status': ['isPositiveNumber', 'isInteger'],
    'waypoint_count': ['isPositiveNumber', 'isInteger'],
    'waypoint_index': ['isPositiveNumber', 'isInteger'],
    'path_following': 'isBooleanInt',
    'path_checksum': 'isPositiveNumber'
  },

  aircraft_channels: {
    'ch1in': 'isInteger',
    'ch2in': 'isInteger',
    'ch3in': 'isInteger',
    'ch4in': 'isInteger',
    'ch5in': 'isInteger',
    'ch6in': 'isInteger',
    'ch7in': 'isInteger',
    'ch8in': 'isInteger',
    'ch1out': 'isInteger',
    'ch2out': 'isInteger',
    'ch3out': 'isInteger',
    'ch4out': 'isInteger',
    'ch5out': 'isInteger',
    'ch6out': 'isInteger',
    'ch7out': 'isInteger',
    'ch8out': 'isInteger'
  }
};

module.exports = PacketTypes;