aaa

Dependencies:   mbed BNO055_fusion Adafruit_GFX ros_lib_kinetic

Revision:
5:e678f1ac6cdc
Parent:
4:cf1a4e503974
Child:
6:20a32baeff79
--- a/myCan.h	Wed Dec 12 03:35:52 2018 +0000
+++ b/myCan.h	Tue Dec 18 21:00:30 2018 +0000
@@ -1,9 +1,11 @@
+
 #ifndef _MY_CAN_H_
 #define _MY_CAN_H_
 
 #include <mbed.h>
 #include "odom.h"
 #include "myRos.h"
+#include "type.h"
 
 /* CAN_GLOBAL DEFINE BEGIN */
 
@@ -14,19 +16,24 @@
     
     struct{
         uint8_t frameName;
-        uint32_t id : 24;
+        uint8_t id;
         FIXED_NUM_16 x;
         FIXED_NUM_16 y;
+        uint32_t unuse : 16;
     }data;
 }can_odom_xy_t;
 
+//pose initializeとフレームを共用にするためcourt_colorを入れた
+//通常のデータ送信では使わない
 typedef union{
     char array[8];
     
     struct{
         uint8_t frameName;
-        uint32_t id : 24;
+        uint8_t id;
         float angle;
+        uint8_t court_color;
+        uint32_t unuse : 8;
     }data;
 }can_odom_angle_t;
 
@@ -43,15 +50,11 @@
 #define CAN_FILTER_SND_MASK         (0x0078)
 #define CAN_FILTER_DST_MASK         (0x0780)
 
-#define ODOM_RESET                  (0xa0)
-#define ODOM_BOARD_RESET            (0xa1)
-#define ODOM_BNO_RESET              (0xa2)
-#define ODOM_ROS_ENABLE             (0xa3)
-#define ODOM_SEQUENTIAL_START       (0xa4)
-#define ODOM_SEQUENTIAL_STOP        (0xa5)
-#define ODOM_DATA_XY                (0xa6)
-#define ODOM_DATA_ANGLE             (0xa7)
-#define ODOM_SET_ANGLE              (0xa8)
+#define ODOM_DATA_XY                (0xa0)
+#define ODOM_DATA_ANGLE             (0xa1)
+#define ODOM_SET_INITIAL_XY         (0xa2)
+#define ODOM_SET_INITIAL_ANGLE      (0xa3)
+#define ODOM_RESET                  (0xa4)
 /* CAN_GLOBAL DEFINE END */
 
 class My_Can : public Odom_Abstract, CAN
@@ -59,13 +62,13 @@
     private:
         FunctionPointer amcl_initialize_;
         FunctionPointer led_toggle_;
+        
+        Timer timer_;
     
     public:
         My_Can(Odom *odom) : Odom_Abstract(odom), CAN(PB_8, PB_9, 1000000){
             filter(CreateSid(0, ID_MAIN, ID_ODOM), CAN_FILTER_SND_MASK | CAN_FILTER_DST_MASK, CANStandard);
-            
-            Vec3f initialpose(-0.5, 0.5, 0);
-            set_initial_pose(initialpose);
+            timer_.start();
         }
         
         void initialize_amcl_attach(My_Ros *object, void (My_Ros::*member)(void)){
@@ -77,10 +80,13 @@
         }
         
         void test(){
-            led_toggle_.call();
+//            led_toggle_.call();
         }
         
     private:
+    
+        void receive();
+        void check_initial_frame(uint8_t *data);
         
         FIXED_NUM_16 EncodeFixedNumber(float fn){
             uint16_t sign_part = 0;