AnimatLab  2
Test
RbAnimatSerial.h
1 // RbAnimatSerial.h: interface for the RbAnimatSerial class.
2 //
4 
5 #pragma once
6 
7 #define MAX_ANIMAT_BUFFER 1024
8 
9 namespace RoboticsAnimatSim
10 {
11  namespace Robotics
12  {
13  namespace RobotIOControls
14  {
15 
17 {
18 protected:
19  union id_tag {
20  unsigned char bval[2];
21  unsigned short ival;
22  } m_id;
23 
24  union value_tag {
25  unsigned char bval[4];
26  float fval;
27  } m_value;
28 
29  union size_tag {
30  unsigned char bval[2];
31  unsigned short ival;
32  } m_size;
33 
35  std::string m_strPort;
36 
39 
40  ofSerial m_Port;
41 
42  // internal variables used for reading messages
43  unsigned char m_vals[MAX_ANIMAT_BUFFER]; // temporary values, moved after we confirm checksum
44  int m_index; // -1 = waiting for new packet
45  int m_checksum;
46  int m_iMessageID;
47  int m_iPacketSize;
48 
49  unsigned char status;
50  virtual void StepIO();
51  virtual bool OpenIO();
52  virtual void CloseIO();
53 
54  virtual void ResetData();
55  virtual void WaitForThreadNotifyReady();
56  virtual void ReadData();
57  virtual void WriteData();
58  virtual void WriteData(CStdArray<RemoteControlLinkage *> &aryWrites);
59  virtual void WriteAllData();
60  virtual void WriteResendData();
61 
62 public:
64  virtual ~RbAnimatSerial();
65 
66  virtual void Port(std::string strPort);
67  virtual std::string Port();
68 
69  virtual void BaudRate(int iRate);
70  virtual int BaudRate();
71 
72 #pragma region DataAccesMethods
73 
74  virtual bool SetData(const std::string &strDataType, const std::string &strValue, bool bThrowError = true);
75  virtual void QueryProperties(CStdPtrArray<TypeProperty> &aryProperties);
76 
77 #pragma endregion
78 
79  virtual void SimStarting();
80 
81  virtual void Initialize();
82  virtual void Load(StdUtils::CStdXml &oXml);
83 };
84 
85  } //RobotIOControls
86  } // Robotics
87 } //RoboticsAnimatSim
88 
A standard xml manipulation class.
Definition: StdXml.h:19
int m_iBaudRate
The baud rate of communications for this XBee.
std::string m_strPort
The serial port this Xbee communicates on.
Classes for implementing the cm-labs vortex physics engine for AnimatLab.