#ifndef MODBUSTCP_H #define MODBUSTCP_H #include #include #include #include #include #include #include #include #include #include #include #include"base.h" struct PLC_COMMAND{ unsigned short cmdAddr; bool cmdWriteFlag; int cmdDelay; }; #define MODBUSTCP ModbusTCP::instance() class ModbusTCP { static ModbusTCP* uniqueInstance; public: static ModbusTCP* instance(); QString ipAddr_electric_resistance; unsigned int sockfd; unsigned int sockfd_fl; unsigned int sockfd_record; unsigned int sockfd_electric_resistance; char RFID[50]; unsigned short height; unsigned short shangReadAddr; unsigned short shangWriteAddr; unsigned short shangReadRFIDAddr; unsigned short xiaWriteHeightAddr; unsigned short shangWriteHeartbeatAddr; unsigned short xiaReadAddr; unsigned short xiaWriteAddr; unsigned short xiaReadStsAddr; unsigned short ReadTransferPLCStsAddr; unsigned short InitAddr; unsigned short RunAddr; unsigned short StopAddr; unsigned short ClearAlarmAddr; bool connFlag{true}; int PLCSts[2]; int TransferPLCSts; PLC_COMMAND TransferPLCCmd; PLC_COMMAND SeparatePLCCmd; CRITICAL_SECTION mCsRead; CRITICAL_SECTION mCsRead_fl; float array_pos[1000][2]; private: QString ipAddr; QString ipAddr_fl; QString ipAddr_record; unsigned short port; unsigned short shangReadVacuumAddr; unsigned short shangWriteVacuumAddr; unsigned short xiaWriteVacuumAddr; unsigned short _seq_modbus; unsigned short _seq_modbus_fl; public: ModbusTCP(); ~ModbusTCP(void); public: bool ConnPLC(); bool ConnPLC_fl(); bool ConnPLC_force(); bool ConnPLC_electric_resistance(); bool CloseConn(); bool CloseConn_fl(); bool CloseConn_record(); bool CloseConn_electric_resistance(); int SendCmdRead(unsigned int sockfd,char *data, unsigned short data_len); int SendCmdWrite(unsigned int sockfd,char *data, unsigned short data_len); int SendCmdRead_fl(unsigned int sockfd,char *data, unsigned short data_len); int SendCmdWrite_fl(unsigned int sockfd,char *data, unsigned short data_len); int DataDecode(char *data, int len); int ModbusWrite(unsigned char cmd,unsigned short addr, unsigned short data); int ModbusWrite_fl(unsigned char cmd,unsigned short addr, unsigned short data); int ModbusWrite_force(char * data, int len); int ModbusWrite_electric_resistance(char * data, int len, char * rev_buf); int ModbusRead(unsigned short addr,int dataLen); int ModbusRead_fl(unsigned short addr,int dataLen); int getModbusPara(QString DevName); int Heartbeat(void); int Heartbeat_fl(void); int TransferPLCRun(unsigned short addr,int delay); int SeparatePLCRun(unsigned short addr,int delay); bool stopFlag; }; #endif // MODBUSTCP_H