#include <msp/io/serial.h>
#include <msp/time/timedelta.h>
#include <msp/time/timestamp.h>
#include <msp/io/serial.h>
#include <msp/time/timedelta.h>
#include <msp/time/timestamp.h>
virtual bool get_work(PendingCommand &);
virtual void process_reply(const char *, unsigned);
virtual bool get_work(PendingCommand &);
virtual void process_reply(const char *, unsigned);
virtual const DetectedLocomotive *enumerate_detected_locos(unsigned) const;
virtual unsigned add_loco(unsigned, const std::string &, const VehicleType &);
virtual const DetectedLocomotive *enumerate_detected_locos(unsigned) const;
virtual unsigned add_loco(unsigned, const std::string &, const VehicleType &);
virtual void remove_loco(unsigned);
virtual void set_loco_speed(unsigned, unsigned);
virtual void set_loco_reverse(unsigned, bool);
virtual void remove_loco(unsigned);
virtual void set_loco_speed(unsigned, unsigned);
virtual void set_loco_reverse(unsigned, bool);