radar_can.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "radar_can.h"
  2. #include "message_queue.h"
  3. CCanRadarSensor::CCanRadarSensor(CMessageQueue* q) :_message(q)
  4. {
  5. _run = false;
  6. }
  7. void CCanRadarSensor::SetCanBusSensor(SensorCanBus<CCanRadarSensor>* can)
  8. {
  9. _canbus = can;
  10. }
  11. void CCanRadarSensor::Start()
  12. {
  13. if(!_run)
  14. {
  15. //_can_thread = std::thread(&CCanRadarSensor::Run, this);
  16. _run = true;
  17. }
  18. }
  19. void CCanRadarSensor::Run()
  20. {
  21. if (_run)
  22. {
  23. }
  24. }
  25. void CCanRadarSensor::Stop()
  26. {
  27. if (_run)
  28. {
  29. _run = false;
  30. //_can_thread.join();
  31. }
  32. }
  33. void CCanRadarSensor::Notify(struct can_frame *date)
  34. {
  35. if(_run)
  36. {
  37. if ((date->can_id & 0x60B) == 0x60B)
  38. {
  39. int Nl_Index = (int)((date->can_id & 0x00f0) >> 4);
  40. switch (Nl_Index)
  41. {
  42. case 1:
  43. _message->_Radardata.r0 = ((((date->data[1] * 32) + (date->data[2] >> 3)) * 0.2) - 500);
  44. break;
  45. default:
  46. break;
  47. }
  48. std::cout << "radar :" << _message->_Radardata.r0 << std::endl;
  49. }
  50. }
  51. }