uas-ugv/main/ugv_io.hh

40 lines
574 B
C++
Raw Normal View History

2019-01-15 10:37:22 -08:00
#pragma once
#include "ugv_io_gps.hh"
2019-01-17 19:44:14 -08:00
#include "ugv_io_mpu.hh"
2019-01-15 10:37:22 -08:00
namespace ugv {
namespace io {
using mpud::float_axes_t;
struct Inputs {
2019-01-17 19:44:14 -08:00
MpuData mpu;
GpsData gps;
2019-01-15 10:37:22 -08:00
};
struct Outputs {
float left_motor; // left motor power -1.0 to +1.0
float right_motor; // right motor power -1.0 to +1.0
};
class IOClass {
2019-01-15 10:37:22 -08:00
public:
explicit IOClass();
~IOClass();
2019-01-15 10:37:22 -08:00
void Init();
void ReadInputs(Inputs &inputs);
void WriteOutputs(const Outputs &outputs);
private:
2019-01-17 19:44:14 -08:00
UART_GPS gps_;
2019-01-17 23:15:07 -08:00
MPU mpu_;
void InitMotors();
2019-01-15 10:37:22 -08:00
};
} // namespace io
} // namespace ugv