wirelessgateway/udpqt/SH_UdpQt.hpp

106 lines
2.1 KiB
C++
Raw Normal View History

2021-09-18 13:45:24 +08:00
#ifndef UDPQT_H
#define UDPQT_H
#include <vector>
#include <string>
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
#include <boost/lexical_cast.hpp>
#include <json/json.h>
#include <boost/array.hpp>
#include "../utility/SH_MySingleton.hpp"
#include "../common/SH_global.h"
#define MULTICAST_PORT_SEND 7302 //根据接收组播udp发送端口
#define SYSUDPIP "127.0.0.1"
#define SYSUDPPORT "9999"
#define RECIEVE_CONNECT_STATUS 1 //QT连接确认
#define RECIEVE_CONFIG_GET 3 //获取配置信息
#define RECIEVE_WIFI_CONTROL 4 //wifi操作
#define RECIEVE_WAVEDATA_CONTROL 7 //原始数据操作
#define CMD_TYPE_CONNECTQT 1
#define RECIEVE_CONFIG_GET 3
#define RECIEVE_WIFI_CONTROL 4
#define RECIEVE_WAVEDATA_CONTROL 7
class UdpSys : public MySingleton<UdpSys> {
public:
UdpSys();
~UdpSys();
/**
* @brief
* @param pData
* @return void
*/
void SendUdpToSingle(std::string pData);
/**
* @brief
* @return void
*/
void StartConnectSysUdp();
/**
* @brief
* @return void
*/
void ClearConnect();
/**
* @brief
* @return void
*/
// void ConfirmStatus();
private:
/**
* @brief
* @return void
*/
void handle_send_to(const boost::system::error_code& ec,
size_t trans);
/**
* @brief
* @return void
*/
void recvUdpData();
/**
* @brief
* @return void
*/
void AnalysisDataSys(std::string cmd);
/**
* @brief
* @return void
*/
void HandleRead(const boost::system::error_code& pEc,
std::size_t pBytesTransferred);
private:
boost::mutex udpMutex;
std::string remoteIp;
int remoteport;
boost::asio::ip::udp::endpoint remoteEndPoint;
boost::asio::ip::udp::endpoint senderEndPoint;
boost::asio::io_service mIoSev;
boost::asio::ip::udp::socket udpSock;
boost::array<char,8192> m_buffer;
std::string mData;
bool status;
int times;
};
#endif