// Created by Asa Davis and Davis Schenkenberger on 23rd September 21. //usage: //PARAMS: // param set AHRS_EKF_TYPE 11 // param set EAHRS_TYPE 2 // param set SERIAL4_PROTOCOL 36 // param set SERIAL4_BAUD 115 // sim_vehicle.py -v ArduPlane -D --console --map -A --uartE=sim:LORD #pragma once #include "SIM_Aircraft.h" #include #include "SIM_SerialDevice.h" namespace SITL { class LORD : public SerialDevice { public: LORD(); // update state void update(void); private: struct LORD_Packet { uint8_t header[4]; uint8_t payload[256]; uint8_t checksum[2]; size_t payload_size = 0; }; uint32_t last_imu_pkt_us; uint32_t last_gnss_pkt_us; uint32_t last_filter_pkt_us; void generate_checksum(LORD_Packet&); void send_packet(LORD_Packet); void send_imu_packet(); void send_gnss_packet(); void send_filter_packet(); void put_float(LORD_Packet&, float); void put_double(LORD_Packet&, double); void put_int(LORD_Packet&, uint16_t); uint64_t start_us; }; }