#ifndef UDPCOMM__H #define UDPCOMM__H #define UNIX #include "ccuUdpMsg.h" #include #include #include #include #include "MOOS/libMOOS/Utils/MOOSUtilityFunctions.h" #include "MOOS/libMOOS/Comms/XPCUdpSocket.h" #include #include #include #include #include "../logc/loguru.hpp" using namespace std; #define QUENUE_SIZE 100 class udpComm { public: udpComm(); ~udpComm(); XPCUdpSocket *udpScoket; string ccuHost; long int ccuPort; bool pushMsgToQueue(unsigned char *m); bool clearMsgQueue(); bool getMsgFromBuff(char *m, msg_CcuStateFbMsg &s); bool getMsgFromBuff(char *m, msg_CcuSetParmFbMsg &s); bool getMsgFromBuff(char *m, msg_disHighVolBusFbMsg &s); bool getMsgFromBuff(char *m, msg_disHighAVolBusFbMsg &s); bool getMsgFromBuff(char *m, msg_disLowMainBusFbMsg &s); bool getMsgFromBuff(char *m, msg_disLowBusFbMsg &s); bool popMsgFormQueue(double &time,msg_CcuStateFbMsg &m); bool popMsgFormQueue(double &time,msg_CcuSetParmFbMsg &m); bool popMsgFormQueue(double &time,msg_disHighVolBusFbMsg &m); bool popMsgFormQueue(double &time,msg_disHighAVolBusFbMsg &m); bool popMsgFormQueue(double &time,msg_disLowMainBusFbMsg &m); bool popMsgFormQueue(double &time,msg_disLowBusFbMsg &m); bool sendCcuColCmd(const ccuColCmd cmd); bool sendCcuSetParmCmd(const ccuSetParmCmd cmd); bool sendDisSysCmd(const disHighVolBusCmd cmd); bool sendDisSysCmd(const disHighAVolBusCmd cmd); bool sendDisSysCmd(const disHighBVolBusCmd cmd); bool sendDisSysCmd(const disLowBusCmd cmd); bool sendMsg(const unsigned char* msg,unsigned int size){ // cout << "sendMsgTo" << ccuHost << ":" << ccuPort << endl; udpScoket->iSendMessageTo((void*) msg, size, ccuPort, ccuHost); return true; } bool getMsgId(char *m,unsigned short &id); Checksum calculateChecksum(const unsigned char* data, int size); Checksum calculateChecksum(const unsigned char* data, int dataSize, int checkSize); bool getDate(unsigned short &year, unsigned char &month, unsigned char &day, unsigned char &hour, unsigned char &minute, unsigned char &second, unsigned char &milliseconds); std::vector sError; // std::queue m_qReceiveCcuStateBuffer; std::queue> m_qReceiveCcuStateBuffer; std::queue> m_qReceiveCcuSetParmBuffer; std::queue> m_qReceiveDisHighVolBusBuffer; std::queue> m_qReceiveDisHighAVolBusBuffer; std::queue> m_qReceiveDisHighBVolBusBuffer; std::queue> m_qReceiveDisLowBusBuffer; private: msg_CcuColCmdMsg m_ccuColCmd; msg_CcuSetParmMsg m_ccuSetParmCmd; }; #endif