1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /*************************
- sick 511 雷达 upd协议连接控制板
- *************************/
- #pragma once
- #include "Laser.h"
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <mutex>
- class CUdpLaser : public CLaser
- {
- public:
- CUdpLaser(int id, Automatic::stLaserCalibParam laser_param);
- virtual ~CUdpLaser();
- virtual bool Connect();
- virtual void Disconnect();
- virtual bool Start();
- virtual bool Stop();
- protected:
- virtual bool RecvData(CBinaryData& data);
- virtual DATA_type Data2PointXYZ(CBinaryData* pData, std::vector<CPoint3D>& points);
-
- private:
- bool Send(char* sendbuf, int len); // 发送指令
- int Recv(char* recvbuf, int len); // 接收数据
- static int FindHead(char* buf, int b_len);
- static int FindTail(char* buf, int b_len);
- private:
- bool GetData(CBinaryData* pData, std::vector<float>& distance,
- float& freq, float& start_angle);
- long Str0x2Long(const char* data, int len);
- protected:
- #pragma region udp相关变量
- int m_socket;
- // WSADATA m_wsd;
- struct sockaddr_in m_send_addr;
- std::mutex m_mutex;
- #pragma endregion
- };
|