Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
bee92874
Commit
bee92874
authored
Feb 11, 2014
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Добавил в MosbusMaster использование shared_ptr
parent
be3c8fbf
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
61 additions
and
63 deletions
+61
-63
MBExchange.h
extensions/ModbusMaster/MBExchange.h
+3
-2
MBTCPMaster.cc
extensions/ModbusMaster/MBTCPMaster.cc
+8
-11
MBTCPMaster.h
extensions/ModbusMaster/MBTCPMaster.h
+3
-2
MBTCPMultiMaster.cc
extensions/ModbusMaster/MBTCPMultiMaster.cc
+6
-7
MBTCPMultiMaster.h
extensions/ModbusMaster/MBTCPMultiMaster.h
+5
-5
RTUExchange.cc
extensions/ModbusMaster/RTUExchange.cc
+11
-11
RTUExchange.h
extensions/ModbusMaster/RTUExchange.h
+2
-2
RTUStorage.cc
extensions/ModbusMaster/RTUStorage.cc
+2
-3
RTUStorage.h
extensions/ModbusMaster/RTUStorage.h
+8
-7
rtustate.cc
extensions/ModbusMaster/rtustate.cc
+12
-12
start_fg_mbtcpmulti.sh
extensions/ModbusMaster/start_fg_mbtcpmulti.sh
+1
-1
No files found.
extensions/ModbusMaster/MBExchange.h
View file @
bee92874
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
#include <string>
#include <string>
#include <map>
#include <map>
#include <vector>
#include <vector>
#include <memory>
#include "IONotifyController.h"
#include "IONotifyController.h"
#include "UniSetObject_LT.h"
#include "UniSetObject_LT.h"
#include "PassiveTimer.h"
#include "PassiveTimer.h"
...
@@ -234,7 +235,7 @@ class MBExchange:
...
@@ -234,7 +235,7 @@ class MBExchange:
InitList
initRegList
;
/*!< список регистров для инициализации */
InitList
initRegList
;
/*!< список регистров для инициализации */
UniSetTypes
::
uniset_rwmutex
pollMutex
;
UniSetTypes
::
uniset_rwmutex
pollMutex
;
virtual
ModbusClient
*
initMB
(
bool
reopen
=
false
)
=
0
;
virtual
std
::
shared_ptr
<
ModbusClient
>
initMB
(
bool
reopen
=
false
)
=
0
;
virtual
void
poll
();
virtual
void
poll
();
bool
pollRTU
(
RTUDevice
*
dev
,
RegMap
::
iterator
&
it
);
bool
pollRTU
(
RTUDevice
*
dev
,
RegMap
::
iterator
&
it
);
...
@@ -311,7 +312,7 @@ class MBExchange:
...
@@ -311,7 +312,7 @@ class MBExchange:
std
::
string
prop_prefix
;
/*!< префикс для считывания параметров обмена */
std
::
string
prop_prefix
;
/*!< префикс для считывания параметров обмена */
ModbusClient
*
mb
;
std
::
shared_ptr
<
ModbusClient
>
mb
;
// определение timeout для соединения
// определение timeout для соединения
PassiveTimer
ptTimeout
;
PassiveTimer
ptTimeout
;
...
...
extensions/ModbusMaster/MBTCPMaster.cc
View file @
bee92874
...
@@ -14,7 +14,7 @@ MBTCPMaster::MBTCPMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shm
...
@@ -14,7 +14,7 @@ MBTCPMaster::MBTCPMaster( UniSetTypes::ObjectId objId, UniSetTypes::ObjectId shm
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
MBExchange
(
objId
,
shmId
,
ic
,
prefix
),
MBExchange
(
objId
,
shmId
,
ic
,
prefix
),
force_disconnect
(
true
),
force_disconnect
(
true
),
mbtcp
(
0
),
mbtcp
(
nullptr
),
pollThread
(
0
)
pollThread
(
0
)
{
{
if
(
objId
==
DefaultObjectId
)
if
(
objId
==
DefaultObjectId
)
...
@@ -76,25 +76,24 @@ pollThread(0)
...
@@ -76,25 +76,24 @@ pollThread(0)
MBTCPMaster
::~
MBTCPMaster
()
MBTCPMaster
::~
MBTCPMaster
()
{
{
delete
pollThread
;
delete
pollThread
;
delete
mbtcp
;
//
delete mbtcp;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
ModbusClient
*
MBTCPMaster
::
initMB
(
bool
reopen
)
std
::
shared_ptr
<
ModbusClient
>
MBTCPMaster
::
initMB
(
bool
reopen
)
{
{
if
(
mbtcp
)
if
(
mbtcp
)
{
{
if
(
!
reopen
)
if
(
!
reopen
)
return
mbtcp
;
return
mbtcp
;
delete
mbtcp
;
mbtcp
=
nullptr
;
mb
=
0
;
mb
=
nullptr
;
mbtcp
=
0
;
}
}
try
try
{
{
ost
::
Thread
::
setException
(
ost
::
Thread
::
throwException
);
ost
::
Thread
::
setException
(
ost
::
Thread
::
throwException
);
mbtcp
=
new
ModbusTCPMaster
();
mbtcp
=
std
::
make_shared
<
ModbusTCPMaster
>
();
ost
::
InetAddress
ia
(
iaddr
.
c_str
());
ost
::
InetAddress
ia
(
iaddr
.
c_str
());
mbtcp
->
connect
(
ia
,
port
);
mbtcp
->
connect
(
ia
,
port
);
...
@@ -118,10 +117,8 @@ ModbusClient* MBTCPMaster::initMB( bool reopen )
...
@@ -118,10 +117,8 @@ ModbusClient* MBTCPMaster::initMB( bool reopen )
}
}
catch
(...)
catch
(...)
{
{
if
(
mbtcp
)
mb
=
nullptr
;
delete
mbtcp
;
mbtcp
=
nullptr
;
mb
=
0
;
mbtcp
=
0
;
}
}
mb
=
mbtcp
;
mb
=
mbtcp
;
...
...
extensions/ModbusMaster/MBTCPMaster.h
View file @
bee92874
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
#include <string>
#include <string>
#include <map>
#include <map>
#include <vector>
#include <vector>
#include <memory>
#include "MBExchange.h"
#include "MBExchange.h"
#include "modbus/ModbusTCPMaster.h"
#include "modbus/ModbusTCPMaster.h"
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -206,7 +207,7 @@ class MBTCPMaster:
...
@@ -206,7 +207,7 @@ class MBTCPMaster:
protected
:
protected
:
virtual
void
sysCommand
(
const
UniSetTypes
::
SystemMessage
*
sm
)
override
;
virtual
void
sysCommand
(
const
UniSetTypes
::
SystemMessage
*
sm
)
override
;
virtual
ModbusClient
*
initMB
(
bool
reopen
=
false
)
override
;
virtual
std
::
shared_ptr
<
ModbusClient
>
initMB
(
bool
reopen
=
false
)
override
;
UniSetTypes
::
uniset_rwmutex
mbMutex
;
UniSetTypes
::
uniset_rwmutex
mbMutex
;
std
::
string
iaddr
;
std
::
string
iaddr
;
...
@@ -218,7 +219,7 @@ class MBTCPMaster:
...
@@ -218,7 +219,7 @@ class MBTCPMaster:
private
:
private
:
MBTCPMaster
();
MBTCPMaster
();
ModbusTCPMaster
*
mbtcp
;
std
::
shared_ptr
<
ModbusTCPMaster
>
mbtcp
;
// т.к. TCP может "зависнуть" на подключении к недоступному узлу
// т.к. TCP может "зависнуть" на подключении к недоступному узлу
// делаем опрос в отдельном потоке
// делаем опрос в отдельном потоке
...
...
extensions/ModbusMaster/MBTCPMultiMaster.cc
View file @
bee92874
...
@@ -98,7 +98,7 @@ checkThread(0)
...
@@ -98,7 +98,7 @@ checkThread(0)
}
}
sinf
.
priority
=
it1
.
getIntProp
(
"priority"
);
sinf
.
priority
=
it1
.
getIntProp
(
"priority"
);
sinf
.
mbtcp
=
new
ModbusTCPMaster
();
sinf
.
mbtcp
=
std
::
make_shared
<
ModbusTCPMaster
>
();
sinf
.
recv_timeout
=
it1
.
getPIntProp
(
"recv_timeout"
,
recv_timeout
);
sinf
.
recv_timeout
=
it1
.
getPIntProp
(
"recv_timeout"
,
recv_timeout
);
sinf
.
aftersend_pause
=
it1
.
getPIntProp
(
"aftersend_pause"
,
aftersend_pause
);
sinf
.
aftersend_pause
=
it1
.
getPIntProp
(
"aftersend_pause"
,
aftersend_pause
);
...
@@ -126,7 +126,7 @@ checkThread(0)
...
@@ -126,7 +126,7 @@ checkThread(0)
dcrit
<<
err
.
str
()
<<
endl
;
dcrit
<<
err
.
str
()
<<
endl
;
throw
UniSetTypes
::
SystemError
(
err
.
str
());
throw
UniSetTypes
::
SystemError
(
err
.
str
());
}
}
mblist
.
sort
();
mblist
.
sort
();
mbi
=
mblist
.
rbegin
();
mbi
=
mblist
.
rbegin
();
...
@@ -157,20 +157,19 @@ MBTCPMultiMaster::~MBTCPMultiMaster()
...
@@ -157,20 +157,19 @@ MBTCPMultiMaster::~MBTCPMultiMaster()
delete
checkThread
;
delete
checkThread
;
for
(
auto
&
it
:
mblist
)
for
(
auto
&
it
:
mblist
)
{
{
delete
it
.
mbtcp
;
it
.
mbtcp
=
nullptr
;
it
.
mbtcp
=
0
;
mbi
=
mblist
.
rend
();
mbi
=
mblist
.
rend
();
}
}
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
ModbusClient
*
MBTCPMultiMaster
::
initMB
(
bool
reopen
)
std
::
shared_ptr
<
ModbusClient
>
MBTCPMultiMaster
::
initMB
(
bool
reopen
)
{
{
// просто движемся по кругу (т.к. связь не проверяется)
// просто движемся по кругу (т.к. связь не проверяется)
// движемся в обратном порядке, т.к. сортировка по возрастанию приоритета
// движемся в обратном порядке, т.к. сортировка по возрастанию приоритета
if
(
checktime
<=
0
)
if
(
checktime
<=
0
)
{
{
++
mbi
;
++
mbi
;
if
(
mbi
==
mblist
.
rend
()
)
if
(
mbi
==
mblist
.
rend
()
)
mbi
=
mblist
.
rbegin
();
mbi
=
mblist
.
rbegin
();
mbi
->
init
();
mbi
->
init
();
...
@@ -209,7 +208,7 @@ ModbusClient* MBTCPMultiMaster::initMB( bool reopen )
...
@@ -209,7 +208,7 @@ ModbusClient* MBTCPMultiMaster::initMB( bool reopen )
{
{
uniset_rwmutex_wrlock
l
(
tcpMutex
);
uniset_rwmutex_wrlock
l
(
tcpMutex
);
mbi
=
mblist
.
rend
();
mbi
=
mblist
.
rend
();
mb
=
0
;
mb
=
nullptr
;
}
}
return
0
;
return
0
;
...
...
extensions/ModbusMaster/MBTCPMultiMaster.h
View file @
bee92874
...
@@ -217,7 +217,7 @@ class MBTCPMultiMaster:
...
@@ -217,7 +217,7 @@ class MBTCPMultiMaster:
MBTCPMultiMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
MBTCPMultiMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"mbtcp"
);
const
std
::
string
&
prefix
=
"mbtcp"
);
virtual
~
MBTCPMultiMaster
();
virtual
~
MBTCPMultiMaster
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
MBTCPMultiMaster
*
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
static
MBTCPMultiMaster
*
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
...
@@ -229,7 +229,7 @@ class MBTCPMultiMaster:
...
@@ -229,7 +229,7 @@ class MBTCPMultiMaster:
protected
:
protected
:
virtual
void
sysCommand
(
const
UniSetTypes
::
SystemMessage
*
sm
)
override
;
virtual
void
sysCommand
(
const
UniSetTypes
::
SystemMessage
*
sm
)
override
;
virtual
void
initIterators
()
override
;
virtual
void
initIterators
()
override
;
virtual
ModbusClient
*
initMB
(
bool
reopen
=
false
)
override
;
virtual
std
::
shared_ptr
<
ModbusClient
>
initMB
(
bool
reopen
=
false
)
override
;
void
poll_thread
();
void
poll_thread
();
void
check_thread
();
void
check_thread
();
...
@@ -250,9 +250,9 @@ class MBTCPMultiMaster:
...
@@ -250,9 +250,9 @@ class MBTCPMultiMaster:
std
::
string
ip
;
std
::
string
ip
;
int
port
;
int
port
;
ModbusTCPMaster
*
mbtcp
;
std
::
shared_ptr
<
ModbusTCPMaster
>
mbtcp
;
int
priority
;
int
priority
;
bool
respond
;
bool
respond
;
UniSetTypes
::
ObjectId
respond_id
;
UniSetTypes
::
ObjectId
respond_id
;
IOController
::
IOStateList
::
iterator
respond_it
;
IOController
::
IOStateList
::
iterator
respond_it
;
...
@@ -270,7 +270,7 @@ class MBTCPMultiMaster:
...
@@ -270,7 +270,7 @@ class MBTCPMultiMaster:
int
aftersend_pause
;
int
aftersend_pause
;
int
sleepPause_usec
;
int
sleepPause_usec
;
bool
force_disconnect
;
bool
force_disconnect
;
std
::
string
myname
;
std
::
string
myname
;
bool
initOK
;
bool
initOK
;
...
...
extensions/ModbusMaster/RTUExchange.cc
View file @
bee92874
...
@@ -88,16 +88,16 @@ void RTUExchange::help_print( int argc, const char* const* argv )
...
@@ -88,16 +88,16 @@ void RTUExchange::help_print( int argc, const char* const* argv )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
RTUExchange
::~
RTUExchange
()
RTUExchange
::~
RTUExchange
()
{
{
delete
mbrtu
;
//
delete mbrtu;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
ModbusClient
*
RTUExchange
::
initMB
(
bool
reopen
)
std
::
shared_ptr
<
ModbusClient
>
RTUExchange
::
initMB
(
bool
reopen
)
{
{
if
(
!
file_exist
(
devname
)
)
if
(
!
file_exist
(
devname
)
)
{
{
if
(
mbrtu
)
if
(
mbrtu
)
{
{
delete
mbrtu
;
//
delete mbrtu;
mb
=
0
;
mb
=
0
;
mbrtu
=
0
;
mbrtu
=
0
;
}
}
...
@@ -108,15 +108,15 @@ ModbusClient* RTUExchange::initMB( bool reopen )
...
@@ -108,15 +108,15 @@ ModbusClient* RTUExchange::initMB( bool reopen )
{
{
if
(
!
reopen
)
if
(
!
reopen
)
return
mbrtu
;
return
mbrtu
;
delete
mbrtu
;
//
delete mbrtu;
mbrtu
=
0
;
mbrtu
=
0
;
mb
=
0
;
mb
=
0
;
}
}
try
try
{
{
mbrtu
=
new
ModbusRTUMaster
(
devname
,
use485F
,
transmitCtl
);
mbrtu
=
std
::
make_shared
<
ModbusRTUMaster
>
(
devname
,
use485F
,
transmitCtl
);
if
(
defSpeed
!=
ComPort
::
ComSpeed0
)
if
(
defSpeed
!=
ComPort
::
ComSpeed0
)
mbrtu
->
setSpeed
(
defSpeed
);
mbrtu
->
setSpeed
(
defSpeed
);
...
@@ -134,18 +134,18 @@ ModbusClient* RTUExchange::initMB( bool reopen )
...
@@ -134,18 +134,18 @@ ModbusClient* RTUExchange::initMB( bool reopen )
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
{
{
if
(
mbrtu
)
//
if( mbrtu )
delete
mbrtu
;
//
delete mbrtu;
mbrtu
=
0
;
mbrtu
=
0
;
dwarn
<<
myname
<<
"(init): "
<<
ex
<<
endl
;
dwarn
<<
myname
<<
"(init): "
<<
ex
<<
endl
;
}
}
catch
(...)
catch
(...)
{
{
if
(
mbrtu
)
//
if( mbrtu )
delete
mbrtu
;
//
delete mbrtu;
mbrtu
=
0
;
mbrtu
=
0
;
dinfo
<<
myname
<<
"(init): catch...."
<<
endl
;
dinfo
<<
myname
<<
"(init): catch...."
<<
endl
;
}
}
...
...
extensions/ModbusMaster/RTUExchange.h
View file @
bee92874
...
@@ -26,7 +26,7 @@ class RTUExchange:
...
@@ -26,7 +26,7 @@ class RTUExchange:
static
void
help_print
(
int
argc
,
const
char
*
const
*
argv
);
static
void
help_print
(
int
argc
,
const
char
*
const
*
argv
);
protected
:
protected
:
ModbusRTUMaster
*
mbrtu
;
std
::
shared_ptr
<
ModbusRTUMaster
>
mbrtu
;
UniSetTypes
::
uniset_mutex
mbMutex
;
UniSetTypes
::
uniset_mutex
mbMutex
;
std
::
string
devname
;
std
::
string
devname
;
ComPort
::
Speed
defSpeed
;
ComPort
::
Speed
defSpeed
;
...
@@ -36,7 +36,7 @@ class RTUExchange:
...
@@ -36,7 +36,7 @@ class RTUExchange:
virtual
void
step
()
override
;
virtual
void
step
()
override
;
virtual
void
poll
()
override
;
virtual
void
poll
()
override
;
virtual
ModbusClient
*
initMB
(
bool
reopen
=
false
)
override
;
virtual
std
::
shared_ptr
<
ModbusClient
>
initMB
(
bool
reopen
=
false
)
override
;
virtual
bool
initDeviceInfo
(
RTUDeviceMap
&
m
,
ModbusRTU
::
ModbusAddr
a
,
UniXML_iterator
&
it
)
override
;
virtual
bool
initDeviceInfo
(
RTUDeviceMap
&
m
,
ModbusRTU
::
ModbusAddr
a
,
UniXML_iterator
&
it
)
override
;
private
:
private
:
...
...
extensions/ModbusMaster/RTUStorage.cc
View file @
bee92874
...
@@ -32,9 +32,8 @@ RTUStorage::~RTUStorage()
...
@@ -32,9 +32,8 @@ RTUStorage::~RTUStorage()
{
{
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
RTUStorage
::
poll
(
ModbusRTUMaster
*
mb
)
void
RTUStorage
::
poll
(
const
std
::
shared_ptr
<
ModbusRTUMaster
>
mb
)
throw
(
ModbusRTU
::
mbException
)
throw
(
ModbusRTU
::
mbException
)
{
{
try
try
{
{
...
...
extensions/ModbusMaster/RTUStorage.h
View file @
bee92874
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
#include <ostream>
#include <ostream>
#include <string>
#include <string>
#include <memory>
#include "modbus/ModbusTypes.h"
#include "modbus/ModbusTypes.h"
#include "UniSetTypes.h"
#include "UniSetTypes.h"
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -14,8 +15,8 @@ class RTUStorage
...
@@ -14,8 +15,8 @@ class RTUStorage
public
:
public
:
RTUStorage
(
ModbusRTU
::
ModbusAddr
addr
);
RTUStorage
(
ModbusRTU
::
ModbusAddr
addr
);
~
RTUStorage
();
~
RTUStorage
();
void
poll
(
ModbusRTUMaster
*
mb
)
void
poll
(
const
std
::
shared_ptr
<
ModbusRTUMaster
>
mb
)
throw
(
ModbusRTU
::
mbException
);
throw
(
ModbusRTU
::
mbException
);
inline
ModbusRTU
::
ModbusAddr
getAddress
(){
return
addr
;
}
inline
ModbusRTU
::
ModbusAddr
getAddress
(){
return
addr
;
}
...
@@ -25,7 +26,7 @@ class RTUStorage
...
@@ -25,7 +26,7 @@ class RTUStorage
inline
void
setPollDI
(
bool
set
){
pollDI
=
set
;
}
inline
void
setPollDI
(
bool
set
){
pollDI
=
set
;
}
inline
void
setPollDIO
(
bool
set
){
pollDIO
=
set
;
}
inline
void
setPollDIO
(
bool
set
){
pollDIO
=
set
;
}
inline
void
setPollUNIO
(
bool
set
){
pollUNIO
=
set
;
}
inline
void
setPollUNIO
(
bool
set
){
pollUNIO
=
set
;
}
enum
RTUJack
enum
RTUJack
{
{
nUnknown
,
nUnknown
,
...
@@ -37,18 +38,18 @@ class RTUStorage
...
@@ -37,18 +38,18 @@ class RTUStorage
nX4
,
// DI (8)
nX4
,
// DI (8)
nX5
// DI (8)
nX5
// DI (8)
};
};
static
RTUJack
s2j
(
const
std
::
string
&
jack
);
static
RTUJack
s2j
(
const
std
::
string
&
jack
);
static
std
::
string
j2s
(
RTUJack
j
);
static
std
::
string
j2s
(
RTUJack
j
);
long
getInt
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
long
getInt
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
float
getFloat
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
float
getFloat
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
bool
getState
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
bool
getState
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
static
ModbusRTU
::
ModbusData
getRegister
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
static
ModbusRTU
::
ModbusData
getRegister
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
static
ModbusRTU
::
SlaveFunctionCode
getFunction
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
static
ModbusRTU
::
SlaveFunctionCode
getFunction
(
RTUJack
jack
,
unsigned
short
channel
,
UniversalIO
::
IOType
t
);
// ДОДЕЛАТЬ: setState, setValue
// ДОДЕЛАТЬ: setState, setValue
void
print
();
void
print
();
...
...
extensions/ModbusMaster/rtustate.cc
View file @
bee92874
...
@@ -87,28 +87,28 @@ int main( int argc, char **argv )
...
@@ -87,28 +87,28 @@ int main( int argc, char **argv )
cout
<<
"(init): dev="
<<
dev
cout
<<
"(init): dev="
<<
dev
<<
" speed="
<<
speed
<<
" speed="
<<
speed
<<
" timeout="
<<
tout
<<
" msec "
<<
" timeout="
<<
tout
<<
" msec "
<<
endl
;
<<
endl
;
}
}
ModbusRTUMaster
mb
(
dev
,
use485
);
std
::
shared_ptr
<
ModbusRTUMaster
>
mb
=
std
::
make_shared
<
ModbusRTUMaster
>
(
dev
,
use485
);
if
(
verb
)
if
(
verb
)
dlog
.
addLevel
(
Debug
::
type
(
Debug
::
CRIT
|
Debug
::
WARN
|
Debug
::
INFO
)
);
dlog
.
addLevel
(
Debug
::
type
(
Debug
::
CRIT
|
Debug
::
WARN
|
Debug
::
INFO
)
);
mb
.
setTimeout
(
tout
);
mb
->
setTimeout
(
tout
);
mb
.
setSpeed
(
speed
);
mb
->
setSpeed
(
speed
);
mb
.
setLog
(
dlog
);
mb
->
setLog
(
dlog
);
RTUStorage
rtu
(
slaveaddr
);
RTUStorage
rtu
(
slaveaddr
);
rtu
.
poll
(
&
mb
);
rtu
.
poll
(
mb
);
cout
<<
rtu
<<
endl
;
cout
<<
rtu
<<
endl
;
for
(
unsigned
int
i
=
0
;
i
<
24
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
24
;
i
++
)
cout
<<
"UNIO1 AI"
<<
i
<<
": "
<<
rtu
.
getFloat
(
RTUStorage
::
nJ1
,
i
,
UniversalIO
::
AI
)
<<
endl
;
cout
<<
"UNIO1 AI"
<<
i
<<
": "
<<
rtu
.
getFloat
(
RTUStorage
::
nJ1
,
i
,
UniversalIO
::
AI
)
<<
endl
;
for
(
unsigned
int
i
=
0
;
i
<
24
;
i
++
)
for
(
unsigned
int
i
=
0
;
i
<
24
;
i
++
)
cout
<<
"UNIO1 DI"
<<
i
<<
": "
<<
rtu
.
getState
(
RTUStorage
::
nJ1
,
i
,
UniversalIO
::
DI
)
<<
endl
;
cout
<<
"UNIO1 DI"
<<
i
<<
": "
<<
rtu
.
getState
(
RTUStorage
::
nJ1
,
i
,
UniversalIO
::
DI
)
<<
endl
;
return
0
;
return
0
;
}
}
catch
(
ModbusRTU
::
mbException
&
ex
)
catch
(
ModbusRTU
::
mbException
&
ex
)
...
...
extensions/ModbusMaster/start_fg_mbtcpmulti.sh
View file @
bee92874
#!/bin/sh
#!/bin/sh
./uniset
2
-start.sh
-f
./uniset2-mbtcpmultimaster
\
./uniset-start.sh
-f
./uniset2-mbtcpmultimaster
\
--confile
test.xml
\
--confile
test.xml
\
--mbtcp-name
MBMultiMaster1
\
--mbtcp-name
MBMultiMaster1
\
--smemory-id
SharedMemory
\
--smemory-id
SharedMemory
\
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment