UniSet  1.4.0
Классы | Открытые типы | Открытые члены | Открытые статические члены | Статические открытые данные | Защищенные типы | Защищенные члены | Защищенные данные
Класс MBSlave

#include <MBSlave.h>

Граф наследования:MBSlave:
UniSetObject_LT UniSetObject_LT UniSetObject UniSetObject

Полный список членов класса

Классы

struct  IOProperty

Открытые типы

enum  AccessMode {
  amRW, amRO, amWO, amRW,
  amRO, amWO
}
enum  AccessMode {
  amRW, amRO, amWO, amRW,
  amRO, amWO
}

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

 MBSlave (UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory *ic=0, std::string prefix="mbs")
long getAskCount ()
 MBSlave (ModbusRTU::ModbusAddr addr, const std::string dev, const std::string speed, bool use485=false)
void setVerbose (bool state)
void setReply (long val)
void setReply2 (long val)
void setReply3 (long val)
void execute ()
void setLog (DebugStream &dlog)
 MBSlave (UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shmID, SharedMemory *ic=0, std::string prefix="mbs")
long getAskCount ()

Открытые статические члены

static MBSlaveinit_mbslave (int argc, const char *const *argv, UniSetTypes::ObjectId shmID, SharedMemory *ic=0, std::string prefix="mbs")
static void help_print (int argc, const char *const *argv)
static MBSlaveinit_mbslave (int argc, const char *const *argv, UniSetTypes::ObjectId shmID, SharedMemory *ic=0, std::string prefix="mbs")
static void help_print (int argc, const char *const *argv)

Статические открытые данные

static const int NoSafetyState = -1

Защищенные типы

typedef std::map
< ModbusRTU::ModbusData,
IOProperty
IOMap
typedef std::map
< ModbusRTU::ModbusData,
IOProperty
IOMap

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

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)
virtual ModbusRTU::mbErrCode checkRegister (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData &val)
virtual void processingMessage (UniSetTypes::VoidMessage *msg)
void sysCommand (UniSetTypes::SystemMessage *msg)
void sensorInfo (UniSetTypes::SensorMessage *sm)
void askSensors (UniversalIO::UIOCommand cmd)
void waitSMReady ()
void execute_rtu ()
void execute_tcp ()
virtual bool activateObject ()
 Активизация объекта (переопределяется для необходимых действий после активизации)
virtual void sigterm (int signo)
void initIterators ()
bool initItem (UniXML_iterator &it)
bool readItem (UniXML &xml, UniXML_iterator &it, xmlNode *sec)
void readConfiguration ()
bool check_item (UniXML_iterator &it)
ModbusRTU::mbErrCode real_write (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData val)
ModbusRTU::mbErrCode real_read (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData &val)
ModbusRTU::mbErrCode much_real_read (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData *dat, int count)
ModbusRTU::mbErrCode much_real_write (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData *dat, int count)
ModbusRTU::mbErrCode real_read_it (IOMap::iterator &it, ModbusRTU::ModbusData &val)
ModbusRTU::mbErrCode real_write_it (IOMap::iterator &it, ModbusRTU::ModbusData &val)
void sigterm (int signo)
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 journalCommand (ModbusRTU::JournalCommandMessage &query, ModbusRTU::JournalCommandRetMessage &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 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)
virtual ModbusRTU::mbErrCode checkRegister (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData &val)
virtual void processingMessage (UniSetTypes::VoidMessage *msg)
void sysCommand (UniSetTypes::SystemMessage *msg)
void sensorInfo (UniSetTypes::SensorMessage *sm)
void askSensors (UniversalIO::UIOCommand cmd)
void waitSMReady ()
void execute_rtu ()
void execute_tcp ()
virtual bool activateObject ()
 Активизация объекта (переопределяется для необходимых действий после активизации)
virtual void sigterm (int signo)
void initIterators ()
bool initItem (UniXML_iterator &it)
bool readItem (UniXML &xml, UniXML_iterator &it, xmlNode *sec)
void readConfiguration ()
bool check_item (UniXML_iterator &it)
ModbusRTU::mbErrCode real_write (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData val)
ModbusRTU::mbErrCode real_read (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData &val)
ModbusRTU::mbErrCode much_real_read (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData *dat, int count)
ModbusRTU::mbErrCode much_real_write (ModbusRTU::ModbusData reg, ModbusRTU::ModbusData *dat, int count)
ModbusRTU::mbErrCode real_read_it (IOMap::iterator &it, ModbusRTU::ModbusData &val)
ModbusRTU::mbErrCode real_write_it (IOMap::iterator &it, ModbusRTU::ModbusData &val)

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

IOMap iomap
ModbusServerSlotmbslot
ModbusRTU::ModbusAddr addr
UniSetTypes::uniset_mutex mbMutex
xmlNode * cnode
std::string s_field
std::string s_fvalue
SMInterfaceshm
ModbusRTUSlaveSlotrscomm
bool verbose
long replyVal
long replyVal2
long replyVal3

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

Реализация slave-интерфейса

Ничего не делающая реализация MBSlave для тестирования


Методы

bool MBSlave::activateObject ( ) [protected, virtual]

Активизация объекта (переопределяется для необходимых действий после активизации)

Переопределяет метод предка UniSetObject.

virtual bool MBSlave::activateObject ( ) [protected, virtual]

Активизация объекта (переопределяется для необходимых действий после активизации)

Переопределяет метод предка UniSetObject.

virtual ModbusRTU::mbErrCode MBSlave::checkRegister ( ModbusRTU::ModbusData  reg,
ModbusRTU::ModbusData &  val 
) [inline, protected, virtual]

Проверка корректности регистра перед сохранением. Вызывается для каждого регистра не зависимо от используемой функции (06 или 10)

virtual ModbusRTU::mbErrCode MBSlave::checkRegister ( ModbusRTU::ModbusData  reg,
ModbusRTU::ModbusData &  val 
) [inline, protected, virtual]

Проверка корректности регистра перед сохранением. Вызывается для каждого регистра не зависимо от используемой функции (06 или 10)

void MBSlave::execute ( )

основной цикл работы

Перекрестные ссылки ModbusRTUSlave::receive(), rscomm и UniSetTimer::WaitUpTime.

ModbusRTU::mbErrCode MBSlave::forceMultipleCoils ( ModbusRTU::ForceCoilsMessage query,
ModbusRTU::ForceCoilsRetMessage reply 
) [protected]

обработка 0x0F

ModbusRTU::mbErrCode MBSlave::forceMultipleCoils ( ModbusRTU::ForceCoilsMessage query,
ModbusRTU::ForceCoilsRetMessage reply 
) [protected]

обработка 0x0F

ModbusRTU::mbErrCode MBSlave::forceMultipleCoils ( ModbusRTU::ForceCoilsMessage query,
ModbusRTU::ForceCoilsRetMessage reply 
) [protected]
ModbusRTU::mbErrCode MBSlave::forceSingleCoil ( ModbusRTU::ForceSingleCoilMessage query,
ModbusRTU::ForceSingleCoilRetMessage reply 
) [protected]

обработка 0x05

ModbusRTU::mbErrCode MBSlave::forceSingleCoil ( ModbusRTU::ForceSingleCoilMessage query,
ModbusRTU::ForceSingleCoilRetMessage reply 
) [protected]

обработка 0x05

ModbusRTU::mbErrCode MBSlave::forceSingleCoil ( ModbusRTU::ForceSingleCoilMessage query,
ModbusRTU::ForceSingleCoilRetMessage reply 
) [protected]
static void MBSlave::help_print ( int  argc,
const char *const *  argv 
) [static]

глобальная функция для вывода help-а

void MBSlave::help_print ( int  argc,
const char *const *  argv 
) [static]

глобальная функция для вывода help-а

static MBSlave* MBSlave::init_mbslave ( int  argc,
const char *const *  argv,
UniSetTypes::ObjectId  shmID,
SharedMemory ic = 0,
std::string  prefix = "mbs" 
) [static]

глобальная функция для инициализации объекта

static MBSlave* MBSlave::init_mbslave ( int  argc,
const char *const *  argv,
UniSetTypes::ObjectId  shmID,
SharedMemory ic = 0,
std::string  prefix = "mbs" 
) [static]

глобальная функция для инициализации объекта

ModbusRTU::mbErrCode MBSlave::journalCommand ( ModbusRTU::JournalCommandMessage query,
ModbusRTU::JournalCommandRetMessage reply 
) [protected]

обработка запросов на чтение ошибок

Перекрестные ссылки ModbusRTU::JournalCommandMessage::cmd, ModbusRTU::JournalCommandMessage::num и ModbusRTU::JournalCommandRetMessage::setData().

void MBSlave::processingMessage ( UniSetTypes::VoidMessage msg) [protected, virtual]

обработка приходящих сообщений

Переопределяет метод предка UniSetObject.

virtual void MBSlave::processingMessage ( UniSetTypes::VoidMessage msg) [protected, virtual]

обработка приходящих сообщений

Переопределяет метод предка UniSetObject.

ModbusRTU::mbErrCode MBSlave::readCoilStatus ( ModbusRTU::ReadCoilMessage query,
ModbusRTU::ReadCoilRetMessage reply 
) [protected]

обработка 0x01

ModbusRTU::mbErrCode MBSlave::readCoilStatus ( ModbusRTU::ReadCoilMessage query,
ModbusRTU::ReadCoilRetMessage reply 
) [protected]

обработка 0x01

Перекрестные ссылки ModbusRTU::ReadCoilRetMessage::addData().

ModbusRTU::mbErrCode MBSlave::readCoilStatus ( ModbusRTU::ReadCoilMessage query,
ModbusRTU::ReadCoilRetMessage reply 
) [protected]

обработка 0x01

ModbusRTU::mbErrCode MBSlave::readInputRegisters ( ModbusRTU::ReadInputMessage query,
ModbusRTU::ReadInputRetMessage reply 
) [protected]

обработка 0x04

обработка 0x04

Перекрестные ссылки ModbusRTU::ReadInputRetMessage::addData() и ModbusRTU::ReadInputRetMessage::count.

ModbusRTU::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::readInputStatus ( ModbusRTU::ReadInputStatusMessage query,
ModbusRTU::ReadInputStatusRetMessage reply 
) [protected]

обработка 0x02

Перекрестные ссылки ModbusRTU::ReadInputStatusRetMessage::addData() и ModbusRTU::ReadInputStatusRetMessage::setBit().

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::readOutputRegisters ( ModbusRTU::ReadOutputMessage query,
ModbusRTU::ReadOutputRetMessage reply 
) [protected]

обработка 0x03

Перекрестные ссылки ModbusRTU::ReadOutputRetMessage::addData() и ModbusRTU::ReadOutputRetMessage::count.

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::remoteService ( ModbusRTU::RemoteServiceMessage query,
ModbusRTU::RemoteServiceRetMessage reply 
) [protected]

обработка запроса удалённого сервиса

ModbusRTU::mbErrCode MBSlave::remoteService ( ModbusRTU::RemoteServiceMessage query,
ModbusRTU::RemoteServiceRetMessage reply 
) [protected]

обработка запроса удалённого сервиса

ModbusRTU::mbErrCode MBSlave::setDateTime ( ModbusRTU::SetDateTimeMessage query,
ModbusRTU::SetDateTimeRetMessage reply 
) [protected]

обработка запроса на установку времени

ModbusRTU::mbErrCode MBSlave::setDateTime ( ModbusRTU::SetDateTimeMessage query,
ModbusRTU::SetDateTimeRetMessage reply 
) [protected]

обработка запросов на чтение ошибок

обработка запроса на установку времени

ModbusRTU::mbErrCode MBSlave::setDateTime ( ModbusRTU::SetDateTimeMessage query,
ModbusRTU::SetDateTimeRetMessage reply 
) [protected]

обработка запросов на чтение ошибок

обработка запроса на установку времени

void MBSlave::sigterm ( int  signo) [protected, virtual]

Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.

Предупреждения:
В обработчике сигналов ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!

Переопределяет метод предка UniSetObject.

void MBSlave::sigterm ( int  signo) [protected, virtual]

Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.

Предупреждения:
В обработчике сигналов ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!

Переопределяет метод предка UniSetObject.

virtual void MBSlave::sigterm ( int  signo) [protected, virtual]

Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.

Предупреждения:
В обработчике сигналов ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!

Переопределяет метод предка UniSetObject.

ModbusRTU::mbErrCode MBSlave::writeOutputRegisters ( ModbusRTU::WriteOutputMessage query,
ModbusRTU::WriteOutputRetMessage reply 
) [protected]

обработка 0x10

ModbusRTU::mbErrCode MBSlave::writeOutputRegisters ( ModbusRTU::WriteOutputMessage query,
ModbusRTU::WriteOutputRetMessage reply 
) [protected]

обработка 0x10

ModbusRTU::mbErrCode MBSlave::writeOutputRegisters ( ModbusRTU::WriteOutputMessage query,
ModbusRTU::WriteOutputRetMessage reply 
) [protected]

обработка 0x06

обработка 0x06


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

ModbusRTU::ModbusAddr MBSlave::addr [protected]

адрес данного узла

IOMap MBSlave::iomap [protected]

список входов/выходов

интерфейс ModbusRTUSlave для обмена по RS

Используется в execute().


Объявления и описания членов классов находятся в файлах: