#pragma once
#include "../common/comm.h"
#include "../common/notifier.h"
class CMessageQueue;
class SocketCan;

struct ImuData
{
    /* FVector3<float> AngVel;  // 3 floats, angular velocity vector
     FVector3<float> Rotation;
     FVector3<float> Accel;
*/
      float rx;
      float ry;
     // float rz;

     

};
class CImuSensor 
{
public:
      CImuSensor(CMessageQueue* q);
      void Start();
	void Stop();
      void Notify(int8_t * buffer,int32_t size);
      void PreProcess();
      void SetSensorSocket(SensorSocket<CImuSensor>* can); 
private:
      void ImuProcess(const cannet_frame& frame);
      int32_t bcd2dec(const int8_t *data);
     
private:
    CMessageQueue * _message;
    ImuData _imu; 
    SensorSocket<CImuSensor>* _can;
    
};