EtherCAT slave that reads 3 Xsens IMU's connected to a Xbus Master

Dependencies:   MODSERIAL mbed KL25Z_ClockControl

Fork of EtherCAT by First Last

Revision:
16:bfc7ea6bd1af
Parent:
15:b8d72679e644
Child:
20:ad13d4f5fd98
--- a/EtherCAT/objectlist.h	Tue Mar 03 14:51:37 2015 +0000
+++ b/EtherCAT/objectlist.h	Tue Mar 03 15:01:29 2015 +0000
@@ -139,13 +139,13 @@
 _ac acName6000_01[]="Accelerometer X";
 _ac acName6000_02[]="Accelerometer Y";
 _ac acName6000_03[]="Accelerometer Z";
-_ac acName6000_01[]="Gyroscope X";
-_ac acName6000_02[]="Gyroscope Y";
-_ac acName6000_03[]="Gyroscope Z";
-_ac acName6000_01[]="Magnetometer X";
-_ac acName6000_02[]="Magnetometer Y";
-_ac acName6000_03[]="Magnetometer Z";
-_ac acName6000_01[]="Temperature";
+_ac acName6000_04[]="Gyroscope X";
+_ac acName6000_05[]="Gyroscope Y";
+_ac acName6000_06[]="Gyroscope Z";
+_ac acName6000_07[]="Magnetometer X";
+_ac acName6000_08[]="Magnetometer Y";
+_ac acName6000_09[]="Magnetometer Z";
+_ac acName6000_0A[]="Temperature";
 /*End of subindexes for Digital Inputs*/
 _ac acName6001[]="Second IMU";
 _ac acName6002[]="Third IMU";
@@ -259,55 +259,47 @@
 
 const _objd SDO6000[]=                                                      //TxPDO module
 {{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x0A},                     //Number of elements
-  {0x01,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.first.acc[0])},//6000:01 is acc X
-  {0x02,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.first.acc[1])},//6000:02 is acc Y
-  {0x03,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.first.acc[2])},//6000:03 is acc Z
-  {0x04,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.first.gyr[0])},//6000:04 is gyr X
-  {0x05,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.first.gyr[1])},//6000:05 is gyr Y
-  {0x06,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.first.gyr[2])},//6000:06 is gyr Z
-  {0x07,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.first.mag[0])},//6000:07 is mag X
-  {0x08,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.first.mag[1])},//6000:08 is mag Y
-  {0x09,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.first.mag[2])},//6000:09 is mag Z
-  {0x0A,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.first.temp)}   //6000:0A is imu temperature
+  {0x01,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.first.acc[0])},//6000:01 is acc X
+  {0x02,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.first.acc[1])},//6000:02 is acc Y
+  {0x03,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.first.acc[2])},//6000:03 is acc Z
+  {0x04,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.first.gyr[0])},//6000:04 is gyr X
+  {0x05,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.first.gyr[1])},//6000:05 is gyr Y
+  {0x06,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.first.gyr[2])},//6000:06 is gyr Z
+  {0x07,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.first.mag[0])},//6000:07 is mag X
+  {0x08,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.first.mag[1])},//6000:08 is mag Y
+  {0x09,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.first.mag[2])},//6000:09 is mag Z
+  {0x0A,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.first.temp)}   //6000:0A is imu temperature
 };
 
 const _objd SDO6001[]=                                                      //TxPDO module
 {{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x0A},                     //Number of elements
-  {0x01,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.second.acc[0])},//6001:01 is acc X
-  {0x02,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.second.acc[1])},//6001:02 is acc Y
-  {0x03,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.second.acc[2])},//6001:03 is acc Z
-  {0x04,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.second.gyr[0])},//6001:04 is gyr X
-  {0x05,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.second.gyr[1])},//6001:05 is gyr Y
-  {0x06,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.second.gyr[2])},//6001:06 is gyr Z
-  {0x07,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.second.mag[0])},//6001:07 is mag X
-  {0x08,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.second.mag[1])},//6001:08 is mag Y
-  {0x09,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.second.mag[2])},//6001:09 is mag Z
-  {0x0A,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.second.temp)}   //6001:0A is imu temperature
+  {0x01,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.second.acc[0])},//6001:01 is acc X
+  {0x02,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.second.acc[1])},//6001:02 is acc Y
+  {0x03,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.second.acc[2])},//6001:03 is acc Z
+  {0x04,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.second.gyr[0])},//6001:04 is gyr X
+  {0x05,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.second.gyr[1])},//6001:05 is gyr Y
+  {0x06,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.second.gyr[2])},//6001:06 is gyr Z
+  {0x07,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.second.mag[0])},//6001:07 is mag X
+  {0x08,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.second.mag[1])},//6001:08 is mag Y
+  {0x09,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.second.mag[2])},//6001:09 is mag Z
+  {0x0A,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.second.temp)}   //6001:0A is imu temperature
 };
 
 const _objd SDO6002[]=                                                      //TxPDO module
 {{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x0A},                     //Number of elements
-  {0x01,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.third.acc[0])},//6002:01 is acc X
-  {0x02,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.third.acc[1])},//6002:02 is acc Y
-  {0x03,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.third.acc[2])},//6002:03 is acc Z
-  {0x04,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.third.gyr[0])},//6002:04 is gyr X
-  {0x05,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.third.gyr[1])},//6002:05 is gyr Y
-  {0x06,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.third.gyr[2])},//6002:06 is gyr Z
-  {0x07,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.third.mag[0])},//6002:07 is mag X
-  {0x08,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.third.mag[1])},//6002:08 is mag Y
-  {0x09,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.third.mag[2])},//6002:09 is mag Z
-  {0x0A,DTYPE_SIGNED16  ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.third.temp)}   //6002:0A is imu temperature
+  {0x01,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_01[0],0,&(Rb.third.acc[0])},//6002:01 is acc X
+  {0x02,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_02[0],0,&(Rb.third.acc[1])},//6002:02 is acc Y
+  {0x03,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_03[0],0,&(Rb.third.acc[2])},//6002:03 is acc Z
+  {0x04,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_04[0],0,&(Rb.third.gyr[0])},//6002:04 is gyr X
+  {0x05,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_05[0],0,&(Rb.third.gyr[1])},//6002:05 is gyr Y
+  {0x06,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_06[0],0,&(Rb.third.gyr[2])},//6002:06 is gyr Z
+  {0x07,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_07[0],0,&(Rb.third.mag[0])},//6002:07 is mag X
+  {0x08,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_08[0],0,&(Rb.third.mag[1])},//6002:08 is mag Y
+  {0x09,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_09[0],0,&(Rb.third.mag[2])},//6002:09 is mag Z
+  {0x0A,DTYPE_INTEGER16  ,16,ATYPE_R,&acName6000_0A[0],0,&(Rb.third.temp)}   //6002:0A is imu temperature
 };
 
-//TODO: Comments
-const _objd SDO6001[]=                                                      //TxPDO module
-{{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x05},                     //Number of elements
-  {0x01,DTYPE_REAL32     ,32,ATYPE_R,&acName6001_01[0],0,&(Rb.FrontLeft)},  //6001:1 is analog 0
-  {0x02,DTYPE_REAL32     ,32,ATYPE_R,&acName6001_02[0],0,&(Rb.FrontRight)},  //6001:2 is analog 1
-  {0x03,DTYPE_REAL32     ,32,ATYPE_R,&acName6001_03[0],0,&(Rb.BackLeft)},  //6001:3 is analog 2
-  {0x04,DTYPE_REAL32     ,32,ATYPE_R,&acName6001_04[0],0,&(Rb.BackRight)},  //6001:4 is analog 
-  {0x05,DTYPE_UNSIGNED32 ,32,ATYPE_R,&acName6001_05[0],0,&(Rb.timestamp)}   //6001:9 is timestamp
-};
+
 const _objd SDO7000[]=                                                      //RxPDO module
 {{0x00,DTYPE_UNSIGNED8  ,8,ATYPE_R,&acNameNOE[0],0x01},                     //Number of elements
   {0x01,DTYPE_UNSIGNED8  ,8,ATYPE_RW,&acName7000_01[0],0,&(Wb.correct_offset)}   //7001:02 is correct_offset