]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/arducontrol.h
Add basic MFX support to arducontrol driver
[r2c2.git] / source / libr2c2 / arducontrol.h
index 4e9ef63b248c631821055aecf2ad0bc53ce5fbeb..3a86ceeacc09790bbfc1c7afa04ac6dab29093ff 100644 (file)
@@ -26,6 +26,14 @@ private:
                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,
@@ -37,7 +45,8 @@ private:
                TRACK_CURRENT = 0xC0,
                INPUT_VOLTAGE = 0xC1,
                POWER_STATE = 0xC2,
-               S88_DATA = 0xD0
+               S88_DATA = 0xD0,
+               MFX_FEEDBACK = 0xD1
        };
 
        struct Tag
@@ -68,7 +77,8 @@ private:
 
        enum Protocol
        {
-               MM
+               MM,
+               MFX
        };
 
        struct ProtocolInfo
@@ -189,7 +199,7 @@ private:
        typedef std::map<unsigned, Sensor> SensorMap;
 
        Msp::IO::Serial serial;
-       bool debug;
+       unsigned debug;
 
        ControlledVariable<bool> power;
 
@@ -207,6 +217,9 @@ private:
        SensorMap sensors;
        unsigned n_s88_octets;
 
+       unsigned mfx_announce_serial;
+       unsigned next_mfx_address;
+
        Msp::Mutex mutex;
        ControlThread thread;