UniSet  2.6.0
Открытые члены | Защищенные члены | Полный список членов класса
Класс uniset::ModbusTCPServerSlot
Граф наследования:uniset::ModbusTCPServerSlot:
Inheritance graph
[см. легенду]
Граф связей класса uniset::ModbusTCPServerSlot:
Collaboration graph
[см. легенду]

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

 ModbusTCPServerSlot (const std::string &ia, int port=502)
 
virtual void sigterm (int signo)
 
- Открытые члены унаследованные от 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)
 
void run (const std::unordered_set< ModbusRTU::ModbusAddr > &vmbaddr, bool thread=false)
 
virtual bool isActive () const override
 
void setMaxSessions (size_t num)
 
size_t getMaxSessions ()
 
void setSessionTimeout (timeout_t msec)
 
timeout_t getSessionTimeout ()
 
size_t getCountSessions ()
 
void setIgnoreAddrMode (bool st)
 
bool getIgnoreAddrMode ()
 
virtual void terminate ()
 
void getSessions (Sessions &lst)
 
std::string getInetAddress ()
 
int getInetPort ()
 
TimerSignal signal_timer ()
 
void setTimer (timeout_t msec)
 
timeout_t getTimer ()
 
- Открытые члены унаследованные от 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 setBroadcastMode (bool set)
 
bool getBroadcastMode () const
 
void setCleanBeforeSend (bool set)
 
bool getCleanBeforeSend ()
 
virtual void cleanupChannel ()
 
ExchangeErrorMap getErrorMap ()
 
size_t getErrCount (ModbusRTU::mbErrCode e)
 
size_t resetErrCount (ModbusRTU::mbErrCode e, size_t set=0)
 
size_t getAskCount () const
 
void resetAskCounter ()
 

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

virtual ModbusRTU::mbErrCode readCoilStatus (ModbusRTU::ReadCoilMessage &query, ModbusRTU::ReadCoilRetMessage &reply)
 
virtual ModbusRTU::mbErrCode readInputStatus (ModbusRTU::ReadInputStatusMessage &query, ModbusRTU::ReadInputStatusRetMessage &reply)
 
virtual ModbusRTU::mbErrCode readOutputRegisters (ModbusRTU::ReadOutputMessage &query, ModbusRTU::ReadOutputRetMessage &reply)
 
virtual ModbusRTU::mbErrCode readInputRegisters (ModbusRTU::ReadInputMessage &query, ModbusRTU::ReadInputRetMessage &reply)
 
virtual ModbusRTU::mbErrCode forceSingleCoil (ModbusRTU::ForceSingleCoilMessage &query, ModbusRTU::ForceSingleCoilRetMessage &reply)
 
virtual ModbusRTU::mbErrCode writeOutputSingleRegister (ModbusRTU::WriteSingleOutputMessage &query, ModbusRTU::WriteSingleOutputRetMessage &reply)
 
virtual ModbusRTU::mbErrCode forceMultipleCoils (ModbusRTU::ForceCoilsMessage &query, ModbusRTU::ForceCoilsRetMessage &reply)
 
virtual ModbusRTU::mbErrCode writeOutputRegisters (ModbusRTU::WriteOutputMessage &query, ModbusRTU::WriteOutputRetMessage &reply)
 
virtual ModbusRTU::mbErrCode diagnostics (ModbusRTU::DiagnosticMessage &query, ModbusRTU::DiagnosticRetMessage &reply)
 
virtual ModbusRTU::mbErrCode read4314 (ModbusRTU::MEIMessageRDI &query, ModbusRTU::MEIMessageRetRDI &reply)
 
virtual ModbusRTU::mbErrCode journalCommand (ModbusRTU::JournalCommandMessage &query, ModbusRTU::JournalCommandRetMessage &reply)
 
virtual ModbusRTU::mbErrCode setDateTime (ModbusRTU::SetDateTimeMessage &query, ModbusRTU::SetDateTimeRetMessage &reply)
 
virtual ModbusRTU::mbErrCode remoteService (ModbusRTU::RemoteServiceMessage &query, ModbusRTU::RemoteServiceRetMessage &reply)
 
virtual ModbusRTU::mbErrCode fileTransfer (ModbusRTU::FileTransferMessage &query, ModbusRTU::FileTransferRetMessage &reply)
 
- Защищенные члены унаследованные от 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 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
void evrun (bool thread=true)
 
void evstop ()
 
- Защищенные члены унаследованные от 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,
ModbusRTU::ReadCoilMessage
&, ModbusRTU::ReadCoilRetMessage & > 
ReadCoilSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::ReadInputStatusMessage
&, ModbusRTU::ReadInputStatusRetMessage & > 
ReadInputStatusSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::ReadOutputMessage
&, ModbusRTU::ReadOutputRetMessage & > 
ReadOutputSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::ReadInputMessage
&, ModbusRTU::ReadInputRetMessage & > 
ReadInputSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::ForceSingleCoilMessage
&, ModbusRTU::ForceSingleCoilRetMessage & > 
ForceSingleCoilSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::WriteSingleOutputMessage
&, ModbusRTU::WriteSingleOutputRetMessage & > 
WriteSingleOutputSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::ForceCoilsMessage
&, ModbusRTU::ForceCoilsRetMessage & > 
ForceCoilsSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::WriteOutputMessage
&, ModbusRTU::WriteOutputRetMessage & > 
WriteOutputSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::DiagnosticMessage
&, ModbusRTU::DiagnosticRetMessage & > 
DiagnosticsSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::MEIMessageRDI
&, ModbusRTU::MEIMessageRetRDI & > 
MEIRDISlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::JournalCommandMessage
&, ModbusRTU::JournalCommandRetMessage & > 
JournalCommandSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::SetDateTimeMessage
&, ModbusRTU::SetDateTimeRetMessage & > 
SetDateTimeSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
ModbusRTU::RemoteServiceMessage
&, ModbusRTU::RemoteServiceRetMessage & > 
RemoteServiceSlot
 
typedef sigc::slot
< ModbusRTU::mbErrCode,
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 (ModbusRTU::SetDateTimeMessage &query, ModbusRTU::SetDateTimeRetMessage &reply, std::shared_ptr< DebugStream > dlog=nullptr)
 
static ModbusRTU::mbErrCode replyFileTransfer (const std::string &fname, 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::ADUHeader curQueryHeader
 
std::mutex sMutex
 
SessionList slist
 
bool ignoreAddr = { false }
 
size_t maxSessions = { 100 }
 
size_t sessCount = { 0 }
 
timeout_t sessTimeout = { 10000 }
 
ev::io io
 
ev::timer ioTimer
 
std::shared_ptr< UTCPSocketsock
 
const std::unordered_set
< ModbusRTU::ModbusAddr > * 
vmbaddr = { nullptr }
 
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 onBroadcast = { false }
 
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)

Методы

mbErrCode uniset::ModbusTCPServerSlot::diagnostics ( ModbusRTU::DiagnosticMessage query,
ModbusRTU::DiagnosticRetMessage reply 
)
protectedvirtual

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

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

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

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::fileTransfer ( ModbusRTU::FileTransferMessage query,
ModbusRTU::FileTransferRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::forceMultipleCoils ( ModbusRTU::ForceCoilsMessage query,
ModbusRTU::ForceCoilsRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::forceSingleCoil ( ModbusRTU::ForceSingleCoilMessage query,
ModbusRTU::ForceSingleCoilRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::journalCommand ( ModbusRTU::JournalCommandMessage query,
ModbusRTU::JournalCommandRetMessage reply 
)
protectedvirtual

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

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

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

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::read4314 ( ModbusRTU::MEIMessageRDI query,
ModbusRTU::MEIMessageRetRDI reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::readCoilStatus ( ModbusRTU::ReadCoilMessage query,
ModbusRTU::ReadCoilRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::readInputRegisters ( ModbusRTU::ReadInputMessage query,
ModbusRTU::ReadInputRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::readInputStatus ( ModbusRTU::ReadInputStatusMessage query,
ModbusRTU::ReadInputStatusRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::readOutputRegisters ( ModbusRTU::ReadOutputMessage query,
ModbusRTU::ReadOutputRetMessage reply 
)
protectedvirtual

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

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

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

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::remoteService ( ModbusRTU::RemoteServiceMessage query,
ModbusRTU::RemoteServiceRetMessage reply 
)
protectedvirtual

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

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

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

ModbusRTU::mbErrCode uniset::ModbusTCPServerSlot::setDateTime ( ModbusRTU::SetDateTimeMessage query,
ModbusRTU::SetDateTimeRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::writeOutputRegisters ( ModbusRTU::WriteOutputMessage query,
ModbusRTU::WriteOutputRetMessage reply 
)
protectedvirtual

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

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

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

mbErrCode uniset::ModbusTCPServerSlot::writeOutputSingleRegister ( ModbusRTU::WriteSingleOutputMessage query,
ModbusRTU::WriteSingleOutputRetMessage reply 
)
protectedvirtual

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

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

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