MFX_SEARCH = 0x23,
MFX_ASSIGN_ADDRESS = 0x24,
MFX_PING = 0x25,
+ MFX_READ = 0x26,
MFX_SPEED = 0x28,
MFX_SPEED_FUNCS8 = 0x29,
MFX_SPEED_FUNCS16 = 0x2A,
POWER_STATE = 0xC2,
S88_DATA = 0xD0,
MFX_SEARCH_FEEDBACK = 0xD1,
- MFX_PING_FEEDBACK = 0xD2
+ MFX_PING_FEEDBACK = 0xD2,
+ MFX_READ_FEEDBACK = 0xD3
};
struct Tag
unsigned misses;
Queue<MfxInfo> queue;
+ MfxInfo *pending_info;
+ unsigned read_array;
+ unsigned read_offset;
+ unsigned read_length;
+ char read_data[0x40];
+ unsigned block_size;
+
public:
MfxSearchTask(ArduControl &);
virtual unsigned add_loco(unsigned, const std::string &, const VehicleType &);
private:
MfxInfoArray::iterator add_mfx_info(const MfxInfo &);
+ MfxInfo *find_mfx_info(unsigned);
public:
virtual void remove_loco(unsigned);
virtual void set_loco_speed(unsigned, unsigned);