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
3db7758a
Commit
3db7758a
authored
Jan 09, 2015
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Немного подправил функции с передачей shared_ptr
(ModbusMaster): частично перевёл на использование shared_ptr
parent
d023710b
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
40 additions
and
46 deletions
+40
-46
MBExchange.cc
extensions/ModbusMaster/MBExchange.cc
+1
-0
MBTCPMaster.cc
extensions/ModbusMaster/MBTCPMaster.cc
+4
-4
tests_with_sm.cc
extensions/tests/tests_with_sm.cc
+1
-7
UInterface.h
include/UInterface.h
+1
-1
UniSetManager.h
include/UniSetManager.h
+4
-4
ModbusTCPCore.h
include/modbus/ModbusTCPCore.h
+2
-2
ModbusTCPMaster.h
include/modbus/ModbusTCPMaster.h
+2
-1
ModbusTCPCore.cc
src/Communications/Modbus/ModbusTCPCore.cc
+4
-4
ModbusTCPMaster.cc
src/Communications/Modbus/ModbusTCPMaster.cc
+11
-13
ModbusTCPServer.cc
src/Communications/Modbus/ModbusTCPServer.cc
+2
-2
ModbusTCPSession.cc
src/Communications/Modbus/ModbusTCPSession.cc
+2
-2
UniSetManager.cc
src/ObjectRepository/UniSetManager.cc
+6
-6
No files found.
extensions/ModbusMaster/MBExchange.cc
View file @
3db7758a
...
@@ -188,6 +188,7 @@ MBExchange::~MBExchange()
...
@@ -188,6 +188,7 @@ MBExchange::~MBExchange()
delete
it1
->
second
;
delete
it1
->
second
;
}
}
mb
.
reset
();
delete
shm
;
delete
shm
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
...
extensions/ModbusMaster/MBTCPMaster.cc
View file @
3db7758a
...
@@ -85,7 +85,7 @@ MBTCPMaster::~MBTCPMaster()
...
@@ -85,7 +85,7 @@ MBTCPMaster::~MBTCPMaster()
pollThread
->
join
();
pollThread
->
join
();
}
}
delete
pollThread
;
delete
pollThread
;
//delete mbtcp
;
mbtcp
.
reset
()
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
std
::
shared_ptr
<
ModbusClient
>
MBTCPMaster
::
initMB
(
bool
reopen
)
std
::
shared_ptr
<
ModbusClient
>
MBTCPMaster
::
initMB
(
bool
reopen
)
...
@@ -95,8 +95,8 @@ std::shared_ptr<ModbusClient> MBTCPMaster::initMB( bool reopen )
...
@@ -95,8 +95,8 @@ std::shared_ptr<ModbusClient> MBTCPMaster::initMB( bool reopen )
if
(
!
reopen
)
if
(
!
reopen
)
return
mbtcp
;
return
mbtcp
;
mbtcp
=
nullptr
;
mbtcp
.
reset
()
;
mb
=
nullptr
;
mb
.
reset
()
;
}
}
try
try
...
@@ -115,7 +115,7 @@ std::shared_ptr<ModbusClient> MBTCPMaster::initMB( bool reopen )
...
@@ -115,7 +115,7 @@ std::shared_ptr<ModbusClient> MBTCPMaster::initMB( bool reopen )
mbtcp
->
setAfterSendPause
(
aftersend_pause
);
mbtcp
->
setAfterSendPause
(
aftersend_pause
);
dinfo
<<
myname
<<
"(init): ipaddr="
<<
iaddr
<<
" port="
<<
port
<<
endl
;
dinfo
<<
myname
<<
"(init): ipaddr="
<<
iaddr
<<
" port="
<<
port
<<
endl
;
if
(
dlog
.
is_level9
()
)
if
(
dlog
.
is_level9
()
)
mbtcp
->
setLog
(
dlog
);
mbtcp
->
setLog
(
dlog
);
...
...
extensions/tests/tests_with_sm.cc
View file @
3db7758a
...
@@ -62,13 +62,7 @@ int main(int argc, char* argv[] )
...
@@ -62,13 +62,7 @@ int main(int argc, char* argv[] )
try
try
{
{
auto
conf
=
uniset_init
(
argc
,
argv
);
auto
conf
=
uniset_init
(
argc
,
argv
);
/*
conf->initDebug(dlog,"dlog");
string logfilename = conf->getArgParam("--logfile", "smemory.log");
string logname( conf->getLogDir() + logfilename );
ulog.logFile( logname );
dlog.logFile( logname );
*/
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
if
(
!
shm
)
if
(
!
shm
)
return
1
;
return
1
;
...
...
include/UInterface.h
View file @
3db7758a
...
@@ -269,7 +269,7 @@ class UInterface
...
@@ -269,7 +269,7 @@ class UInterface
struct
Info
struct
Info
{
{
Info
(
UniSetTypes
::
ObjectVar
ptr
)
:
ptr
(
ptr
),
ncall
(
0
){}
Info
(
const
UniSetTypes
::
ObjectVar
&
ptr
)
:
ptr
(
ptr
),
ncall
(
0
){}
Info
()
:
ptr
(
NULL
),
ncall
(
0
){}
Info
()
:
ptr
(
NULL
),
ncall
(
0
){}
UniSetTypes
::
ObjectVar
ptr
;
UniSetTypes
::
ObjectVar
ptr
;
...
...
include/UniSetManager.h
View file @
3db7758a
...
@@ -74,11 +74,11 @@ class UniSetManager:
...
@@ -74,11 +74,11 @@ class UniSetManager:
// --------------------------
// --------------------------
void
initPOA
(
UniSetManager
*
rmngr
);
void
initPOA
(
UniSetManager
*
rmngr
);
virtual
bool
addObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
);
virtual
bool
addObject
(
const
std
::
shared_ptr
<
UniSetObject
>&
obj
);
virtual
bool
removeObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
);
virtual
bool
removeObject
(
const
std
::
shared_ptr
<
UniSetObject
>&
obj
);
virtual
bool
addManager
(
std
::
shared_ptr
<
UniSetManager
>
mngr
);
virtual
bool
addManager
(
const
std
::
shared_ptr
<
UniSetManager
>&
mngr
);
virtual
bool
removeManager
(
std
::
shared_ptr
<
UniSetManager
>
mngr
);
virtual
bool
removeManager
(
const
std
::
shared_ptr
<
UniSetManager
>&
mngr
);
/*! Получение доступа к подчиненному менеджеру по идентификатору
/*! Получение доступа к подчиненному менеджеру по идентификатору
* \return объект ненайден будет возвращен 0.
* \return объект ненайден будет возвращен 0.
...
...
include/modbus/ModbusTCPCore.h
View file @
3db7758a
...
@@ -10,8 +10,8 @@
...
@@ -10,8 +10,8 @@
namespace
ModbusTCPCore
namespace
ModbusTCPCore
{
{
int
readNextData
(
ost
::
TCPStream
*
tcp
,
std
::
queue
<
unsigned
char
>&
qrecv
,
int
max
=
100
);
int
readNextData
(
ost
::
TCPStream
*
tcp
,
std
::
queue
<
unsigned
char
>&
qrecv
,
int
max
=
100
);
int
getNextData
(
unsigned
char
*
buf
,
int
len
,
std
::
queue
<
unsigned
char
>&
qrecv
,
ost
::
TCPStream
*
tcp
);
int
getNextData
(
ost
::
TCPStream
*
tcp
,
std
::
queue
<
unsigned
char
>&
qrecv
,
unsigned
char
*
buf
,
int
len
);
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
,
ost
::
TCPStream
*
tcp
);
ModbusRTU
::
mbErrCode
sendData
(
ost
::
TCPStream
*
tcp
,
unsigned
char
*
buf
,
int
len
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
#endif // ModbusTCPCore_H_
#endif // ModbusTCPCore_H_
...
...
include/modbus/ModbusTCPMaster.h
View file @
3db7758a
#ifndef ModbusTCPMaster_H_
#ifndef ModbusTCPMaster_H_
#define ModbusTCPMaster_H_
#define ModbusTCPMaster_H_
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
#include <memory>
#include <string>
#include <string>
#include <queue>
#include <queue>
#include <cc++/socket.h>
#include <cc++/socket.h>
...
@@ -44,7 +45,7 @@ class ModbusTCPMaster:
...
@@ -44,7 +45,7 @@ class ModbusTCPMaster:
private
:
private
:
//ost::TCPStream* tcp;
//ost::TCPStream* tcp;
UTCPStream
*
tcp
;
std
::
shared_ptr
<
UTCPStream
>
tcp
;
ModbusRTU
::
ModbusData
nTransaction
;
ModbusRTU
::
ModbusData
nTransaction
;
std
::
queue
<
unsigned
char
>
qrecv
;
std
::
queue
<
unsigned
char
>
qrecv
;
PassiveTimer
ptTimeout
;
PassiveTimer
ptTimeout
;
...
...
src/Communications/Modbus/ModbusTCPCore.cc
View file @
3db7758a
...
@@ -22,10 +22,10 @@ int ModbusTCPCore::readNextData( ost::TCPStream* tcp,
...
@@ -22,10 +22,10 @@ int ModbusTCPCore::readNextData( ost::TCPStream* tcp,
return
i
;
return
i
;
}
}
// ------------------------------------------------------------------------
-
// ------------------------------------------------------------------------
int
ModbusTCPCore
::
getNextData
(
unsigned
char
*
buf
,
int
len
,
int
ModbusTCPCore
::
getNextData
(
ost
::
TCPStream
*
tcp
,
std
::
queue
<
unsigned
char
>&
qrecv
,
std
::
queue
<
unsigned
char
>&
qrecv
,
ost
::
TCPStream
*
tcp
)
unsigned
char
*
buf
,
int
len
)
{
{
if
(
!
tcp
||
!
tcp
->
isConnected
()
)
if
(
!
tcp
||
!
tcp
->
isConnected
()
)
return
0
;
return
0
;
...
@@ -51,7 +51,7 @@ int ModbusTCPCore::getNextData( unsigned char* buf, int len,
...
@@ -51,7 +51,7 @@ int ModbusTCPCore::getNextData( unsigned char* buf, int len,
return
i
;
return
i
;
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusTCPCore
::
sendData
(
unsigned
char
*
buf
,
int
len
,
ost
::
TCPStream
*
tcp
)
mbErrCode
ModbusTCPCore
::
sendData
(
ost
::
TCPStream
*
tcp
,
unsigned
char
*
buf
,
int
len
)
{
{
if
(
!
tcp
||
!
tcp
->
isConnected
()
)
if
(
!
tcp
||
!
tcp
->
isConnected
()
)
return
erTimeOut
;
return
erTimeOut
;
...
...
src/Communications/Modbus/ModbusTCPMaster.cc
View file @
3db7758a
...
@@ -11,7 +11,7 @@ using namespace ModbusRTU;
...
@@ -11,7 +11,7 @@ using namespace ModbusRTU;
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
ModbusTCPMaster
::
ModbusTCPMaster
()
:
ModbusTCPMaster
::
ModbusTCPMaster
()
:
tcp
(
0
),
tcp
(
nullptr
),
nTransaction
(
0
),
nTransaction
(
0
),
iaddr
(
""
),
iaddr
(
""
),
force_disconnect
(
true
)
force_disconnect
(
true
)
...
@@ -29,11 +29,13 @@ ModbusTCPMaster::~ModbusTCPMaster()
...
@@ -29,11 +29,13 @@ ModbusTCPMaster::~ModbusTCPMaster()
{
{
if
(
isConnection
()
)
if
(
isConnection
()
)
disconnect
();
disconnect
();
tcp
.
reset
();
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
int
ModbusTCPMaster
::
getNextData
(
unsigned
char
*
buf
,
int
len
)
int
ModbusTCPMaster
::
getNextData
(
unsigned
char
*
buf
,
int
len
)
{
{
return
ModbusTCPCore
::
getNextData
(
buf
,
len
,
qrecv
,
tcp
);
return
ModbusTCPCore
::
getNextData
(
tcp
.
get
(),
qrecv
,
buf
,
len
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
ModbusTCPMaster
::
setChannelTimeout
(
timeout_t
msec
)
void
ModbusTCPMaster
::
setChannelTimeout
(
timeout_t
msec
)
...
@@ -44,7 +46,7 @@ void ModbusTCPMaster::setChannelTimeout( timeout_t msec )
...
@@ -44,7 +46,7 @@ void ModbusTCPMaster::setChannelTimeout( timeout_t msec )
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusTCPMaster
::
sendData
(
unsigned
char
*
buf
,
int
len
)
mbErrCode
ModbusTCPMaster
::
sendData
(
unsigned
char
*
buf
,
int
len
)
{
{
return
ModbusTCPCore
::
sendData
(
buf
,
len
,
tcp
);
return
ModbusTCPCore
::
sendData
(
tcp
.
get
(),
buf
,
len
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusTCPMaster
::
query
(
ModbusAddr
addr
,
ModbusMessage
&
msg
,
mbErrCode
ModbusTCPMaster
::
query
(
ModbusAddr
addr
,
ModbusMessage
&
msg
,
...
@@ -300,15 +302,13 @@ void ModbusTCPMaster::reconnect()
...
@@ -300,15 +302,13 @@ void ModbusTCPMaster::reconnect()
if
(
tcp
)
if
(
tcp
)
{
{
tcp
->
disconnect
();
tcp
->
disconnect
();
delete
tcp
;
tcp
.
reset
();
tcp
=
0
;
}
}
try
try
{
{
tcp
=
new
UTCPStream
();
tcp
=
make_shared
<
UTCPStream
>
();
tcp
->
create
(
iaddr
,
port
,
true
,
500
);
tcp
->
create
(
iaddr
,
port
,
true
,
500
);
tcp
->
setTimeout
(
replyTimeOut_ms
);
tcp
->
setTimeout
(
replyTimeOut_ms
);
}
}
catch
(
std
::
exception
&
e
)
catch
(
std
::
exception
&
e
)
...
@@ -342,8 +342,7 @@ void ModbusTCPMaster::connect( ost::InetAddress addr, int _port )
...
@@ -342,8 +342,7 @@ void ModbusTCPMaster::connect( ost::InetAddress addr, int _port )
if
(
tcp
)
if
(
tcp
)
{
{
disconnect
();
disconnect
();
delete
tcp
;
tcp
.
reset
();
tcp
=
0
;
}
}
// if( !tcp )
// if( !tcp )
...
@@ -360,7 +359,7 @@ void ModbusTCPMaster::connect( ost::InetAddress addr, int _port )
...
@@ -360,7 +359,7 @@ void ModbusTCPMaster::connect( ost::InetAddress addr, int _port )
ost
::
Thread
::
setException
(
ost
::
Thread
::
throwException
);
ost
::
Thread
::
setException
(
ost
::
Thread
::
throwException
);
try
try
{
{
tcp
=
new
UTCPStream
();
tcp
=
make_shared
<
UTCPStream
>
();
tcp
->
create
(
iaddr
,
port
,
true
,
500
);
tcp
->
create
(
iaddr
,
port
,
true
,
500
);
tcp
->
setTimeout
(
replyTimeOut_ms
);
tcp
->
setTimeout
(
replyTimeOut_ms
);
}
}
...
@@ -394,8 +393,7 @@ void ModbusTCPMaster::disconnect()
...
@@ -394,8 +393,7 @@ void ModbusTCPMaster::disconnect()
return
;
return
;
tcp
->
disconnect
();
tcp
->
disconnect
();
delete
tcp
;
tcp
.
reset
();
tcp
=
0
;
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
bool
ModbusTCPMaster
::
isConnection
()
bool
ModbusTCPMaster
::
isConnection
()
...
...
src/Communications/Modbus/ModbusTCPServer.cc
View file @
3db7758a
...
@@ -265,12 +265,12 @@ void ModbusTCPServer::setChannelTimeout( timeout_t msec )
...
@@ -265,12 +265,12 @@ void ModbusTCPServer::setChannelTimeout( timeout_t msec )
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
mbErrCode
ModbusTCPServer
::
sendData
(
unsigned
char
*
buf
,
int
len
)
mbErrCode
ModbusTCPServer
::
sendData
(
unsigned
char
*
buf
,
int
len
)
{
{
return
ModbusTCPCore
::
sendData
(
buf
,
len
,
&
tcp
);
return
ModbusTCPCore
::
sendData
(
&
tcp
,
buf
,
len
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
int
ModbusTCPServer
::
getNextData
(
unsigned
char
*
buf
,
int
len
)
int
ModbusTCPServer
::
getNextData
(
unsigned
char
*
buf
,
int
len
)
{
{
return
ModbusTCPCore
::
getNextData
(
buf
,
len
,
qrecv
,
&
tcp
);
return
ModbusTCPCore
::
getNextData
(
&
tcp
,
qrecv
,
buf
,
len
);
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
...
...
src/Communications/Modbus/ModbusTCPSession.cc
View file @
3db7758a
...
@@ -174,12 +174,12 @@ void ModbusTCPSession::final()
...
@@ -174,12 +174,12 @@ void ModbusTCPSession::final()
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusTCPSession
::
sendData
(
unsigned
char
*
buf
,
int
len
)
mbErrCode
ModbusTCPSession
::
sendData
(
unsigned
char
*
buf
,
int
len
)
{
{
return
ModbusTCPCore
::
sendData
(
buf
,
len
,
this
);
return
ModbusTCPCore
::
sendData
(
this
,
buf
,
len
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
int
ModbusTCPSession
::
getNextData
(
unsigned
char
*
buf
,
int
len
)
int
ModbusTCPSession
::
getNextData
(
unsigned
char
*
buf
,
int
len
)
{
{
return
ModbusTCPCore
::
getNextData
(
buf
,
len
,
qrecv
,
this
);
return
ModbusTCPCore
::
getNextData
(
this
,
qrecv
,
buf
,
len
);
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
...
...
src/ObjectRepository/UniSetManager.cc
View file @
3db7758a
...
@@ -175,7 +175,7 @@ void UniSetManager::initPOA( UniSetManager* rmngr )
...
@@ -175,7 +175,7 @@ void UniSetManager::initPOA( UniSetManager* rmngr )
managers
(
initial
);
managers
(
initial
);
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
addObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
)
bool
UniSetManager
::
addObject
(
const
std
::
shared_ptr
<
UniSetObject
>&
obj
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
olistMutex
);
uniset_rwmutex_wrlock
lock
(
olistMutex
);
...
@@ -190,7 +190,7 @@ bool UniSetManager::addObject( std::shared_ptr<UniSetObject> obj )
...
@@ -190,7 +190,7 @@ bool UniSetManager::addObject( std::shared_ptr<UniSetObject> obj )
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
removeObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
)
bool
UniSetManager
::
removeObject
(
const
std
::
shared_ptr
<
UniSetObject
>&
obj
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
olistMutex
);
uniset_rwmutex_wrlock
lock
(
olistMutex
);
...
@@ -420,7 +420,7 @@ void UniSetManager::broadcast(const TransportMessage& msg)
...
@@ -420,7 +420,7 @@ void UniSetManager::broadcast(const TransportMessage& msg)
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
addManager
(
std
::
shared_ptr
<
UniSetManager
>
child
)
bool
UniSetManager
::
addManager
(
const
std
::
shared_ptr
<
UniSetManager
>&
child
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
...
@@ -440,7 +440,7 @@ bool UniSetManager::addManager( std::shared_ptr<UniSetManager> child )
...
@@ -440,7 +440,7 @@ bool UniSetManager::addManager( std::shared_ptr<UniSetManager> child )
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
removeManager
(
std
::
shared_ptr
<
UniSetManager
>
child
)
bool
UniSetManager
::
removeManager
(
const
std
::
shared_ptr
<
UniSetManager
>&
child
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
...
@@ -464,7 +464,7 @@ const std::shared_ptr<UniSetManager> UniSetManager::itemM( const ObjectId id )
...
@@ -464,7 +464,7 @@ const std::shared_ptr<UniSetManager> UniSetManager::itemM( const ObjectId id )
}
}
}
// unlock
}
// unlock
return
0
;
return
nullptr
;
// std::shared_ptr<UniSetManager>()
;
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
...
@@ -480,7 +480,7 @@ const std::shared_ptr<UniSetObject> UniSetManager::itemO( const ObjectId id )
...
@@ -480,7 +480,7 @@ const std::shared_ptr<UniSetObject> UniSetManager::itemO( const ObjectId id )
}
}
}
// unlock
}
// unlock
return
std
::
shared_ptr
<
UniSetObject
>
();
return
nullptr
;
//
std::shared_ptr<UniSetObject>();
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
...
...
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