UniSet
1.4.0
|
#include <MBSlave.h>
Классы | |
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 MBSlave * | init_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 MBSlave * | init_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 |
ModbusServerSlot * | mbslot |
ModbusRTU::ModbusAddr | addr |
UniSetTypes::uniset_mutex | mbMutex |
xmlNode * | cnode |
std::string | s_field |
std::string | s_fvalue |
SMInterface * | shm |
ModbusRTUSlaveSlot * | rscomm |
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] |
обработка 0x0F
Перекрестные ссылки ModbusRTU::ForceCoilsMessage::quant, ModbusRTU::ForceCoilsRetMessage::set() и ModbusRTU::ForceCoilsMessage::start.
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] |
обработка 0x05
Перекрестные ссылки ModbusRTU::ForceSingleCoilMessage::cmd(), ModbusRTU::ForceSingleCoilRetMessage::set() и ModbusRTU::ForceSingleCoilMessage::start.
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
mbErrCode MBSlave::readInputRegisters | ( | ModbusRTU::ReadInputMessage & | query, |
ModbusRTU::ReadInputRetMessage & | reply | ||
) | [protected] |
обработка 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] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяет метод предка UniSetObject.
void MBSlave::sigterm | ( | int | signo | ) | [protected, virtual] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяет метод предка UniSetObject.
virtual void MBSlave::sigterm | ( | int | signo | ) | [protected, virtual] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяет метод предка 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] |
обработка 0x10
Перекрестные ссылки ModbusRTU::WriteOutputMessage::quant, ModbusRTU::WriteOutputRetMessage::set() и ModbusRTU::WriteOutputMessage::start.
ModbusRTU::mbErrCode MBSlave::writeOutputSingleRegister | ( | ModbusRTU::WriteSingleOutputMessage & | query, |
ModbusRTU::WriteSingleOutputRetMessage & | reply | ||
) | [protected] |
обработка 0x06
ModbusRTU::mbErrCode MBSlave::writeOutputSingleRegister | ( | ModbusRTU::WriteSingleOutputMessage & | query, |
ModbusRTU::WriteSingleOutputRetMessage & | reply | ||
) | [protected] |
обработка 0x06
ModbusRTU::mbErrCode MBSlave::writeOutputSingleRegister | ( | ModbusRTU::WriteSingleOutputMessage & | query, |
ModbusRTU::WriteSingleOutputRetMessage & | reply | ||
) | [protected] |
обработка 0x06
Перекрестные ссылки ModbusRTU::WriteSingleOutputMessage::data, ModbusRTU::WriteSingleOutputRetMessage::set() и ModbusRTU::WriteSingleOutputMessage::start.
ModbusRTU::ModbusAddr MBSlave::addr [protected] |
адрес данного узла
IOMap MBSlave::iomap [protected] |
список входов/выходов
ModbusRTUSlaveSlot* MBSlave::rscomm [protected] |
интерфейс ModbusRTUSlave для обмена по RS
Используется в execute().