imu_stim300
Stim300RevB.hpp
Go to the documentation of this file.
1 #ifndef _STIM300_REV_B_HPP_
2 #define _STIM300_REV_B_HPP_
3 
4 #include "Stim300Base.hpp"
5 
6 namespace imu_stim300
7 {
9  {
10  private:
12  struct packet
13  {
14  uint8_t content;
15  struct sensor_value gyro_x;
16  struct sensor_value gyro_y;
17  struct sensor_value gyro_z;
18  uint8_t gyros_status;
19  struct sensor_value acc_x;
20  struct sensor_value acc_y;
21  struct sensor_value acc_z;
22  uint8_t acc_status;
23  struct sensor_value incl_x;
24  struct sensor_value incl_y;
25  struct sensor_value incl_z;
26  uint8_t incl_status;
27  int16_t gtemp_x;
28  int16_t gtemp_y;
29  int16_t gtemp_z;
30  uint8_t gtemp_status;
31  uint8_t counter;
32  uint16_t latency;
33  uint32_t checksum;
34  } __attribute__ ((__packed__)); //very important to do not align with architecture words
35 
36  protected:
37 
38  static const unsigned int NUMBER_PADDING_BYTES = 3; //Number of dummy-bytes to be added for CRC-calculation (see Table 6.15 of the manual)
39  static const unsigned int MAX_PACKET_SIZE = 2 * sizeof(struct packet);
40 
42  packet *currentP;
44  public:
45 
47  Stim300RevB();
48 
51  int extractPacket(uint8_t const* buffer, size_t buffer_size) const;
52 
55  int processPacket();
56 
57  public:
58 
61  void printInfo();
62 
63  protected:
64 
65  double convertAcc2Acceleration(uint8_t const* buffer);
66 
67  bool verifyChecksum(boost::uint32_t &expintCRC, boost::uint32_t &calintCRC);
68  };
69 }
70 #endif
Definition: Stim300Base.hpp:13
Definition: Stim300Base.hpp:34
int16_t gtemp_x
Definition: Stim300RevB.hpp:266
int extractPacket(uint8_t const *buffer, size_t buffer_size) const
Definition: Stim300RevB.cpp:41
uint8_t gyros_status
Definition: Stim300RevB.hpp:257
int processPacket()
read the package and puts the data into the corresponding structures. *
Definition: Stim300RevB.cpp:113
imu_stim300::Stim300RevD __attribute__
double convertAcc2Acceleration(uint8_t const *buffer)
Definition: Stim300RevB.cpp:223
uint16_t latency
Definition: Stim300RevB.hpp:271
int16_t gtemp_z
Definition: Stim300RevB.hpp:268
Definition: Stim300RevB.hpp:8
uint8_t counter
Definition: Stim300RevB.hpp:270
uint8_t incl_status
Definition: Stim300RevB.hpp:265
Stim300RevB()
Definition: Stim300RevB.cpp:5
Definition: Stim300Base.hpp:38
uint8_t buffer[MAX_PACKET_SIZE]
Definition: Stim300RevB.hpp:41
int16_t gtemp_y
Definition: Stim300RevB.hpp:267
uint8_t acc_status
Definition: Stim300RevB.hpp:261
bool verifyChecksum(boost::uint32_t &expintCRC, boost::uint32_t &calintCRC)
Definition: Stim300RevB.cpp:252
packet * currentP
Definition: Stim300RevB.hpp:42
void printInfo()
Get sensors information.
Definition: Stim300RevB.cpp:204
imu_stim300::DATAGRAM_CONTENT content
Definition: Stim300Base.hpp:67
uint8_t gtemp_status
Definition: Stim300RevB.hpp:269
static const unsigned int MAX_PACKET_SIZE
Definition: Stim300RevB.hpp:39
uint32_t checksum
Definition: Stim300RevB.hpp:272
static const unsigned int NUMBER_PADDING_BYTES
Definition: Stim300RevB.hpp:38