Klamp't  0.9.0
SerialController.h
1 #ifndef SERIAL_CONTROLLER_H
2 #define SERIAL_CONTROLLER_H
3 
4 #include "Controller.h"
5 #include <KrisLibrary/utils/AsyncIO.h>
6 
7 class AnyCollection;
8 
9 namespace Klampt {
10 
38 {
39 public:
40  SerialController(RobotModel& robot,const string& servAddr="",Real writeRate=10);
41  virtual ~SerialController() {}
42  virtual const char* Type() const { return "SerialController"; }
43  virtual void Update(Real dt);
44  virtual void Reset();
45  virtual map<string,string> Settings() const;
46  virtual bool GetSetting(const string& name,string& str) const;
47  virtual bool SetSetting(const string& name,const string& str);
48 
49  bool OpenConnection(const string& servaddr);
50  bool CloseConnection();
51  void PackSensorData(AnyCollection& data);
52 
53  string servAddr;
54  Real writeRate;
55  Real lastWriteTime;
56  shared_ptr<SocketPipeWorker> controllerPipe;
57 
58  //for fixed-velocity commands, these are an accumulator that processes
59  //the linearly increasing configuration
60  Config vcmd;
61  Real endVCmdTime;
62 };
63 
64 } // namespace Klampt
65 
66 #endif
A base class for a robot controller. The base class does nothing.
Definition: Controller.h:29
A controller that writes sensor data to a socket and reads robot commands from a socket.
Definition: SerialController.h:37
The main robot type used in RobotSim.
Definition: Robot.h:83
Definition: ContactDistance.h:6