most functionality to splashdwon, find neutral and start mission. short timeouts still in code for testing, will adjust to go directly to sit_idle after splashdown
Dependencies: mbed MODSERIAL FATFileSystem
IMU/IMU.h@9:d5fcdcb3c89d, 2017-10-20 (annotated)
- Committer:
- mkelly10
- Date:
- Fri Oct 20 11:41:22 2017 +0000
- Revision:
- 9:d5fcdcb3c89d
- Child:
- 10:085ab7328054
Tested 10/19/17 Folders
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mkelly10 | 9:d5fcdcb3c89d | 1 | #include "mbed.h" |
mkelly10 | 9:d5fcdcb3c89d | 2 | #include "MODSERIAL.h" |
mkelly10 | 9:d5fcdcb3c89d | 3 | |
mkelly10 | 9:d5fcdcb3c89d | 4 | #define _PI ((float) 3.14159265359) |
mkelly10 | 9:d5fcdcb3c89d | 5 | |
mkelly10 | 9:d5fcdcb3c89d | 6 | class IMU{ |
mkelly10 | 9:d5fcdcb3c89d | 7 | public: |
mkelly10 | 9:d5fcdcb3c89d | 8 | IMU(); |
mkelly10 | 9:d5fcdcb3c89d | 9 | void initialize(); |
mkelly10 | 9:d5fcdcb3c89d | 10 | void update(); |
mkelly10 | 9:d5fcdcb3c89d | 11 | void start(); |
mkelly10 | 9:d5fcdcb3c89d | 12 | void stop(); |
mkelly10 | 9:d5fcdcb3c89d | 13 | |
mkelly10 | 9:d5fcdcb3c89d | 14 | protected: |
mkelly10 | 9:d5fcdcb3c89d | 15 | Ticker interval; |
mkelly10 | 9:d5fcdcb3c89d | 16 | MODSERIAL _rs232; |
mkelly10 | 9:d5fcdcb3c89d | 17 | unsigned char SYNC1; // First sync byte will always be 'u' (0x75) |
mkelly10 | 9:d5fcdcb3c89d | 18 | unsigned char SYNC2; // Second sync byte will always be 'e' (0x65) |
mkelly10 | 9:d5fcdcb3c89d | 19 | unsigned char descripter_set; // Descriptor set byte for AHRS (0x80) |
mkelly10 | 9:d5fcdcb3c89d | 20 | int payload_length; // Payload length byte for CF Euler Angles (0x0E) |
mkelly10 | 9:d5fcdcb3c89d | 21 | int field_length; // Field length byte for CF Euler Angles (0x0E) |
mkelly10 | 9:d5fcdcb3c89d | 22 | unsigned char data_descriptor; // Data descriptor byte for CF Euler Angles (0x0C) |
mkelly10 | 9:d5fcdcb3c89d | 23 | unsigned char data[30]; // Data sent CF euler angles rpy [radians] |
mkelly10 | 9:d5fcdcb3c89d | 24 | int data_offset; // Binary offset |
mkelly10 | 9:d5fcdcb3c89d | 25 | int roll_offset; // Binary offset |
mkelly10 | 9:d5fcdcb3c89d | 26 | int pitch_offset; // Binary offset |
mkelly10 | 9:d5fcdcb3c89d | 27 | int yaw_offset; // Binary offset |
mkelly10 | 9:d5fcdcb3c89d | 28 | float euler[3]; |
mkelly10 | 9:d5fcdcb3c89d | 29 | |
mkelly10 | 9:d5fcdcb3c89d | 30 | int i; // set packet_length based on field_length (convert from hex to int) |
mkelly10 | 9:d5fcdcb3c89d | 31 | unsigned char current; |
mkelly10 | 9:d5fcdcb3c89d | 32 | unsigned char last; |
mkelly10 | 9:d5fcdcb3c89d | 33 | |
mkelly10 | 9:d5fcdcb3c89d | 34 | float float_from_char(unsigned char * value); |
mkelly10 | 9:d5fcdcb3c89d | 35 | }; |
mkelly10 | 9:d5fcdcb3c89d | 36 |