UniSet 2.32.1
Открытые члены | Защищенные члены | Защищенные данные | Полный список членов класса
Класс uniset::ModbusRTUSlave

#include <ModbusRTUSlave.h>

Граф наследования:uniset::ModbusRTUSlave:
Inheritance graph
[см. легенду]
Граф связей класса uniset::ModbusRTUSlave:
Collaboration graph
[см. легенду]

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

 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 setBroadcastMode (bool set)
 
bool getBroadcastMode () 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 (ModbusRTU::ReadCoilMessage &query, ModbusRTU::ReadCoilRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode readInputStatus (ModbusRTU::ReadInputStatusMessage &query, ModbusRTU::ReadInputStatusRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode readOutputRegisters (ModbusRTU::ReadOutputMessage &query, ModbusRTU::ReadOutputRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode readInputRegisters (ModbusRTU::ReadInputMessage &query, ModbusRTU::ReadInputRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode forceSingleCoil (ModbusRTU::ForceSingleCoilMessage &query, ModbusRTU::ForceSingleCoilRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode writeOutputSingleRegister (ModbusRTU::WriteSingleOutputMessage &query, ModbusRTU::WriteSingleOutputRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode forceMultipleCoils (ModbusRTU::ForceCoilsMessage &query, ModbusRTU::ForceCoilsRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode writeOutputRegisters (ModbusRTU::WriteOutputMessage &query, ModbusRTU::WriteOutputRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode diagnostics (ModbusRTU::DiagnosticMessage &query, ModbusRTU::DiagnosticRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode read4314 (ModbusRTU::MEIMessageRDI &query, ModbusRTU::MEIMessageRetRDI &reply)=0
 
virtual ModbusRTU::mbErrCode journalCommand (ModbusRTU::JournalCommandMessage &query, ModbusRTU::JournalCommandRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode setDateTime (ModbusRTU::SetDateTimeMessage &query, ModbusRTU::SetDateTimeRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode remoteService (ModbusRTU::RemoteServiceMessage &query, ModbusRTU::RemoteServiceRetMessage &reply)=0
 
virtual ModbusRTU::mbErrCode fileTransfer (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 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
 

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

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

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

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-портом