UniSet 2.44.3
Класс uniset::ModbusRTUSlave

#include <ModbusRTUSlave.h>

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

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

 ModbusRTUSlave (const std::string &dev, bool use485=false, bool tr_ctl=false)
 ModbusRTUSlave (ComPort *com)
void setSpeed (ComPort::Speed s)
void setSpeed (const std::string &s)
ComPort::Speed getSpeed ()
void setParity (ComPort::Parity p)
void setParity (const std::string &p)
void setStopBits (ComPort::StopBits b)
void setCharSize (ComPort::CharacterSize s)
virtual void cleanupChannel () override
virtual void terminate () override
virtual bool isActive () const override
Открытые члены унаследованные от 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
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 realReceive (const std::unordered_set< ModbusRTU::ModbusAddr > &vmbaddr, timeout_t msecTimeout) override
virtual size_t getNextData (unsigned char *buf, int len) override
virtual void setChannelTimeout (timeout_t msec) override
virtual ModbusRTU::mbErrCode sendData (unsigned char *buf, int len) override
Защищенные члены унаследованные от uniset::ModbusServer
virtual void iowait (timeout_t usec)
virtual ModbusRTU::mbErrCode readCoilStatus (const ModbusRTU::ReadCoilMessage &query, ModbusRTU::ReadCoilRetMessage &reply)=0
virtual ModbusRTU::mbErrCode readInputStatus (const ModbusRTU::ReadInputStatusMessage &query, ModbusRTU::ReadInputStatusRetMessage &reply)=0
virtual ModbusRTU::mbErrCode readOutputRegisters (const ModbusRTU::ReadOutputMessage &query, ModbusRTU::ReadOutputRetMessage &reply)=0
virtual ModbusRTU::mbErrCode readInputRegisters (const ModbusRTU::ReadInputMessage &query, ModbusRTU::ReadInputRetMessage &reply)=0
virtual ModbusRTU::mbErrCode forceSingleCoil (const ModbusRTU::ForceSingleCoilMessage &query, ModbusRTU::ForceSingleCoilRetMessage &reply)=0
virtual ModbusRTU::mbErrCode writeOutputSingleRegister (const ModbusRTU::WriteSingleOutputMessage &query, ModbusRTU::WriteSingleOutputRetMessage &reply)=0
virtual ModbusRTU::mbErrCode forceMultipleCoils (const ModbusRTU::ForceCoilsMessage &query, ModbusRTU::ForceCoilsRetMessage &reply)=0
virtual ModbusRTU::mbErrCode writeOutputRegisters (const ModbusRTU::WriteOutputMessage &query, ModbusRTU::WriteOutputRetMessage &reply)=0
virtual ModbusRTU::mbErrCode diagnostics (const ModbusRTU::DiagnosticMessage &query, ModbusRTU::DiagnosticRetMessage &reply)=0
virtual ModbusRTU::mbErrCode read4314 (const ModbusRTU::MEIMessageRDI &query, ModbusRTU::MEIMessageRetRDI &reply)=0
virtual ModbusRTU::mbErrCode journalCommand (const ModbusRTU::JournalCommandMessage &query, ModbusRTU::JournalCommandRetMessage &reply)=0
virtual ModbusRTU::mbErrCode setDateTime (const ModbusRTU::SetDateTimeMessage &query, ModbusRTU::SetDateTimeRetMessage &reply)=0
virtual ModbusRTU::mbErrCode remoteService (const ModbusRTU::RemoteServiceMessage &query, ModbusRTU::RemoteServiceRetMessage &reply)=0
virtual ModbusRTU::mbErrCode fileTransfer (const ModbusRTU::FileTransferMessage &query, ModbusRTU::FileTransferRetMessage &reply)=0
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 ()

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

std::string dev
ComPortport
bool myport
Защищенные данные унаследованные от 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

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

Открытые типы унаследованные от 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)

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

Modbus RTU slave mode Класс не самостоятельный и содержит "чисто" виртуальные функции для реализации ответов на запросы.

Методы

◆ cleanupChannel()

virtual void uniset::ModbusRTUSlave::cleanupChannel ( )
inlineoverridevirtual

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

◆ getNextData()

size_t uniset::ModbusRTUSlave::getNextData ( unsigned char * buf,
int len )
overrideprotectedvirtual

get next data block from channel or recv buffer

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

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

◆ isActive()

bool uniset::ModbusRTUSlave::isActive ( ) const
overridevirtual

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

◆ realReceive()

mbErrCode uniset::ModbusRTUSlave::realReceive ( const std::unordered_set< ModbusRTU::ModbusAddr > & vaddr,
timeout_t msecTimeout )
overrideprotectedvirtual

реализация получения очередного сообщения

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

◆ sendData()

mbErrCode uniset::ModbusRTUSlave::sendData ( unsigned char * buf,
int len )
overrideprotectedvirtual

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

◆ setChannelTimeout()

void uniset::ModbusRTUSlave::setChannelTimeout ( timeout_t msec)
overrideprotectedvirtual

set timeout for receive data

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

◆ terminate()

void uniset::ModbusRTUSlave::terminate ( )
overridevirtual

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

Данные класса

◆ dev

std::string uniset::ModbusRTUSlave::dev
protected

устройство

◆ port

ComPort* uniset::ModbusRTUSlave::port
protected

устройство для работы с COM-портом