UniSet 2.44.3
Класс uniset::ModbusTCPServerSlot

#include <ModbusTCPServerSlot.h>

Граф наследования:uniset::ModbusTCPServerSlot:
Граф связей класса uniset::ModbusTCPServerSlot:

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

 ModbusTCPServerSlot (const std::string &ia, int port=502)
virtual void terminate () override
Открытые члены унаследованные от uniset::ModbusServerSlot
void connectReadCoil (ReadCoilSlot sl)
void connectReadInputStatus (ReadInputStatusSlot sl)
void connectReadOutput (ReadOutputSlot sl)
void connectReadInput (ReadInputSlot sl)
void connectForceSingleCoil (ForceSingleCoilSlot sl)
void connectWriteSingleOutput (WriteSingleOutputSlot sl)
void connectDiagnostics (DiagnosticsSlot sl)
void connectMEIRDI (MEIRDISlot sl)
void connectForceCoils (ForceCoilsSlot sl)
void connectWriteOutput (WriteOutputSlot sl)
void connectJournalCommand (JournalCommandSlot sl)
void connectSetDateTime (SetDateTimeSlot sl)
void connectRemoteService (RemoteServiceSlot sl)
void connectFileTransfer (FileTransferSlot sl)
Открытые члены унаследованные от uniset::ModbusTCPServer
 ModbusTCPServer (const std::string &addr, int port=502)
bool run (const std::unordered_set< ModbusRTU::ModbusAddr > &vmbaddr)
bool async_run (const std::unordered_set< ModbusRTU::ModbusAddr > &vmbaddr)
virtual bool isActive () const override
void setMaxSessions (size_t num)
size_t getMaxSessions () const noexcept
void setSessionTimeout (timeout_t msec)
timeout_t getSessionTimeout () const noexcept
size_t getCountSessions () const noexcept
void getSessions (Sessions &lst)
std::string getInetAddress () const noexcept
int getInetPort () const noexcept
size_t getConnectionCount () const noexcept
TimerSignal signal_timer ()
void setTimer (timeout_t msec)
timeout_t getTimer () const noexcept
void setSocketTimeout (timeout_t msec)
timeout_t getSocketTimeout () const noexcept
Открытые члены унаследованные от uniset::EventLoopServer
bool evIsActive () const noexcept
Открытые члены унаследованные от uniset::ModbusServer
void initLog (uniset::Configuration *conf, const std::string &name, const std::string &logfile="")
void setLog (std::shared_ptr< DebugStream > dlog)
std::shared_ptr< DebugStreamlog ()
ModbusRTU::mbErrCode receive (const std::unordered_set< ModbusRTU::ModbusAddr > &vaddr, timeout_t msecTimeout)
virtual ModbusRTU::mbErrCode receive_one (const ModbusRTU::ModbusAddr addr, timeout_t msec)
PreReceiveSignal signal_pre_receive ()
PostReceiveSignal signal_post_receive ()
timeout_t setAfterSendPause (timeout_t msec)
timeout_t setReplyTimeout (timeout_t msec)
void setRecvTimeout (timeout_t msec)
void setSleepPause (timeout_t msec)
void setCRCNoCheckit (bool set)
bool isCRCNoCheckit () const
void setCleanBeforeSend (bool set)
bool getCleanBeforeSend () const
virtual void cleanupChannel ()
ExchangeErrorMap getErrorMap ()
size_t getErrCount (ModbusRTU::mbErrCode e) const
size_t resetErrCount (ModbusRTU::mbErrCode e, size_t set=0)
size_t getAskCount () const noexcept
void resetAskCounter ()

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

virtual ModbusRTU::mbErrCode readCoilStatus (const ModbusRTU::ReadCoilMessage &query, ModbusRTU::ReadCoilRetMessage &reply) override
virtual ModbusRTU::mbErrCode readInputStatus (const ModbusRTU::ReadInputStatusMessage &query, ModbusRTU::ReadInputStatusRetMessage &reply) override
virtual ModbusRTU::mbErrCode readOutputRegisters (const ModbusRTU::ReadOutputMessage &query, ModbusRTU::ReadOutputRetMessage &reply) override
virtual ModbusRTU::mbErrCode readInputRegisters (const ModbusRTU::ReadInputMessage &query, ModbusRTU::ReadInputRetMessage &reply) override
virtual ModbusRTU::mbErrCode forceSingleCoil (const ModbusRTU::ForceSingleCoilMessage &query, ModbusRTU::ForceSingleCoilRetMessage &reply) override
virtual ModbusRTU::mbErrCode writeOutputSingleRegister (const ModbusRTU::WriteSingleOutputMessage &query, ModbusRTU::WriteSingleOutputRetMessage &reply) override
virtual ModbusRTU::mbErrCode forceMultipleCoils (const ModbusRTU::ForceCoilsMessage &query, ModbusRTU::ForceCoilsRetMessage &reply) override
virtual ModbusRTU::mbErrCode writeOutputRegisters (const ModbusRTU::WriteOutputMessage &query, ModbusRTU::WriteOutputRetMessage &reply) override
virtual ModbusRTU::mbErrCode diagnostics (const ModbusRTU::DiagnosticMessage &query, ModbusRTU::DiagnosticRetMessage &reply) override
virtual ModbusRTU::mbErrCode read4314 (const ModbusRTU::MEIMessageRDI &query, ModbusRTU::MEIMessageRetRDI &reply) override
virtual ModbusRTU::mbErrCode journalCommand (const ModbusRTU::JournalCommandMessage &query, ModbusRTU::JournalCommandRetMessage &reply) override
virtual ModbusRTU::mbErrCode setDateTime (const ModbusRTU::SetDateTimeMessage &query, ModbusRTU::SetDateTimeRetMessage &reply) override
virtual ModbusRTU::mbErrCode remoteService (const ModbusRTU::RemoteServiceMessage &query, ModbusRTU::RemoteServiceRetMessage &reply) override
virtual ModbusRTU::mbErrCode fileTransfer (const ModbusRTU::FileTransferMessage &query, ModbusRTU::FileTransferRetMessage &reply) override
Защищенные члены унаследованные от uniset::ModbusTCPServer
virtual void iowait (timeout_t msec) override
virtual ModbusRTU::mbErrCode realReceive (const std::unordered_set< ModbusRTU::ModbusAddr > &vaddr, timeout_t msecTimeout) override
virtual void evprepare () override
virtual void evfinish () override
virtual void ioAccept (ev::io &watcher, int revents)
void onTimer (ev::timer &t, int revents)
void onSocketTimeout (ev::timer &t, int revents)
void onSocketResetTimeout (ev::async &watcher, int revents) noexcept
void sessionFinished (const ModbusTCPSession *s)
virtual size_t getNextData (unsigned char *buf, int len) override
virtual ModbusRTU::mbErrCode sendData (unsigned char *buf, int len) override
virtual void setChannelTimeout (timeout_t msec) override
Защищенные члены унаследованные от uniset::EventLoopServer
bool async_evrun (size_t waitRunningTimeout_msec=60000)
void evstop ()
bool evrun ()
Защищенные члены унаследованные от uniset::ModbusServer
virtual ModbusRTU::mbErrCode send (ModbusRTU::ModbusMessage &buf)
virtual ModbusRTU::mbErrCode make_adu_header (ModbusRTU::ModbusMessage &request)
virtual ModbusRTU::mbErrCode post_send_request (ModbusRTU::ModbusMessage &request)
virtual ModbusRTU::mbErrCode processing (ModbusRTU::ModbusMessage &buf)
ModbusRTU::mbErrCode recv (const std::unordered_set< ModbusRTU::ModbusAddr > &vaddr, ModbusRTU::ModbusMessage &buf, timeout_t timeout)
ModbusRTU::mbErrCode recv_pdu (ModbusRTU::ModbusMessage &rbuf, timeout_t timeout)
void printProcessingTime ()

Дополнительные унаследованные члены

Открытые типы унаследованные от uniset::ModbusServerSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::ReadCoilMessage &, ModbusRTU::ReadCoilRetMessage & > ReadCoilSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::ReadInputStatusMessage &, ModbusRTU::ReadInputStatusRetMessage & > ReadInputStatusSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::ReadOutputMessage &, ModbusRTU::ReadOutputRetMessage & > ReadOutputSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::ReadInputMessage &, ModbusRTU::ReadInputRetMessage & > ReadInputSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::ForceSingleCoilMessage &, ModbusRTU::ForceSingleCoilRetMessage & > ForceSingleCoilSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::WriteSingleOutputMessage &, ModbusRTU::WriteSingleOutputRetMessage & > WriteSingleOutputSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::ForceCoilsMessage &, ModbusRTU::ForceCoilsRetMessage & > ForceCoilsSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::WriteOutputMessage &, ModbusRTU::WriteOutputRetMessage & > WriteOutputSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::DiagnosticMessage &, ModbusRTU::DiagnosticRetMessage & > DiagnosticsSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::MEIMessageRDI &, ModbusRTU::MEIMessageRetRDI & > MEIRDISlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::JournalCommandMessage &, ModbusRTU::JournalCommandRetMessage & > JournalCommandSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::SetDateTimeMessage &, ModbusRTU::SetDateTimeRetMessage & > SetDateTimeSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::RemoteServiceMessage &, ModbusRTU::RemoteServiceRetMessage & > RemoteServiceSlot
typedef sigc::slot< ModbusRTU::mbErrCode, const ModbusRTU::FileTransferMessage &, ModbusRTU::FileTransferRetMessage & > FileTransferSlot
Открытые типы унаследованные от uniset::ModbusTCPServer
typedef std::list< SessionInfoSessions
typedef sigc::signal< void > TimerSignal
Открытые типы унаследованные от uniset::ModbusServer
typedef sigc::signal< ModbusRTU::mbErrCode, const std::unordered_set< ModbusRTU::ModbusAddr >, timeout_t > PreReceiveSignal
typedef sigc::signal< void, ModbusRTU::mbErrCode > PostReceiveSignal
typedef std::unordered_map< ModbusRTU::mbErrCode, size_t > ExchangeErrorMap
Открытые статические члены унаследованные от uniset::ModbusServer
static std::unordered_set< ModbusRTU::ModbusAddr > addr2vaddr (ModbusRTU::ModbusAddr &mbaddr)
static bool checkAddr (const std::unordered_set< ModbusRTU::ModbusAddr > &vaddr, const ModbusRTU::ModbusAddr addr)
static std::string vaddr2str (const std::unordered_set< ModbusRTU::ModbusAddr > &vaddr)
static ModbusRTU::mbErrCode replySetDateTime (const ModbusRTU::SetDateTimeMessage &query, ModbusRTU::SetDateTimeRetMessage &reply, std::shared_ptr< DebugStream > dlog=nullptr)
static ModbusRTU::mbErrCode replyFileTransfer (const std::string &fname, const ModbusRTU::FileTransferMessage &query, ModbusRTU::FileTransferRetMessage &reply, std::shared_ptr< DebugStream > dlog=nullptr)
Защищенные типы унаследованные от uniset::ModbusTCPServer
typedef std::list< std::shared_ptr< ModbusTCPSession > > SessionList
Защищенные данные унаследованные от uniset::ModbusServerSlot
ReadCoilSlot slReadCoil
ReadInputStatusSlot slReadInputStatus
ReadOutputSlot slReadOutputs
ReadInputSlot slReadInputs
ForceCoilsSlot slForceCoils
WriteOutputSlot slWriteOutputs
ForceSingleCoilSlot slForceSingleCoil
WriteSingleOutputSlot slWriteSingleOutputs
DiagnosticsSlot slDiagnostics
MEIRDISlot slMEIRDI
JournalCommandSlot slJournalCommand
SetDateTimeSlot slSetDateTime
RemoteServiceSlot slRemoteService
FileTransferSlot slFileTransfer
Защищенные данные унаследованные от uniset::ModbusTCPServer
int port = { 0 }
std::string iaddr
std::string myname
std::queue< unsigned char > qrecv
ModbusRTU::MBAPHeader curQueryHeader
std::mutex sMutex
SessionList slist
bool ignoreAddr = { false }
size_t maxSessions = { 100 }
size_t sessCount = { 0 }
size_t connCount = { 0 }
timeout_t sessTimeout = { 10000 }
ev::io io
ev::timer ioTimer
std::shared_ptr< UTCPSocketsock
ev::timer sockTimeout
timeout_t socketTimeout_msec = { UniSetTimer::WaitUpTime }
double tmSockTimeout = { 0.0 }
ev::async asyncResetSockTimeout
std::unordered_set< ModbusRTU::ModbusAddr > vmbaddr
TimerSignal m_timer_signal
timeout_t tmTime_msec = { UniSetTimer::WaitUpTime }
double tmTime = { 0.0 }
PassiveTimer ptWait
Защищенные данные унаследованные от uniset::EventLoopServer
ev::dynamic_loop loop
Защищенные данные унаследованные от uniset::ModbusServer
std::timed_mutex recvMutex
timeout_t recvTimeOut_ms = { 50 }
timeout_t replyTimeout_ms = { 2000 }
timeout_t aftersend_msec = { 0 }
timeout_t sleepPause_msec = { 10 }
bool crcNoCheckit = { false }
bool cleanBeforeSend = { false }
PassiveTimer tmProcessing
std::shared_ptr< DebugStreamdlog
size_t askCount = { 0 }
ExchangeErrorMap errmap
PreReceiveSignal m_pre_signal
PostReceiveSignal m_post_signal

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

ModbusTCP server (slot version)

Методы

◆ diagnostics()

mbErrCode uniset::ModbusTCPServerSlot::diagnostics ( const ModbusRTU::DiagnosticMessage & query,
ModbusRTU::DiagnosticRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на запись данных (0x08).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ fileTransfer()

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::fileTransfer ( const ModbusRTU::FileTransferMessage & query,
ModbusRTU::FileTransferRetMessage & reply )
overrideprotectedvirtual

Передача файла (0x66)

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ forceMultipleCoils()

mbErrCode uniset::ModbusTCPServerSlot::forceMultipleCoils ( const ModbusRTU::ForceCoilsMessage & query,
ModbusRTU::ForceCoilsRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на запись данных (0x0F).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ forceSingleCoil()

mbErrCode uniset::ModbusTCPServerSlot::forceSingleCoil ( const ModbusRTU::ForceSingleCoilMessage & query,
ModbusRTU::ForceSingleCoilRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на запись данных (0x05).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ journalCommand()

mbErrCode uniset::ModbusTCPServerSlot::journalCommand ( const ModbusRTU::JournalCommandMessage & query,
ModbusRTU::JournalCommandRetMessage & reply )
overrideprotectedvirtual

Обработка запроса по журналу (0x65)

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ read4314()

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::read4314 ( const ModbusRTU::MEIMessageRDI & query,
ModbusRTU::MEIMessageRetRDI & reply )
overrideprotectedvirtual

Обработка запроса 43(0x2B).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ readCoilStatus()

mbErrCode uniset::ModbusTCPServerSlot::readCoilStatus ( const ModbusRTU::ReadCoilMessage & query,
ModbusRTU::ReadCoilRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на чтение данных (0x01).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ readInputRegisters()

mbErrCode uniset::ModbusTCPServerSlot::readInputRegisters ( const ModbusRTU::ReadInputMessage & query,
ModbusRTU::ReadInputRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на чтение данных (0x04).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ readInputStatus()

mbErrCode uniset::ModbusTCPServerSlot::readInputStatus ( const ModbusRTU::ReadInputStatusMessage & query,
ModbusRTU::ReadInputStatusRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на чтение данных (0x02).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ readOutputRegisters()

mbErrCode uniset::ModbusTCPServerSlot::readOutputRegisters ( const ModbusRTU::ReadOutputMessage & query,
ModbusRTU::ReadOutputRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на чтение данных (0x03).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ remoteService()

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::remoteService ( const ModbusRTU::RemoteServiceMessage & query,
ModbusRTU::RemoteServiceRetMessage & reply )
overrideprotectedvirtual

Вызов удалённого сервиса (0x53)

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ setDateTime()

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::setDateTime ( const ModbusRTU::SetDateTimeMessage & query,
ModbusRTU::SetDateTimeRetMessage & reply )
overrideprotectedvirtual

Обработка запроса по установке даты и времени (0x50)

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ terminate()

void uniset::ModbusTCPServerSlot::terminate ( )
overridevirtual

Переопределяет метод предка uniset::ModbusServerSlot.

◆ writeOutputRegisters()

mbErrCode uniset::ModbusTCPServerSlot::writeOutputRegisters ( const ModbusRTU::WriteOutputMessage & query,
ModbusRTU::WriteOutputRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на запись данных (0x10).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.

◆ writeOutputSingleRegister()

mbErrCode uniset::ModbusTCPServerSlot::writeOutputSingleRegister ( const ModbusRTU::WriteSingleOutputMessage & query,
ModbusRTU::WriteSingleOutputRetMessage & reply )
overrideprotectedvirtual

Обработка запроса на запись данных (0x06).

Аргументы
query- запрос
reply- ответ. Заполняется в обработчике.
Возвращает
Результат обработки

Замещает uniset::ModbusServer.