canrecv_producer.cpp 749 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "canrecv_producer.h"
  2. #include <thread>
  3. #include <iostream>
  4. #include <string>
  5. //#include <stdlib.h>
  6. #include <unistd.h>
  7. #include <net/if.h>
  8. //#include <sys/ioctl.h>
  9. #include <sys/socket.h>
  10. #include <linux/can.h>
  11. #include <linux/can/raw.h>
  12. CANRecv_Producer::CANRecv_Producer(CAN_Producer_Consumer *pBuf)
  13. {
  14. pBuffer = pBuf;
  15. }
  16. CANRecv_Producer::~CANRecv_Producer()
  17. {
  18. requestInterruption();
  19. while(this->isFinished() == false);
  20. close(s);
  21. }
  22. void CANRecv_Producer::run()
  23. {
  24. iv::can::canraw xraw;
  25. if ((s = socket(PF_CAN, SOCK_RAW, CAN_RAW)) < 0)
  26. {
  27. perror("socket");
  28. }
  29. while (!QThread::isInterruptionRequested())
  30. {
  31. std::cout<<"send consumer time :"<<std::endl;
  32. sleep(1);
  33. }
  34. }