You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.0 KiB
57 lines
1.0 KiB
// 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 <SITL/SITL.h> |
|
#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; |
|
}; |
|
|
|
} |
|
|
|
|