imu_stim300
Stim300RevD.hpp
Go to the documentation of this file.
1 #ifndef _STIM300_REV_D_HPP_
2 #define _STIM300_REV_D_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  int16_t atemp_x;
32  int16_t atemp_y;
33  int16_t atemp_z;
34  uint8_t atemp_status;
35  int16_t itemp_x;
36  int16_t itemp_y;
37  int16_t itemp_z;
38  uint8_t itemp_status;
39  uint8_t counter;
40  uint16_t latency;
41  uint32_t checksum;
42  } __attribute__ ((__packed__)); //very important to do not align with architecture words
43 
44  protected:
45 
46  static const unsigned int NUMBER_PADDING_BYTES = 1; //Number of dummy-bytes to be added for CRC-calculation (see Table 6.15 of the manual)
47  static const unsigned int MAX_PACKET_SIZE = 2 * sizeof(struct packet);
48 
50  packet *currentP;
52  public:
53 
55  Stim300RevD();
56 
59  int extractPacket(uint8_t const* buffer, size_t buffer_size) const;
60 
63  int processPacket();
64 
65  public:
66 
69  void printInfo();
70 
71  protected:
72 
73  double convertAcc2Acceleration(uint8_t const* buffer);
74 
75  bool verifyChecksum(boost::uint32_t &expintCRC, boost::uint32_t &calintCRC);
76  };
77 }
78 #endif
Definition: Stim300Base.hpp:13
Definition: Stim300Base.hpp:34
int16_t gtemp_x
Definition: Stim300RevD.hpp:279
uint8_t gyros_status
Definition: Stim300RevD.hpp:270
int16_t gtemp_z
Definition: Stim300RevD.hpp:281
imu_stim300::Stim300RevD __attribute__
int processPacket()
read the package and puts the data into the corresponding structures. *
Definition: Stim300RevD.cpp:113
uint8_t acc_status
Definition: Stim300RevD.hpp:274
int16_t itemp_y
Definition: Stim300RevD.hpp:288
uint8_t counter
Definition: Stim300RevD.hpp:291
int16_t atemp_x
Definition: Stim300RevD.hpp:283
uint8_t itemp_status
Definition: Stim300RevD.hpp:290
double convertAcc2Acceleration(uint8_t const *buffer)
Definition: Stim300RevD.cpp:236
void printInfo()
Get sensors information.
Definition: Stim300RevD.cpp:214
uint32_t checksum
Definition: Stim300RevD.hpp:293
static const unsigned int MAX_PACKET_SIZE
Definition: Stim300RevD.hpp:47
packet * currentP
Definition: Stim300RevD.hpp:50
Stim300RevD()
Definition: Stim300RevD.cpp:5
uint8_t gtemp_status
Definition: Stim300RevD.hpp:282
Definition: Stim300Base.hpp:38
uint8_t atemp_status
Definition: Stim300RevD.hpp:286
uint8_t incl_status
Definition: Stim300RevD.hpp:278
uint8_t buffer[MAX_PACKET_SIZE]
Definition: Stim300RevD.hpp:49
int extractPacket(uint8_t const *buffer, size_t buffer_size) const
Definition: Stim300RevD.cpp:41
Definition: Stim300RevD.hpp:8
int16_t gtemp_y
Definition: Stim300RevD.hpp:280
uint16_t latency
Definition: Stim300RevD.hpp:292
int16_t atemp_y
Definition: Stim300RevD.hpp:284
int16_t atemp_z
Definition: Stim300RevD.hpp:285
static const unsigned int NUMBER_PADDING_BYTES
Definition: Stim300RevD.hpp:46
imu_stim300::DATAGRAM_CONTENT content
Definition: Stim300Base.hpp:67
bool verifyChecksum(boost::uint32_t &expintCRC, boost::uint32_t &calintCRC)
Definition: Stim300RevD.cpp:265
int16_t itemp_x
Definition: Stim300RevD.hpp:287
int16_t itemp_z
Definition: Stim300RevD.hpp:289