for CAN communication between mbed

Dependents:   EM_Logger EM_Mission

Files at this revision

API Documentation at this revision

Comitter:
YSB
Date:
Fri Aug 16 08:24:30 2013 +0000
Parent:
0:89073e0112db
Commit message:
20130816ver

Changed in this revision

myCAN.cpp Show annotated file Show diff for this revision Revisions of this file
myCAN.h Show annotated file Show diff for this revision Revisions of this file
--- a/myCAN.cpp	Sun Jul 21 07:02:45 2013 +0000
+++ b/myCAN.cpp	Fri Aug 16 08:24:30 2013 +0000
@@ -44,15 +44,24 @@
 {
     if(user == MISSION) {
         write(CANMessage(MISSION_STATUS,CANdata[MISSION_STATUS]));
+        wait_ms(5);
     } else if(user == LOGGER) {
         write(CANMessage(GPS_TIME,CANdata[GPS_TIME]));
+        wait_ms(5);
         write(CANMessage(GPS_LAT_1,CANdata[GPS_LAT_1]));
+        wait_ms(5);
         write(CANMessage(GPS_LAT_2,CANdata[GPS_LAT_2]));
+        wait_ms(5);
         write(CANMessage(GPS_LON_1,CANdata[GPS_LON_1]));
+        wait_ms(5);
         write(CANMessage(GPS_LON_2,CANdata[GPS_LON_2]));
+        wait_ms(5);
         write(CANMessage(SCP1000_PRES_TEMP,CANdata[SCP1000_PRES_TEMP]));
+        wait_ms(5);
         write(CANMessage(ADXL345_XYZ,CANdata[ADXL345_XYZ]));
+        wait_ms(5);
         write(CANMessage(ITG3200_XYZ,CANdata[ITG3200_XYZ]));
+        wait_ms(5);
     } else {}
 }
 
@@ -65,7 +74,7 @@
     }
 }
 
-void myCAN::make_logger_senddata(char* time,int NoS,char* latitude,char* longitude,int a_z,int temp,int pres)
+void myCAN::make_logger_senddata(char* time,int NoS,char* latitude,char* longitude,int roll,int pitch,int temp,int pres)
 {
     for(int i=0; i<8; i++) {
         CANdata[GPS_TIME][i] = time[i];
@@ -86,12 +95,16 @@
         CANdata[GPS_LON_2][i] = longitude[i+8];
     }
 
-    CANdata[SCP1000_PRES_TEMP][0]=(char)((temp & 0xF0)>>4);
-    CANdata[SCP1000_PRES_TEMP][1]=(char)(temp & 0x0F);
-    CANdata[SCP1000_PRES_TEMP][2]=(char)((pres & 0xF0)>>4);
-    CANdata[SCP1000_PRES_TEMP][3]=(char)(pres & 0x0F);
+    //CANdata[SCP1000_PRES_TEMP][0]=(char)((temp & 0xF0)>>4);
+    //CANdata[SCP1000_PRES_TEMP][1]=(char)(temp & 0x0F);
+    //CANdata[SCP1000_PRES_TEMP][2]=(char)((pres & 0xF0)>>4);
+    //CANdata[SCP1000_PRES_TEMP][3]=(char)(pres & 0x0F);
     
-    CANdata[GPS_LAT_2][2] = a_z;
+    CANdata[ADXL345_XYZ][0] = (char)((roll&0xFF00)>>8);
+    CANdata[ADXL345_XYZ][1] = (char)(roll&0x00FF);
+    
+    CANdata[ADXL345_XYZ][2] = (char)((pitch&0xFF00)>>8);
+    CANdata[ADXL345_XYZ][3] = (char)(pitch&0x00FF);
 }
 
 char* myCAN::get_time(void)
@@ -129,39 +142,19 @@
     NoS = CANdata[GPS_LAT_2][1];
     return NoS;
 }
-float myCAN::get_a_x(void)
-{
 
-    return acel[0];
-}
-float myCAN::get_a_y(void)
-{
-
-    return acel[1];
-}
-
-int myCAN::get_a_z(void)
-{  
-    acel[2] = CANdata[GPS_LAT_2][2];
-    return acel[2];
+int myCAN::get_roll(void){
+    hroll = CANdata[ADXL345_XYZ][0];
+    lroll = CANdata[ADXL345_XYZ][1];
+    roll = ((((short)(hroll))<<8) & 0xFF00) | (((short)(lroll))&0x00FF);
+    return roll;
 }
 
-int myCAN::get_j_x(void)
-{
-
-    return jail[0];
-}
-
-int myCAN::get_j_y(void)
-{
-
-    return jail[1];
-}
-
-int myCAN::get_j_z(void)
-{
-
-    return jail[2];
+int myCAN::get_pitch(void){
+    hpitch = CANdata[ADXL345_XYZ][2];
+    lpitch = CANdata[ADXL345_XYZ][3];
+    pitch = ((((short)(hroll))<<8) & 0xFF00) | (((short)(lroll))&0x00FF);
+    return pitch;
 }
 
 float myCAN::get_temp(void)
@@ -174,4 +167,13 @@
 {
     pres = (int)(CANdata[SCP1000_PRES_TEMP][2])<<4+(int)(CANdata[SCP1000_PRES_TEMP][3]);
     return pres;
+}
+
+void myCAN::make_mission_senddata(int status){
+    CANdata[MISSION_STATUS][0] = status;
+}
+    
+int myCAN::get_mission_status(void){
+    mission_status = CANdata[MISSION_STATUS][0];
+    return mission_status;
 }
\ No newline at end of file
--- a/myCAN.h	Sun Jul 21 07:02:45 2013 +0000
+++ b/myCAN.h	Fri Aug 16 08:24:30 2013 +0000
@@ -17,15 +17,13 @@
     float get_temp(void);
     int get_pres(void);
     
-    float get_a_x(void);
-    float get_a_y(void);
-    int get_a_z(void);
-    int get_j_x(void);
-    int get_j_y(void);
-    int get_j_z(void);
+    int get_roll(void);
+    int get_pitch(void);
     
-    void make_logger_senddata(char* time,int NoS,char* latitude,char* longitude,int a_z,int temp,int pres);
-    void make_mission_senddata(void);
+    int get_mission_status(void);
+    
+    void make_logger_senddata(char* time,int NoS,char* latitude,char* longitude,int roll,int pitch,int temp,int pres);
+    void make_mission_senddata(int status);
     
     void send(char user);
 
@@ -39,9 +37,14 @@
     char latitude[10];
     char longitude[11];
     
-    int acel[3];
-    int jail[3];
+    int mission_status;
     
+    char hroll;
+    char lroll;
+    int roll;
+    char hpitch;
+    char lpitch;
+    int pitch;
     int temp;
     int pres;