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

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?

UserRevisionLine numberNew 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