MOTOROLA_SPEED_DIRECTION = 0x13,
MOTOROLA_SPEED_FUNCTION = 0x14,
MOTOROLA_SOLENOID = 0x15,
+ MFX_SET_STATION_ID = 0x21,
+ MFX_ANNOUNCE = 0x22,
+ MFX_SEARCH = 0x23,
+ MFX_ASSIGN_ADDRESS = 0x24,
+ MFX_PING = 0x25,
+ MFX_SPEED = 0x28,
+ MFX_SPEED_FUNCS8 = 0x29,
+ MFX_SPEED_FUNCS16 = 0x2A,
S88_READ = 0x30,
COMMAND_OK = 0x80,
RECEIVE_OVERRUN = 0x81,
TRACK_CURRENT = 0xC0,
INPUT_VOLTAGE = 0xC1,
POWER_STATE = 0xC2,
- S88_DATA = 0xD0
+ S88_DATA = 0xD0,
+ MFX_FEEDBACK = 0xD1
};
struct Tag
enum Protocol
{
- MM
+ MM,
+ MFX
};
struct ProtocolInfo
typedef std::map<unsigned, Sensor> SensorMap;
Msp::IO::Serial serial;
- bool debug;
+ unsigned debug;
ControlledVariable<bool> power;
SensorMap sensors;
unsigned n_s88_octets;
+ unsigned mfx_announce_serial;
+ unsigned next_mfx_address;
+
Msp::Mutex mutex;
ControlThread thread;