|
UniSet
2.6.0
|
Классы | |
| struct | BitRegProperty |
| struct | ClientInfo |
| struct | IOProperty |
Открытые типы | |
| enum | AccessMode { amRW, amRO, amWO } |
Открытые члены | |
| MBSlave (uniset::ObjectId objId, uniset::ObjectId shmID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="mbs") | |
| long | getAskCount () |
| std::shared_ptr< LogAgregator > | getLogAggregator () |
| std::shared_ptr< DebugStream > | log () |
| virtual uniset::SimpleInfo * | getInfo (const char *userparam=0) override |
Открытые статические члены | |
| static std::shared_ptr< MBSlave > | init_mbslave (int argc, const char *const *argv, uniset::ObjectId shmID, const std::shared_ptr< SharedMemory > &ic=nullptr, const std::string &prefix="mbs") |
| static void | help_print (int argc, const char *const *argv) |
Статические открытые данные | |
| static const int | NoSafetyState = -1 |
Защищенные типы | |
|
typedef std::map < ModbusRTU::RegID, IOProperty > | RegMap |
|
typedef std::unordered_map < ModbusRTU::ModbusAddr, RegMap > | IOMap |
| typedef std::list< IOBase > | ThresholdList |
|
typedef std::unordered_map < int, std::string > | FileList |
|
typedef std::unordered_map < int, std::string > | MEIValMap |
|
typedef std::unordered_map < int, MEIValMap > | MEIObjIDMap |
|
typedef std::unordered_map < int, MEIObjIDMap > | MEIDevIDMap |
|
typedef std::unordered_map < std::string, ClientInfo > | ClientsMap |
Защищенные члены | |
| ModbusRTU::mbErrCode | readCoilStatus (ModbusRTU::ReadCoilMessage &query, ModbusRTU::ReadCoilRetMessage &reply) |
| ModbusRTU::mbErrCode | readInputStatus (ModbusRTU::ReadInputStatusMessage &query, ModbusRTU::ReadInputStatusRetMessage &reply) |
| ModbusRTU::mbErrCode | readOutputRegisters (ModbusRTU::ReadOutputMessage &query, ModbusRTU::ReadOutputRetMessage &reply) |
| ModbusRTU::mbErrCode | readInputRegisters (ModbusRTU::ReadInputMessage &query, ModbusRTU::ReadInputRetMessage &reply) |
| ModbusRTU::mbErrCode | forceSingleCoil (ModbusRTU::ForceSingleCoilMessage &query, ModbusRTU::ForceSingleCoilRetMessage &reply) |
| ModbusRTU::mbErrCode | forceMultipleCoils (ModbusRTU::ForceCoilsMessage &query, ModbusRTU::ForceCoilsRetMessage &reply) |
| ModbusRTU::mbErrCode | writeOutputRegisters (ModbusRTU::WriteOutputMessage &query, ModbusRTU::WriteOutputRetMessage &reply) |
| ModbusRTU::mbErrCode | writeOutputSingleRegister (ModbusRTU::WriteSingleOutputMessage &query, ModbusRTU::WriteSingleOutputRetMessage &reply) |
| ModbusRTU::mbErrCode | setDateTime (ModbusRTU::SetDateTimeMessage &query, ModbusRTU::SetDateTimeRetMessage &reply) |
| ModbusRTU::mbErrCode | remoteService (ModbusRTU::RemoteServiceMessage &query, ModbusRTU::RemoteServiceRetMessage &reply) |
| ModbusRTU::mbErrCode | fileTransfer (ModbusRTU::FileTransferMessage &query, ModbusRTU::FileTransferRetMessage &reply) |
| ModbusRTU::mbErrCode | diagnostics (ModbusRTU::DiagnosticMessage &query, ModbusRTU::DiagnosticRetMessage &reply) |
| ModbusRTU::mbErrCode | read4314 (ModbusRTU::MEIMessageRDI &query, ModbusRTU::MEIMessageRetRDI &reply) |
| virtual ModbusRTU::mbErrCode | checkRegister (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData &val) |
| virtual void | sysCommand (const uniset::SystemMessage *msg) override |
| virtual void | sensorInfo (const uniset::SensorMessage *sm) override |
| void | askSensors (UniversalIO::UIOCommand cmd) |
| void | waitSMReady () |
| virtual void | execute_rtu () |
| virtual void | execute_tcp () |
| virtual void | updateStatistics () |
| virtual void | updateTCPStatistics () |
| virtual void | updateThresholds () |
| virtual void | postReceiveEvent (ModbusRTU::mbErrCode res) |
| virtual bool | activateObject () override |
| Активизация объекта (переопределяется для необходимых действий после активизации) | |
| virtual bool | deactivateObject () override |
| Деактивиция объекта (переопределяется для необходимых действий перед деактивацией) | |
| virtual void | sigterm (int signo) override |
| virtual void | finalThread () |
| virtual void | initIterators () |
| bool | initItem (UniXML::iterator &it) |
| bool | readItem (const std::shared_ptr< UniXML > &xml, UniXML::iterator &it, xmlNode *sec) |
| void | readConfiguration () |
| bool | check_item (UniXML::iterator &it) |
| ModbusRTU::mbErrCode | real_write (RegMap &rmap, const ModbusRTU::ModbusData regOKOK, ModbusRTU::ModbusData val, const int fn=0) |
| ModbusRTU::mbErrCode | real_write (RegMap &rmap, const ModbusRTU::ModbusData regOKOK, ModbusRTU::ModbusData *dat, size_t &i, size_t count, const int fn=0) |
| ModbusRTU::mbErrCode | real_read (RegMap &rmap, const ModbusRTU::ModbusData regOKOK, ModbusRTU::ModbusData &val, const int fn=0) |
| ModbusRTU::mbErrCode | much_real_read (RegMap &rmap, const ModbusRTU::ModbusData regOKOK, ModbusRTU::ModbusData *dat, size_t count, const int fn=0) |
| ModbusRTU::mbErrCode | much_real_write (RegMap &rmap, const ModbusRTU::ModbusData regOKOK, ModbusRTU::ModbusData *dat, size_t count, const int fn=0) |
| ModbusRTU::mbErrCode | real_read_it (RegMap &rmap, RegMap::iterator &it, ModbusRTU::ModbusData &val) |
| ModbusRTU::mbErrCode | real_bitreg_read_it (std::shared_ptr< BitRegProperty > &bp, ModbusRTU::ModbusData &val) |
| ModbusRTU::mbErrCode | real_read_prop (IOProperty *p, ModbusRTU::ModbusData &val) |
| ModbusRTU::mbErrCode | real_write_it (RegMap &rmap, RegMap::iterator &it, ModbusRTU::ModbusData *dat, size_t &i, size_t count) |
| ModbusRTU::mbErrCode | real_bitreg_write_it (std::shared_ptr< BitRegProperty > &bp, const ModbusRTU::ModbusData val) |
| ModbusRTU::mbErrCode | real_write_prop (IOProperty *p, ModbusRTU::ModbusData *dat, size_t &i, size_t count) |
| int | getOptimizeWriteFunction (const int fn) |
| void | initTCPClients (UniXML::iterator confnode) |
Защищенные данные | |
| IOMap | iomap |
| ThresholdList | thrlist |
| std::shared_ptr< ModbusServerSlot > | mbslot |
| std::unordered_set < ModbusRTU::ModbusAddr > | vaddr |
| std::string | default_mbaddr = { "" } |
| xmlNode * | cnode = { 0 } |
| std::string | s_field = { "" } |
| std::string | s_fvalue = { "" } |
| int | default_mbfunc = {0} |
| std::shared_ptr< SMInterface > | shm |
| timeout_t | initPause = { 3000 } |
| uniset::uniset_rwmutex | mutex_start |
|
std::shared_ptr< ThreadCreator < MBSlave > > | thr |
| std::mutex | mutexStartNotify |
| std::condition_variable | startNotifyEvent |
| PassiveTimer | ptHeartBeat |
| uniset::ObjectId | sidHeartBeat = { uniset::DefaultObjectId } |
| long | maxHeartBeat = { 10 } |
| IOController::IOStateList::iterator | itHeartBeat |
| uniset::ObjectId | test_id = { uniset::DefaultObjectId } |
| IOController::IOStateList::iterator | itAskCount |
| uniset::ObjectId | askcount_id = { uniset::DefaultObjectId } |
| IOController::IOStateList::iterator | itRespond |
| uniset::ObjectId | respond_id = { uniset::DefaultObjectId } |
| bool | respond_invert = { false } |
| PassiveTimer | ptTimeout |
| long | askCount = { 0 } |
| std::atomic_bool | activated = { false } |
| std::atomic_bool | cancelled = { false } |
| timeout_t | activateTimeout = { 20000 } |
| bool | pingOK = { false } |
| timeout_t | wait_msec = { 3000 } |
| bool | force = { false } |
| bool | mbregFromID = {0} |
| bool | checkMBFunc = {0} |
| bool | noMBFuncOptimize = {0} |
| FileList | flist |
| std::string | prefix = { "" } |
| std::string | prop_prefix = { "" } |
| ModbusRTU::ModbusData | buf [ModbusRTU::MAXLENPACKET/2+1] |
| MEIDevIDMap | meidev |
| std::shared_ptr< LogAgregator > | loga |
| std::shared_ptr< DebugStream > | mblog |
| std::shared_ptr< LogServer > | logserv |
| std::string | logserv_host = {""} |
| int | logserv_port = {0} |
| VMonitor | vmon |
| std::string | mbtype = { "" } |
| timeout_t | sessTimeout = { 2000 } |
| timeout_t | updateStatTime = { 4000 } |
| ModbusTCPServer::Sessions | sess |
| std::mutex | sessMutex |
| size_t | sessMaxNum = { 5 } |
|
std::shared_ptr < ModbusTCPServerSlot > | tcpserver |
| ClientsMap | cmap |
| uniset::ObjectId | sesscount_id = { uniset::DefaultObjectId } |
| IOController::IOStateList::iterator | sesscount_it |
| std::atomic_bool | tcpCancelled = { true } |
Реализация slave-интерфейса
| bool MBSlave::activateObject | ( | ) | [override, protected, virtual] |
Активизация объекта (переопределяется для необходимых действий после активизации)
Переопределяет метод предка uniset::UniSetObject.
| virtual ModbusRTU::mbErrCode uniset::MBSlave::checkRegister | ( | ModbusRTU::ModbusData | reg, |
| ModbusRTU::ModbusData & | val | ||
| ) | [inline, protected, virtual] |
Проверка корректности регистра перед сохранением. Вызывается для каждого регистра не зависимо от используемой функции (06 или 10)
| bool MBSlave::deactivateObject | ( | ) | [override, protected, virtual] |
Деактивиция объекта (переопределяется для необходимых действий перед деактивацией)
Переопределяет метод предка uniset::UniSetObject.
| ModbusRTU::mbErrCode MBSlave::forceMultipleCoils | ( | ModbusRTU::ForceCoilsMessage & | query, |
| ModbusRTU::ForceCoilsRetMessage & | reply | ||
| ) | [protected] |
обработка 0x0F
| ModbusRTU::mbErrCode MBSlave::forceSingleCoil | ( | ModbusRTU::ForceSingleCoilMessage & | query, |
| ModbusRTU::ForceSingleCoilRetMessage & | reply | ||
| ) | [protected] |
обработка 0x05
| void MBSlave::help_print | ( | int | argc, |
| const char *const * | argv | ||
| ) | [static] |
глобальная функция для вывода help-а
| std::shared_ptr< MBSlave > MBSlave::init_mbslave | ( | int | argc, |
| const char *const * | argv, | ||
| uniset::ObjectId | shmID, | ||
| const std::shared_ptr< SharedMemory > & | ic = nullptr, |
||
| const std::string & | prefix = "mbs" |
||
| ) | [static] |
глобальная функция для инициализации объекта
| ModbusRTU::mbErrCode MBSlave::readCoilStatus | ( | ModbusRTU::ReadCoilMessage & | query, |
| ModbusRTU::ReadCoilRetMessage & | reply | ||
| ) | [protected] |
обработка 0x01
| mbErrCode MBSlave::readInputRegisters | ( | ModbusRTU::ReadInputMessage & | query, |
| ModbusRTU::ReadInputRetMessage & | reply | ||
| ) | [protected] |
обработка 0x04
| ModbusRTU::mbErrCode MBSlave::readInputStatus | ( | ModbusRTU::ReadInputStatusMessage & | query, |
| ModbusRTU::ReadInputStatusRetMessage & | reply | ||
| ) | [protected] |
обработка 0x02
| ModbusRTU::mbErrCode MBSlave::readOutputRegisters | ( | ModbusRTU::ReadOutputMessage & | query, |
| ModbusRTU::ReadOutputRetMessage & | reply | ||
| ) | [protected] |
обработка 0x03
| ModbusRTU::mbErrCode MBSlave::remoteService | ( | ModbusRTU::RemoteServiceMessage & | query, |
| ModbusRTU::RemoteServiceRetMessage & | reply | ||
| ) | [protected] |
обработка запроса удалённого сервиса
| ModbusRTU::mbErrCode MBSlave::setDateTime | ( | ModbusRTU::SetDateTimeMessage & | query, |
| ModbusRTU::SetDateTimeRetMessage & | reply | ||
| ) | [protected] |
обработка запросов на чтение ошибок
обработка запроса на установку времени
| void MBSlave::sigterm | ( | int | signo | ) | [override, protected, virtual] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяет метод предка uniset::UniSetObject.
| ModbusRTU::mbErrCode MBSlave::writeOutputRegisters | ( | ModbusRTU::WriteOutputMessage & | query, |
| ModbusRTU::WriteOutputRetMessage & | reply | ||
| ) | [protected] |
обработка 0x10
| ModbusRTU::mbErrCode MBSlave::writeOutputSingleRegister | ( | ModbusRTU::WriteSingleOutputMessage & | query, |
| ModbusRTU::WriteSingleOutputRetMessage & | reply | ||
| ) | [protected] |
обработка 0x06
ModbusRTU::ModbusData uniset::MBSlave::buf[ModbusRTU::MAXLENPACKET/2+1] [protected] |
буфер для формирования ответов
bool uniset::MBSlave::force = { false } [protected] |
флаг означающий, что надо сохранять в SM, даже если значение не менялось
IOMap uniset::MBSlave::iomap [protected] |
список входов/выходов по адресам
ModbusTCPServer::Sessions uniset::MBSlave::sess [protected] |
список открытых сессий
timeout_t uniset::MBSlave::sessTimeout = { 2000 } [protected] |
таймаут на сессию
std::unordered_set<ModbusRTU::ModbusAddr> uniset::MBSlave::vaddr [protected] |
адреса данного узла
1.7.6.1