UniSet  2.0.0
Классы | Открытые типы | Открытые члены | Защищенные типы | Защищенные члены | Защищенные данные
Класс ModbusTCPServer

#include <ModbusTCPServer.h>

Граф наследования:ModbusTCPServer:
ModbusServer ModbusTCPServerSlot

Полный список членов класса

Классы

struct  SessionInfo

Открытые типы

typedef std::list< SessionInfoSessions

Открытые члены

 ModbusTCPServer (ost::InetAddress &ia, int port=502)
virtual ModbusRTU::mbErrCode receive (ModbusRTU::ModbusAddr mbaddr, timeout_t msecTimeout) override
virtual bool waitQuery (ModbusRTU::ModbusAddr mbaddr, timeout_t msec=UniSetTimer::WaitUpTime)
void setMaxSessions (unsigned int num)
unsigned int getMaxSessions ()
void setSessionTimeout (timeout_t msec)
timeout_t getSessionTimeout ()
unsigned getCountSessions ()
void setIgnoreAddrMode (bool st)
bool getIgnoreAddrMode ()
void cleanInputStream ()
virtual void cleanupChannel () override
virtual void terminate () override
void getSessions (Sessions &lst)

Защищенные типы

typedef std::list
< ModbusTCPSession * > 
SessionList

Защищенные члены

virtual ModbusRTU::mbErrCode pre_send_request (ModbusRTU::ModbusMessage &request) override
virtual ModbusRTU::mbErrCode post_send_request (ModbusRTU::ModbusMessage &request) override
virtual int getNextData (unsigned char *buf, int len) override
virtual void setChannelTimeout (timeout_t msec) override
virtual ModbusRTU::mbErrCode sendData (unsigned char *buf, int len) override
virtual ModbusRTU::mbErrCode tcp_processing (ost::TCPStream &tcp, ModbusTCP::MBAPHeader &mhead)
void sessionFinished (ModbusTCPSession *s)

Защищенные данные

ost::tpport_t port
ost::TCPStream tcp
ost::InetAddress iaddr
std::queue< unsigned char > qrecv
ModbusTCP::MBAPHeader curQueryHeader
UniSetTypes::uniset_mutex sMutex
SessionList slist
bool ignoreAddr
unsigned int maxSessions
unsigned int sessCount
timeout_t sessTimeout

Подробное описание

ModbusTCP server


Методы

текущее количество подключений

int ModbusTCPServer::getNextData ( unsigned char *  buf,
int  len 
) [override, protected, virtual]

get next data block from channel ot recv buffer

Аргументы:
begin- get from position
buf- buffer for data
len- size of buf
Возвращает:
real data lenght ( must be <= len )

Замещает ModbusServer.

mbErrCode ModbusTCPServer::receive ( ModbusRTU::ModbusAddr  mbaddr,
timeout_t  msecTimeout 
) [override, virtual]

Однопоточная обработка (каждый запрос последовательно), с разрывом соединения в конце

Замещает ModbusServer.

Перекрестные ссылки ModbusServer::aftersend_msec, ModbusRTU::ModbusHeader::func, msleep(), ModbusServer::recv(), PassiveTimer::reset(), ModbusServer::send(), PassiveTimer::setTiming(), ModbusRTU::ErrorRetMessage::transport_msg() и UniSetTimer::WaitUpTime.

void ModbusTCPServer::setChannelTimeout ( timeout_t  msec) [override, protected, virtual]

set timeout for receive data

Замещает ModbusServer.

void ModbusTCPServer::setSessionTimeout ( timeout_t  msec)

установить timeout для поддержания соединения с "клиентом" (Default: 10 сек)

bool ModbusTCPServer::waitQuery ( ModbusRTU::ModbusAddr  mbaddr,
timeout_t  msec = UniSetTimer::WaitUpTime 
) [virtual]

Многопоточная обработка (создаётся по потоку для каждого "клиента") \ return TRUE - если запр*ос пришёл

Возвращает:
FALSE - если timeout

Перекрестные ссылки ModbusServer::aftersend_msec, ModbusServerSlot::connectDiagnostics(), ModbusServerSlot::connectFileTransfer(), ModbusServerSlot::connectForceCoils(), ModbusServerSlot::connectForceSingleCoil(), ModbusServerSlot::connectJournalCommand(), ModbusServerSlot::connectMEIRDI(), ModbusServerSlot::connectReadCoil(), ModbusServerSlot::connectReadInput(), ModbusServerSlot::connectReadInputStatus(), ModbusServerSlot::connectReadOutput(), ModbusServerSlot::connectRemoteService(), ModbusServerSlot::connectSetDateTime(), ModbusServerSlot::connectWriteOutput(), ModbusServerSlot::connectWriteSingleOutput(), DebugStream::debugging(), ModbusServer::diagnostics(), ModbusServer::fileTransfer(), ModbusServer::forceMultipleCoils(), ModbusServer::forceSingleCoil(), ModbusServer::journalCommand(), ModbusServer::read4314(), ModbusServer::readCoilStatus(), ModbusServer::readInputRegisters(), ModbusServer::readInputStatus(), ModbusServer::readOutputRegisters(), ModbusServer::recvTimeOut_ms, ModbusServer::remoteService(), ModbusServer::replyTimeout_ms, ModbusServer::setAfterSendPause(), ModbusServer::setDateTime(), ModbusServer::setRecvTimeout(), ModbusServer::setReplyTimeout(), ModbusServer::setSleepPause(), ModbusServer::sleepPause_usec, UniSetTimer::WaitUpTime, ModbusServer::writeOutputRegisters() и ModbusServer::writeOutputSingleRegister().


Объявления и описания членов классов находятся в файлах: