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
3db9b2c6
Commit
3db9b2c6
authored
Aug 05, 2009
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use timeout_t for time variable, use clock_t for save ticks
use UniSetTimer::MinQuantityTime instead UniSetTimer::MIN_QUANTITY_TIME_MS
parent
9f93e031
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
157 additions
and
157 deletions
+157
-157
TimerService_i.idl
IDL/Services/TimerService_i.idl
+3
-3
MBSlave.h
extensions/ModbusSlave/MBSlave.h
+1
-1
IONotifyController_LT.h
include/IONotifyController_LT.h
+2
-2
LT_Object.h
include/LT_Object.h
+6
-6
ObjectsManager_LT.h
include/ObjectsManager_LT.h
+1
-1
PassiveTimer.h
include/PassiveTimer.h
+29
-19
TimerService.h
include/TimerService.h
+1
-1
UniSetObject.h
include/UniSetObject.h
+1
-1
UniSetObject_LT.h
include/UniSetObject_LT.h
+2
-2
ModbusClient.h
include/modbus/ModbusClient.h
+10
-10
ModbusRTUMaster.h
include/modbus/ModbusRTUMaster.h
+2
-2
ModbusRTUSlave.h
include/modbus/ModbusRTUSlave.h
+2
-2
ModbusServer.h
include/modbus/ModbusServer.h
+10
-10
ModbusTCPMaster.h
include/modbus/ModbusTCPMaster.h
+2
-2
ModbusTCPServer.h
include/modbus/ModbusTCPServer.h
+2
-2
ModbusClient.cc
src/Communications/Modbus/ModbusClient.cc
+9
-9
ModbusRTUMaster.cc
src/Communications/Modbus/ModbusRTUMaster.cc
+2
-2
ModbusRTUSlave.cc
src/Communications/Modbus/ModbusRTUSlave.cc
+2
-2
ModbusServer.cc
src/Communications/Modbus/ModbusServer.cc
+14
-11
ModbusTCPMaster.cc
src/Communications/Modbus/ModbusTCPMaster.cc
+7
-12
ModbusTCPServer.cc
src/Communications/Modbus/ModbusTCPServer.cc
+15
-16
ObjectsManager_LT.cc
src/ObjectRepository/ObjectsManager_LT.cc
+1
-1
UniSetObject_LT.cc
src/ObjectRepository/UniSetObject_LT.cc
+1
-1
IONotifyController_LT.cc
src/Processes/IONotifyController_LT.cc
+1
-1
TimerService.cc
src/Services/TimerService.cc
+6
-6
PassiveSysTimer.cc
src/Timers/PassiveSysTimer.cc
+1
-1
PassiveTimer.cc
src/Timers/PassiveTimer.cc
+1
-1
ThrPassiveTimer.cc
src/Timers/ThrPassiveTimer.cc
+5
-8
WaitingPassiveTimer.cc
src/Timers/WaitingPassiveTimer.cc
+2
-2
LT_Object.cc
src/Various/LT_Object.cc
+16
-20
No files found.
IDL/Services/TimerService_i.idl
View file @
3db9b2c6
...
@@ -54,7 +54,7 @@ interface TimerService_i: UniSetObject_i
...
@@ -54,7 +54,7 @@ interface TimerService_i: UniSetObject_i
*/
*/
exception
TimeMSLowLimit
exception
TimeMSLowLimit
{
{
long
lowLimitMS
;
unsigned
long
lowLimitMS
; // instead timeout_t
}
;
}
;
...
@@ -62,8 +62,8 @@ interface TimerService_i: UniSetObject_i
...
@@ -62,8 +62,8 @@ interface TimerService_i: UniSetObject_i
struct
Timer
struct
Timer
{
{
UniSetTypes
::
TimerId
timerid
;
UniSetTypes
::
TimerId
timerid
;
long
timeMS
;
unsigned
long
timeMS
;
short
ticks
;
long
ticks
; // instead clock_t
short
msgPriority
;
short
msgPriority
;
}
;
}
;
...
...
extensions/ModbusSlave/MBSlave.h
View file @
3db9b2c6
...
@@ -174,7 +174,7 @@ class MBSlave:
...
@@ -174,7 +174,7 @@ class MBSlave:
bool
activated
;
bool
activated
;
int
activateTimeout
;
int
activateTimeout
;
bool
pingOK
;
bool
pingOK
;
in
t
wait_msec
;
timeout_
t
wait_msec
;
bool
force
;
/*!< , SM, */
bool
force
;
/*!< , SM, */
bool
mbregFromID
;
bool
mbregFromID
;
...
...
include/IONotifyController_LT.h
View file @
3db9b2c6
...
@@ -51,13 +51,13 @@ class IONotifyController_LT:
...
@@ -51,13 +51,13 @@ class IONotifyController_LT:
\return []
\return []
*/
*/
void
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
short
ticks
=-
1
,
void
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
short
ticks
=-
1
,
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
/*! */
/*! */
virtual
void
callback
();
virtual
void
callback
();
in
t
sleepTime
;
timeout_
t
sleepTime
;
LT_Object
lt
;
LT_Object
lt
;
private
:
private
:
...
...
include/LT_Object.h
View file @
3db9b2c6
...
@@ -110,7 +110,7 @@ class LT_Object
...
@@ -110,7 +110,7 @@ class LT_Object
\return []
\return []
*/
*/
int
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
shor
t
ticks
=-
1
,
timeout_t
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
clock_
t
ticks
=-
1
,
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
...
@@ -120,10 +120,10 @@ class LT_Object
...
@@ -120,10 +120,10 @@ class LT_Object
\return []
\return []
*/
*/
in
t
checkTimers
(
UniSetObject
*
obj
);
timeout_
t
checkTimers
(
UniSetObject
*
obj
);
/*! */
/*! */
inline
in
t
getSleepTimeMS
(){
return
sleepTime
;
}
//inline timeout_
t getSleepTimeMS(){ return sleepTime; }
protected
:
protected
:
...
@@ -131,7 +131,7 @@ class LT_Object
...
@@ -131,7 +131,7 @@ class LT_Object
struct
TimerInfo
struct
TimerInfo
{
{
TimerInfo
()
:
id
(
0
),
curTimeMS
(
0
),
priority
(
UniSetTypes
::
Message
::
High
){};
TimerInfo
()
:
id
(
0
),
curTimeMS
(
0
),
priority
(
UniSetTypes
::
Message
::
High
){};
TimerInfo
(
UniSetTypes
::
TimerId
id
,
long
timeMS
,
short
cnt
,
UniSetTypes
::
Message
::
Priority
p
)
:
TimerInfo
(
UniSetTypes
::
TimerId
id
,
timeout_t
timeMS
,
short
cnt
,
UniSetTypes
::
Message
::
Priority
p
)
:
id
(
id
),
id
(
id
),
curTimeMS
(
timeMS
),
curTimeMS
(
timeMS
),
priority
(
p
),
priority
(
p
),
...
@@ -147,14 +147,14 @@ class LT_Object
...
@@ -147,14 +147,14 @@ class LT_Object
}
}
UniSetTypes
::
TimerId
id
;
/*!< */
UniSetTypes
::
TimerId
id
;
/*!< */
in
t
curTimeMS
;
/*!< */
timeout_
t
curTimeMS
;
/*!< */
UniSetTypes
::
Message
::
Priority
priority
;
/*!< */
UniSetTypes
::
Message
::
Priority
priority
;
/*!< */
/*!
/*!
*
*
* \note -1
* \note -1
*/
*/
shor
t
curTick
;
clock_
t
curTick
;
//
//
bool
operator
<
(
const
TimerInfo
&
ti
)
const
bool
operator
<
(
const
TimerInfo
&
ti
)
const
...
...
include/ObjectsManager_LT.h
View file @
3db9b2c6
...
@@ -51,7 +51,7 @@ class ObjectsManager_LT:
...
@@ -51,7 +51,7 @@ class ObjectsManager_LT:
\return []
\return []
*/
*/
void
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
short
ticks
=-
1
,
void
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
short
ticks
=-
1
,
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
/*! */
/*! */
...
...
include/PassiveTimer.h
View file @
3db9b2c6
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
#include <signal.h>
#include <signal.h>
#include <sys/time.h>
#include <sys/time.h>
#include <cc++/socket.h>
//#include "Exceptions.h"
//#include "Exceptions.h"
...
@@ -44,26 +45,34 @@ class UniSetTimer
...
@@ -44,26 +45,34 @@ class UniSetTimer
virtual
~
UniSetTimer
(){};
virtual
~
UniSetTimer
(){};
virtual
bool
checkTime
()
=
0
;
/*!< */
virtual
bool
checkTime
()
=
0
;
/*!< */
virtual
void
setTiming
(
in
t
timeMS
)
=
0
;
/*!< */
virtual
timeout_t
setTiming
(
timeout_
t
timeMS
)
=
0
;
/*!< */
virtual
void
reset
()
=
0
;
/*!< */
virtual
void
reset
()
=
0
;
/*!< */
virtual
int
getCurrent
()
=
0
;
/*!< */
virtual
timeout_t
getCurrent
()
=
0
;
/*!< */
virtual
int
getInterval
()
=
0
;
/*!< , , */
virtual
timeout_t
getInterval
()
=
0
;
/*!< , , */
timeout_t
getLeft
(
timeout_t
timeout
)
/*< , timeout getCurrent() */
{
timeout_t
ct
=
getCurrent
();
if
(
timeout
<=
ct
)
return
0
;
return
timeout
-
ct
;
}
// ..
// ..
//
//
// .
// .
virtual
int
wait
(
in
t
timeMS
){
return
0
;}
/*!< */
virtual
bool
wait
(
timeout_
t
timeMS
){
return
0
;}
/*!< */
virtual
void
terminate
(){}
/*!< */
virtual
void
terminate
(){}
/*!< */
virtual
void
stop
(){
terminate
();
};
/*!< */
virtual
void
stop
(){
terminate
();
};
/*!< */
/*! ,
/*! ,
* terminate() stop()
* terminate() stop()
*/
*/
static
const
int
WaitUpTime
=
-
1
;
static
const
timeout_t
WaitUpTime
=
TIMEOUT_INF
;
/*! . . */
/*! . . */
static
const
int
MIN_QUANTITY_TIME_MS
=
30
;
static
const
timeout_t
MinQuantityTime
=
30
;
static
const
timeout_t
MIN_QUANTITY_TIME_MS
=
30
;
/*< , ! */
};
};
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
/*! \class PassiveTimer
/*! \class PassiveTimer
...
@@ -82,15 +91,15 @@ class PassiveTimer:
...
@@ -82,15 +91,15 @@ class PassiveTimer:
{
{
public
:
public
:
PassiveTimer
();
PassiveTimer
();
PassiveTimer
(
in
t
timeMS
);
/*!< */
PassiveTimer
(
timeout_
t
timeMS
);
/*!< */
virtual
bool
checkTime
();
/*!< */
virtual
bool
checkTime
();
/*!< */
virtual
void
setTiming
(
in
t
timeMS
);
/*!< */
virtual
timeout_t
setTiming
(
timeout_
t
timeMS
);
/*!< */
virtual
void
reset
();
/*!< */
virtual
void
reset
();
/*!< */
virtual
in
t
getCurrent
();
/*!< , */
virtual
timeout_
t
getCurrent
();
/*!< , */
virtual
in
t
getInterval
()
/*!< , , */
virtual
timeout_
t
getInterval
()
/*!< , , */
{
{
return
timeSS
*
10
;
return
timeSS
*
10
;
}
}
...
@@ -98,11 +107,12 @@ public:
...
@@ -98,11 +107,12 @@ public:
virtual
void
terminate
();
/*!< */
virtual
void
terminate
();
/*!< */
protected
:
protected
:
in
t
timeAct
;
/*!< , */
clock_
t
timeAct
;
/*!< , */
in
t
timeSS
;
/*!< , */
timeout_
t
timeSS
;
/*!< , */
in
t
timeStart
;
/*!< () */
clock_
t
timeStart
;
/*!< () */
private
:
private
:
int
clock_ticks
;
// CLK_TCK
clock_t
clock_ticks
;
//
clock_t
times
();
//
};
};
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
...
@@ -115,7 +125,7 @@ class omni_condition;
...
@@ -115,7 +125,7 @@ class omni_condition;
* \date $Date: 2007/08/02 22:52:27 $
* \date $Date: 2007/08/02 22:52:27 $
* \version $Id: PassiveTimer.h,v 1.9 2007/08/02 22:52:27 vpashka Exp $
* \version $Id: PassiveTimer.h,v 1.9 2007/08/02 22:52:27 vpashka Exp $
* \par
* \par
* wait(
in
t timeMS).
* wait(
timeout_
t timeMS).
* (mutex condition).
* (mutex condition).
* \note (WaitUpTime),
* \note (WaitUpTime),
* terminate().
* terminate().
...
@@ -128,7 +138,7 @@ class ThrPassiveTimer:
...
@@ -128,7 +138,7 @@ class ThrPassiveTimer:
ThrPassiveTimer
();
ThrPassiveTimer
();
~
ThrPassiveTimer
();
~
ThrPassiveTimer
();
virtual
int
wait
(
in
t
timeMS
);
/*!< */
virtual
bool
wait
(
timeout_
t
timeMS
);
/*!< */
virtual
void
terminate
();
/*!< */
virtual
void
terminate
();
/*!< */
protected
:
protected
:
private
:
private
:
...
@@ -154,13 +164,13 @@ class PassiveSysTimer:
...
@@ -154,13 +164,13 @@ class PassiveSysTimer:
PassiveSysTimer
();
PassiveSysTimer
();
~
PassiveSysTimer
();
~
PassiveSysTimer
();
virtual
int
wait
(
in
t
timeMS
);
//throw(UniSetTypes::NotSetSignal);
virtual
bool
wait
(
timeout_
t
timeMS
);
//throw(UniSetTypes::NotSetSignal);
virtual
void
terminate
();
virtual
void
terminate
();
protected
:
protected
:
private
:
private
:
struct
itimerval
mtimer
;
struct
itimerval
mtimer
;
pid_t
pid
;
pid_t
pid
;
// bool terminated;
// bool terminated;
...
...
include/TimerService.h
View file @
3db9b2c6
...
@@ -139,7 +139,7 @@ class TimerService:
...
@@ -139,7 +139,7 @@ class TimerService:
UniSetTypes
::
ConsumerInfo
cinf
;
/*!< */
UniSetTypes
::
ConsumerInfo
cinf
;
/*!< */
UniSetObject_i_var
ref
;
/*!< */
UniSetObject_i_var
ref
;
/*!< */
UniSetTypes
::
TimerId
id
;
/*!< */
UniSetTypes
::
TimerId
id
;
/*!< */
in
t
curTimeMS
;
/*!< */
timeout_
t
curTimeMS
;
/*!< */
UniSetTypes
::
Message
::
Priority
priority
;
/*!< */
UniSetTypes
::
Message
::
Priority
priority
;
/*!< */
/*!
/*!
...
...
include/UniSetObject.h
View file @
3db9b2c6
...
@@ -132,7 +132,7 @@ class UniSetObject:
...
@@ -132,7 +132,7 @@ class UniSetObject:
inline
void
terminate
(){
disactivate
();
}
inline
void
terminate
(){
disactivate
();
}
/*! timeMS */
/*! timeMS */
virtual
bool
waitMessage
(
UniSetTypes
::
VoidMessage
&
msg
,
int
timeMS
=
UniSetTimer
::
WaitUpTime
);
virtual
bool
waitMessage
(
UniSetTypes
::
VoidMessage
&
msg
,
timeout_t
timeMS
=
UniSetTimer
::
WaitUpTime
);
void
setID
(
UniSetTypes
::
ObjectId
id
);
void
setID
(
UniSetTypes
::
ObjectId
id
);
...
...
include/UniSetObject_LT.h
View file @
3db9b2c6
...
@@ -51,13 +51,13 @@ class UniSetObject_LT:
...
@@ -51,13 +51,13 @@ class UniSetObject_LT:
\return []
\return []
*/
*/
void
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
short
ticks
=-
1
,
void
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
short
ticks
=-
1
,
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
UniSetTypes
::
Message
::
Priority
p
=
UniSetTypes
::
Message
::
High
);
/*! */
/*! */
virtual
void
callback
();
virtual
void
callback
();
in
t
sleepTime
;
timeout_
t
sleepTime
;
LT_Object
lt
;
LT_Object
lt
;
private
:
private
:
};
};
...
...
include/modbus/ModbusClient.h
View file @
3db9b2c6
...
@@ -107,7 +107,7 @@ class ModbusClient
...
@@ -107,7 +107,7 @@ class ModbusClient
\param part_timeout_msec - .
\param part_timeout_msec - .
*/
*/
ModbusRTU
::
FileTransferRetMessage
partOfFileTransfer
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusData
idFile
,
ModbusRTU
::
FileTransferRetMessage
partOfFileTransfer
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusData
idFile
,
ModbusRTU
::
ModbusData
numpack
,
in
t
part_timeout_msec
=
2000
)
ModbusRTU
::
ModbusData
numpack
,
timeout_
t
part_timeout_msec
=
2000
)
throw
(
ModbusRTU
::
mbException
);
throw
(
ModbusRTU
::
mbException
);
/*!
/*!
...
@@ -116,17 +116,17 @@ class ModbusClient
...
@@ -116,17 +116,17 @@ class ModbusClient
\param part_timeout_msec - .
\param part_timeout_msec - .
*/
*/
void
fileTransfer
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusData
idFile
,
void
fileTransfer
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusData
idFile
,
const
char
*
save2filename
,
in
t
part_timeout_msec
=
2000
)
const
char
*
save2filename
,
timeout_
t
part_timeout_msec
=
2000
)
throw
(
ModbusRTU
::
mbException
);
throw
(
ModbusRTU
::
mbException
);
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
/*! */
/*! */
void
setTimeout
(
in
t
msec
);
void
setTimeout
(
timeout_
t
msec
);
/*!
/*!
\return
\return
*/
*/
int
setAfterSendPause
(
in
t
msec
);
int
setAfterSendPause
(
timeout_
t
msec
);
void
initLog
(
UniSetTypes
::
Configuration
*
conf
,
const
std
::
string
name
,
const
std
::
string
logfile
=
""
);
void
initLog
(
UniSetTypes
::
Configuration
*
conf
,
const
std
::
string
name
,
const
std
::
string
logfile
=
""
);
void
setLog
(
DebugStream
&
dlog
);
void
setLog
(
DebugStream
&
dlog
);
...
@@ -146,13 +146,13 @@ class ModbusClient
...
@@ -146,13 +146,13 @@ class ModbusClient
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
)
=
0
;
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
)
=
0
;
/*! set timeout for send/receive data */
/*! set timeout for send/receive data */
virtual
void
setChannelTimeout
(
in
t
msec
)
=
0
;
virtual
void
setChannelTimeout
(
timeout_
t
msec
)
=
0
;
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
)
=
0
;
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
)
=
0
;
/*! - */
/*! - */
virtual
ModbusRTU
::
mbErrCode
query
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
msg
,
virtual
ModbusRTU
::
mbErrCode
query
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
msg
,
ModbusRTU
::
ModbusMessage
&
reply
,
in
t
timeout
)
=
0
;
ModbusRTU
::
ModbusMessage
&
reply
,
timeout_
t
timeout
)
=
0
;
// -------------------------------------
// -------------------------------------
/*! */
/*! */
...
@@ -160,18 +160,18 @@ class ModbusClient
...
@@ -160,18 +160,18 @@ class ModbusClient
/*! */
/*! */
virtual
ModbusRTU
::
mbErrCode
recv
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusByte
qfunc
,
virtual
ModbusRTU
::
mbErrCode
recv
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusByte
qfunc
,
ModbusRTU
::
ModbusMessage
&
rbuf
,
in
t
timeout
);
ModbusRTU
::
ModbusMessage
&
rbuf
,
timeout_
t
timeout
);
virtual
ModbusRTU
::
mbErrCode
recv_pdu
(
ModbusRTU
::
ModbusByte
qfunc
,
virtual
ModbusRTU
::
mbErrCode
recv_pdu
(
ModbusRTU
::
ModbusByte
qfunc
,
ModbusRTU
::
ModbusMessage
&
rbuf
,
in
t
timeout
);
ModbusRTU
::
ModbusMessage
&
rbuf
,
timeout_
t
timeout
);
ModbusRTU
::
ModbusMessage
reply
;
/*!< ɣ */
ModbusRTU
::
ModbusMessage
reply
;
/*!< ɣ */
ModbusRTU
::
ModbusMessage
qbuf
;
/*!< */
ModbusRTU
::
ModbusMessage
qbuf
;
/*!< */
in
t
replyTimeOut_ms
;
/*!< */
timeout_
t
replyTimeOut_ms
;
/*!< */
in
t
aftersend_msec
;
/*!< */
timeout_
t
aftersend_msec
;
/*!< */
bool
crcNoCheckit
;
bool
crcNoCheckit
;
...
...
include/modbus/ModbusRTUMaster.h
View file @
3db9b2c6
...
@@ -43,13 +43,13 @@ class ModbusRTUMaster:
...
@@ -43,13 +43,13 @@ class ModbusRTUMaster:
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
/*! set timeout for send/receive data */
/*! set timeout for send/receive data */
virtual
void
setChannelTimeout
(
in
t
msec
);
virtual
void
setChannelTimeout
(
timeout_
t
msec
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
/*! - */
/*! - */
virtual
ModbusRTU
::
mbErrCode
query
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
msg
,
virtual
ModbusRTU
::
mbErrCode
query
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
msg
,
ModbusRTU
::
ModbusMessage
&
reply
,
in
t
timeout
);
ModbusRTU
::
ModbusMessage
&
reply
,
timeout_
t
timeout
);
std
::
string
dev
;
/*!< */
std
::
string
dev
;
/*!< */
...
...
include/modbus/ModbusRTUSlave.h
View file @
3db9b2c6
...
@@ -32,13 +32,13 @@ class ModbusRTUSlave:
...
@@ -32,13 +32,13 @@ class ModbusRTUSlave:
void
setSpeed
(
const
std
::
string
s
);
void
setSpeed
(
const
std
::
string
s
);
ComPort
::
Speed
getSpeed
();
ComPort
::
Speed
getSpeed
();
virtual
ModbusRTU
::
mbErrCode
receive
(
ModbusRTU
::
ModbusAddr
addr
,
in
t
msecTimeout
);
virtual
ModbusRTU
::
mbErrCode
receive
(
ModbusRTU
::
ModbusAddr
addr
,
timeout_
t
msecTimeout
);
protected
:
protected
:
// realisation (see ModbusServer.h)
// realisation (see ModbusServer.h)
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
virtual
void
setChannelTimeout
(
in
t
msec
);
virtual
void
setChannelTimeout
(
timeout_
t
msec
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
std
::
string
dev
;
/*!< */
std
::
string
dev
;
/*!< */
...
...
include/modbus/ModbusServer.h
View file @
3db9b2c6
...
@@ -27,21 +27,21 @@ class ModbusServer
...
@@ -27,21 +27,21 @@ class ModbusServer
\param msecTimeout - .
\param msecTimeout - .
\return ModbusRTU::mbErrCode
\return ModbusRTU::mbErrCode
*/
*/
virtual
ModbusRTU
::
mbErrCode
receive
(
ModbusRTU
::
ModbusAddr
addr
,
in
t
msecTimeout
)
=
0
;
virtual
ModbusRTU
::
mbErrCode
receive
(
ModbusRTU
::
ModbusAddr
addr
,
timeout_
t
msecTimeout
)
=
0
;
/*!
/*!
\return
\return
*/
*/
int
setAfterSendPause
(
in
t
msec
);
timeout_t
setAfterSendPause
(
timeout_
t
msec
);
/*!
/*!
\return
\return
*/
*/
int
setReplyTimeout
(
in
t
msec
);
timeout_t
setReplyTimeout
(
timeout_
t
msec
);
/*! */
/*! */
void
setRecvTimeout
(
in
t
msec
);
void
setRecvTimeout
(
timeout_
t
msec
);
inline
void
setCRCNoCheckit
(
bool
set
){
crcNoCheckit
=
set
;
}
inline
void
setCRCNoCheckit
(
bool
set
){
crcNoCheckit
=
set
;
}
inline
bool
isCRCNoCheckit
(){
return
crcNoCheckit
;
}
inline
bool
isCRCNoCheckit
(){
return
crcNoCheckit
;
}
...
@@ -182,7 +182,7 @@ class ModbusServer
...
@@ -182,7 +182,7 @@ class ModbusServer
/*! set timeout for receive data */
/*! set timeout for receive data */
virtual
void
setChannelTimeout
(
in
t
msec
)
=
0
;
virtual
void
setChannelTimeout
(
timeout_
t
msec
)
=
0
;
/*! () */
/*! () */
virtual
ModbusRTU
::
mbErrCode
send
(
ModbusRTU
::
ModbusMessage
&
buf
);
virtual
ModbusRTU
::
mbErrCode
send
(
ModbusRTU
::
ModbusMessage
&
buf
);
...
@@ -194,13 +194,13 @@ class ModbusServer
...
@@ -194,13 +194,13 @@ class ModbusServer
virtual
ModbusRTU
::
mbErrCode
processing
(
ModbusRTU
::
ModbusMessage
&
buf
);
virtual
ModbusRTU
::
mbErrCode
processing
(
ModbusRTU
::
ModbusMessage
&
buf
);
/*! */
/*! */
ModbusRTU
::
mbErrCode
recv
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
buf
,
in
t
timeout
);
ModbusRTU
::
mbErrCode
recv
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
buf
,
timeout_
t
timeout
);
ModbusRTU
::
mbErrCode
recv_pdu
(
ModbusRTU
::
ModbusMessage
&
rbuf
,
in
t
timeout
);
ModbusRTU
::
mbErrCode
recv_pdu
(
ModbusRTU
::
ModbusMessage
&
rbuf
,
timeout_
t
timeout
);
UniSetTypes
::
uniset_mutex
recvMutex
;
UniSetTypes
::
uniset_mutex
recvMutex
;
in
t
recvTimeOut_ms
;
/*!< ɣ */
timeout_
t
recvTimeOut_ms
;
/*!< ɣ */
in
t
replyTimeout_ms
;
/*!< */
timeout_
t
replyTimeout_ms
;
/*!< */
in
t
aftersend_msec
;
/*!< */
timeout_
t
aftersend_msec
;
/*!< */
bool
onBroadcast
;
/*!< broadcst- */
bool
onBroadcast
;
/*!< broadcst- */
bool
crcNoCheckit
;
bool
crcNoCheckit
;
...
...
include/modbus/ModbusTCPMaster.h
View file @
3db9b2c6
...
@@ -28,10 +28,10 @@ class ModbusTCPMaster:
...
@@ -28,10 +28,10 @@ class ModbusTCPMaster:
void
reconnect
();
void
reconnect
();
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
virtual
void
setChannelTimeout
(
in
t
msec
);
virtual
void
setChannelTimeout
(
timeout_
t
msec
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
virtual
ModbusRTU
::
mbErrCode
query
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
msg
,
virtual
ModbusRTU
::
mbErrCode
query
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusMessage
&
msg
,
ModbusRTU
::
ModbusMessage
&
reply
,
in
t
timeout
);
ModbusRTU
::
ModbusMessage
&
reply
,
timeout_
t
timeout
);
private
:
private
:
ost
::
TCPStream
*
tcp
;
ost
::
TCPStream
*
tcp
;
...
...
include/modbus/ModbusTCPServer.h
View file @
3db9b2c6
...
@@ -23,7 +23,7 @@ class ModbusTCPServer:
...
@@ -23,7 +23,7 @@ class ModbusTCPServer:
ModbusTCPServer
(
ost
::
InetAddress
&
ia
,
int
port
=
502
);
ModbusTCPServer
(
ost
::
InetAddress
&
ia
,
int
port
=
502
);
virtual
~
ModbusTCPServer
();
virtual
~
ModbusTCPServer
();
virtual
ModbusRTU
::
mbErrCode
receive
(
ModbusRTU
::
ModbusAddr
addr
,
in
t
msecTimeout
);
virtual
ModbusRTU
::
mbErrCode
receive
(
ModbusRTU
::
ModbusAddr
addr
,
timeout_
t
msecTimeout
);
protected
:
protected
:
...
@@ -32,7 +32,7 @@ class ModbusTCPServer:
...
@@ -32,7 +32,7 @@ class ModbusTCPServer:
// realisation (see ModbusServer.h)
// realisation (see ModbusServer.h)
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
virtual
int
getNextData
(
unsigned
char
*
buf
,
int
len
);
virtual
void
setChannelTimeout
(
in
t
msec
);
virtual
void
setChannelTimeout
(
timeout_
t
msec
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
virtual
ModbusRTU
::
mbErrCode
sendData
(
unsigned
char
*
buf
,
int
len
);
virtual
ModbusRTU
::
mbErrCode
tcp_processing
(
ost
::
TCPStream
&
tcp
,
ModbusTCP
::
MBAPHeader
&
mhead
);
virtual
ModbusRTU
::
mbErrCode
tcp_processing
(
ost
::
TCPStream
&
tcp
,
ModbusTCP
::
MBAPHeader
&
mhead
);
...
...
src/Communications/Modbus/ModbusClient.cc
View file @
3db9b2c6
...
@@ -25,15 +25,15 @@ ModbusClient::~ModbusClient()
...
@@ -25,15 +25,15 @@ ModbusClient::~ModbusClient()
{
{
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
ModbusClient
::
setTimeout
(
in
t
msec
)
void
ModbusClient
::
setTimeout
(
timeout_
t
msec
)
{
{
if
(
msec
!=
UniSetTimer
::
WaitUpTime
&&
msec
>=
0
)
if
(
msec
!=
UniSetTimer
::
WaitUpTime
)
replyTimeOut_ms
=
msec
;
replyTimeOut_ms
=
msec
;
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
int
ModbusClient
::
setAfterSendPause
(
in
t
msec
)
int
ModbusClient
::
setAfterSendPause
(
timeout_
t
msec
)
{
{
in
t
old
=
aftersend_msec
;
timeout_
t
old
=
aftersend_msec
;
aftersend_msec
=
msec
;
aftersend_msec
=
msec
;
return
old
;
return
old
;
}
}
...
@@ -172,7 +172,7 @@ SetDateTimeRetMessage ModbusClient::setDateTime( ModbusAddr addr, ModbusByte hou
...
@@ -172,7 +172,7 @@ SetDateTimeRetMessage ModbusClient::setDateTime( ModbusAddr addr, ModbusByte hou
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
void
ModbusClient
::
fileTransfer
(
ModbusAddr
addr
,
ModbusData
numfile
,
void
ModbusClient
::
fileTransfer
(
ModbusAddr
addr
,
ModbusData
numfile
,
const
char
*
save2filename
,
in
t
part_timeout_msec
)
const
char
*
save2filename
,
timeout_
t
part_timeout_msec
)
throw
(
ModbusRTU
::
mbException
)
throw
(
ModbusRTU
::
mbException
)
{
{
//#warning
//#warning
...
@@ -256,9 +256,9 @@ void ModbusClient::fileTransfer( ModbusAddr addr, ModbusData numfile,
...
@@ -256,9 +256,9 @@ void ModbusClient::fileTransfer( ModbusAddr addr, ModbusData numfile,
throw
mbException
(
res
);
throw
mbException
(
res
);
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
FileTransferRetMessage
ModbusClient
::
partOfFileTransfer
(
ModbusAddr
addr
,
FileTransferRetMessage
ModbusClient
::
partOfFileTransfer
(
ModbusAddr
addr
,
ModbusData
idFile
,
ModbusData
numpack
,
ModbusData
idFile
,
ModbusData
numpack
,
in
t
part_timeout_msec
)
timeout_
t
part_timeout_msec
)
throw
(
ModbusRTU
::
mbException
)
throw
(
ModbusRTU
::
mbException
)
{
{
FileTransferMessage
msg
(
addr
,
idFile
,
numpack
);
FileTransferMessage
msg
(
addr
,
idFile
,
numpack
);
...
@@ -272,7 +272,7 @@ FileTransferRetMessage ModbusClient::partOfFileTransfer( ModbusAddr addr,
...
@@ -272,7 +272,7 @@ FileTransferRetMessage ModbusClient::partOfFileTransfer( ModbusAddr addr,
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
mbErrCode
ModbusClient
::
recv
(
ModbusAddr
addr
,
ModbusByte
qfunc
,
mbErrCode
ModbusClient
::
recv
(
ModbusAddr
addr
,
ModbusByte
qfunc
,
ModbusMessage
&
rbuf
,
in
t
timeout
)
ModbusMessage
&
rbuf
,
timeout_
t
timeout
)
{
{
if
(
timeout
==
UniSetTimer
::
WaitUpTime
)
if
(
timeout
==
UniSetTimer
::
WaitUpTime
)
timeout
=
15
*
60
*
1000
*
1000
;
// (15 ). .
timeout
=
15
*
60
*
1000
*
1000
;
// (15 ). .
...
@@ -329,7 +329,7 @@ mbErrCode ModbusClient::recv( ModbusAddr addr, ModbusByte qfunc,
...
@@ -329,7 +329,7 @@ mbErrCode ModbusClient::recv( ModbusAddr addr, ModbusByte qfunc,
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
mbErrCode
ModbusClient
::
recv_pdu
(
ModbusByte
qfunc
,
ModbusMessage
&
rbuf
,
in
t
timeout
)
mbErrCode
ModbusClient
::
recv_pdu
(
ModbusByte
qfunc
,
ModbusMessage
&
rbuf
,
timeout_
t
timeout
)
{
{
int
bcnt
=
1
;
// receive bytes count (1 - addr)
int
bcnt
=
1
;
// receive bytes count (1 - addr)
try
try
...
...
src/Communications/Modbus/ModbusRTUMaster.cc
View file @
3db9b2c6
...
@@ -98,7 +98,7 @@ int ModbusRTUMaster::getNextData( unsigned char* buf, int len )
...
@@ -98,7 +98,7 @@ int ModbusRTUMaster::getNextData( unsigned char* buf, int len )
return
port
->
receiveBlock
(
buf
,
len
);
return
port
->
receiveBlock
(
buf
,
len
);
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
void
ModbusRTUMaster
::
setChannelTimeout
(
in
t
msec
)
void
ModbusRTUMaster
::
setChannelTimeout
(
timeout_
t
msec
)
{
{
if
(
port
)
if
(
port
)
port
->
setTimeout
(
msec
*
1000
);
port
->
setTimeout
(
msec
*
1000
);
...
@@ -120,7 +120,7 @@ mbErrCode ModbusRTUMaster::sendData( unsigned char* buf, int len )
...
@@ -120,7 +120,7 @@ mbErrCode ModbusRTUMaster::sendData( unsigned char* buf, int len )
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusRTUMaster
::
query
(
ModbusAddr
addr
,
ModbusMessage
&
msg
,
mbErrCode
ModbusRTUMaster
::
query
(
ModbusAddr
addr
,
ModbusMessage
&
msg
,
ModbusMessage
&
reply
,
in
t
timeout
)
ModbusMessage
&
reply
,
timeout_
t
timeout
)
{
{
mbErrCode
res
=
send
(
msg
);
mbErrCode
res
=
send
(
msg
);
if
(
res
!=
erNoError
)
if
(
res
!=
erNoError
)
...
...
src/Communications/Modbus/ModbusRTUSlave.cc
View file @
3db9b2c6
...
@@ -62,7 +62,7 @@ ModbusRTUSlave::~ModbusRTUSlave()
...
@@ -62,7 +62,7 @@ ModbusRTUSlave::~ModbusRTUSlave()
delete
port
;
delete
port
;
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusRTUSlave
::
receive
(
ModbusRTU
::
ModbusAddr
addr
,
in
t
timeout
)
mbErrCode
ModbusRTUSlave
::
receive
(
ModbusRTU
::
ModbusAddr
addr
,
timeout_
t
timeout
)
{
{
uniset_mutex_lock
lck
(
recvMutex
,
timeout
);
uniset_mutex_lock
lck
(
recvMutex
,
timeout
);
ModbusMessage
buf
;
ModbusMessage
buf
;
...
@@ -127,7 +127,7 @@ int ModbusRTUSlave::getNextData( unsigned char* buf, int len )
...
@@ -127,7 +127,7 @@ int ModbusRTUSlave::getNextData( unsigned char* buf, int len )
return
port
->
receiveBlock
(
buf
,
len
);
return
port
->
receiveBlock
(
buf
,
len
);
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
void
ModbusRTUSlave
::
setChannelTimeout
(
in
t
msec
)
void
ModbusRTUSlave
::
setChannelTimeout
(
timeout_
t
msec
)
{
{
if
(
msec
==
UniSetTimer
::
WaitUpTime
)
if
(
msec
==
UniSetTimer
::
WaitUpTime
)
port
->
setTimeout
(
15
*
60
*
1000
*
1000
);
// (15 ). .
port
->
setTimeout
(
15
*
60
*
1000
*
1000
);
// (15 ). .
...
...
src/Communications/Modbus/ModbusServer.cc
View file @
3db9b2c6
...
@@ -28,26 +28,28 @@ ModbusServer::~ModbusServer()
...
@@ -28,26 +28,28 @@ ModbusServer::~ModbusServer()
{
{
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
ModbusServer
::
setRecvTimeout
(
in
t
msec
)
void
ModbusServer
::
setRecvTimeout
(
timeout_
t
msec
)
{
{
if
(
msec
!=
UniSetTimer
::
WaitUpTime
&&
msec
>=
0
)
if
(
msec
!=
UniSetTimer
::
WaitUpTime
)
recvTimeOut_ms
=
msec
;
recvTimeOut_ms
=
msec
;
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
int
ModbusServer
::
setReplyTimeout
(
in
t
msec
)
timeout_t
ModbusServer
::
setReplyTimeout
(
timeout_
t
msec
)
{
{
if
(
msec
<=
0
)
// #warning "Why msec can be 0?"
assert
(
msec
);
if
(
msec
==
UniSetTimer
::
WaitUpTime
)
return
replyTimeout_ms
;
return
replyTimeout_ms
;
int
old
=
replyTimeout_ms
;
timeout_t
old
=
replyTimeout_ms
;
// ,
replyTimeout_ms
=
msec
;
replyTimeout_ms
=
msec
;
tmProcessing
.
setTiming
(
replyTimeout_ms
);
tmProcessing
.
setTiming
(
replyTimeout_ms
);
return
old
;
return
old
;
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
int
ModbusServer
::
setAfterSendPause
(
in
t
msec
)
timeout_t
ModbusServer
::
setAfterSendPause
(
timeout_
t
msec
)
{
{
in
t
old
=
aftersend_msec
;
timeout_
t
old
=
aftersend_msec
;
aftersend_msec
=
msec
;
aftersend_msec
=
msec
;
return
old
;
return
old
;
}
}
...
@@ -448,10 +450,11 @@ mbErrCode ModbusServer::processing( ModbusMessage& buf )
...
@@ -448,10 +450,11 @@ mbErrCode ModbusServer::processing( ModbusMessage& buf )
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusServer
::
recv
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusMessage
&
rbuf
,
in
t
timeout
)
mbErrCode
ModbusServer
::
recv
(
ModbusRTU
::
ModbusAddr
addr
,
ModbusMessage
&
rbuf
,
timeout_
t
timeout
)
{
{
if
(
timeout
==
UniSetTimer
::
WaitUpTime
||
timeout
<=
0
)
assert
(
timeout
);
timeout
=
15
*
60
*
1000
;
// (15 ). .
if
(
timeout
==
UniSetTimer
::
WaitUpTime
)
timeout
=
15
*
60
*
1000
;
// (15 ), .
setChannelTimeout
(
timeout
);
setChannelTimeout
(
timeout
);
PassiveTimer
tmAbort
(
timeout
);
PassiveTimer
tmAbort
(
timeout
);
...
@@ -505,7 +508,7 @@ mbErrCode ModbusServer::recv( ModbusRTU::ModbusAddr addr, ModbusMessage& rbuf, i
...
@@ -505,7 +508,7 @@ mbErrCode ModbusServer::recv( ModbusRTU::ModbusAddr addr, ModbusMessage& rbuf, i
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusServer
::
recv_pdu
(
ModbusMessage
&
rbuf
,
in
t
timeout
)
mbErrCode
ModbusServer
::
recv_pdu
(
ModbusMessage
&
rbuf
,
timeout_
t
timeout
)
{
{
int
bcnt
=
1
;
// 1 - addr
int
bcnt
=
1
;
// 1 - addr
try
try
...
...
src/Communications/Modbus/ModbusTCPMaster.cc
View file @
3db9b2c6
...
@@ -31,7 +31,7 @@ int ModbusTCPMaster::getNextData( unsigned char* buf, int len )
...
@@ -31,7 +31,7 @@ int ModbusTCPMaster::getNextData( unsigned char* buf, int len )
return
ModbusTCPCore
::
getNextData
(
buf
,
len
,
qrecv
,
tcp
);
return
ModbusTCPCore
::
getNextData
(
buf
,
len
,
qrecv
,
tcp
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
ModbusTCPMaster
::
setChannelTimeout
(
in
t
msec
)
void
ModbusTCPMaster
::
setChannelTimeout
(
timeout_
t
msec
)
{
{
if
(
tcp
)
if
(
tcp
)
tcp
->
setTimeout
(
msec
);
tcp
->
setTimeout
(
msec
);
...
@@ -45,7 +45,7 @@ mbErrCode ModbusTCPMaster::sendData( unsigned char* buf, int len )
...
@@ -45,7 +45,7 @@ mbErrCode ModbusTCPMaster::sendData( unsigned char* buf, int len )
int
ModbusTCPMaster
::
nTransaction
=
0
;
int
ModbusTCPMaster
::
nTransaction
=
0
;
mbErrCode
ModbusTCPMaster
::
query
(
ModbusAddr
addr
,
ModbusMessage
&
msg
,
mbErrCode
ModbusTCPMaster
::
query
(
ModbusAddr
addr
,
ModbusMessage
&
msg
,
ModbusMessage
&
reply
,
in
t
timeout
)
ModbusMessage
&
reply
,
timeout_
t
timeout
)
{
{
// if( !isConnection() )
// if( !isConnection() )
...
@@ -58,13 +58,8 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
...
@@ -58,13 +58,8 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
reconnect
();
reconnect
();
if
(
timeout
<=
0
||
timeout
==
UniSetTimer
::
WaitUpTime
)
assert
(
timeout
);
{
ptTimeout
.
setTiming
(
timeout
);
timeout
=
TIMEOUT_INF
;
ptTimeout
.
setTiming
(
UniSetTimer
::
WaitUpTime
);
}
else
ptTimeout
.
setTiming
(
timeout
);
ost
::
Thread
::
setException
(
ost
::
Thread
::
throwException
);
ost
::
Thread
::
setException
(
ost
::
Thread
::
throwException
);
...
@@ -100,10 +95,10 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
...
@@ -100,10 +95,10 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
if
(
!
tcp
->
isPending
(
ost
::
Socket
::
pendingOutput
,
timeout
)
)
if
(
!
tcp
->
isPending
(
ost
::
Socket
::
pendingOutput
,
timeout
)
)
return
erTimeOut
;
return
erTimeOut
;
if
(
timeout
!=
TIMEOUT_INF
)
if
(
timeout
!=
UniSetTimer
::
WaitUpTime
)
{
{
timeout
-=
ptTimeout
.
getCurrent
(
);
timeout
=
ptTimeout
.
getLeft
(
timeout
);
if
(
timeout
<=
0
)
if
(
timeout
==
0
)
return
erTimeOut
;
return
erTimeOut
;
ptTimeout
.
setTiming
(
timeout
);
ptTimeout
.
setTiming
(
timeout
);
...
...
src/Communications/Modbus/ModbusTCPServer.cc
View file @
3db9b2c6
...
@@ -22,27 +22,27 @@ ModbusTCPServer::~ModbusTCPServer()
...
@@ -22,27 +22,27 @@ ModbusTCPServer::~ModbusTCPServer()
{
{
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
mbErrCode
ModbusTCPServer
::
receive
(
ModbusRTU
::
ModbusAddr
addr
,
in
t
timeout
)
mbErrCode
ModbusTCPServer
::
receive
(
ModbusRTU
::
ModbusAddr
addr
,
timeout_
t
timeout
)
{
{
PassiveTimer
ptTimeout
(
timeout
);
PassiveTimer
ptTimeout
(
timeout
);
ModbusMessage
buf
;
ModbusMessage
buf
;
mbErrCode
res
=
erTimeOut
;
mbErrCode
res
=
erTimeOut
;
// Thread::setException(Thread::throwException);
// Thread::setException(Thread::throwException);
if
(
timeout
<=
0
||
timeout
==
UniSetTimer
::
WaitUpTime
)
//#warning "Why timeout can be 0 there?"
timeout
=
TIMEOUT_INF
;
assert
(
timeout
)
;
ptTimeout
.
reset
();
ptTimeout
.
reset
();
try
try
{
{
if
(
isPendingConnection
(
timeout
)
)
if
(
isPendingConnection
(
timeout
)
)
{
{
tcp
.
connect
(
*
this
);
tcp
.
connect
(
*
this
);
if
(
timeout
!=
TIMEOUT_INF
)
if
(
timeout
!=
UniSetTimer
::
WaitUpTime
)
{
{
timeout
-=
ptTimeout
.
getCurrent
(
);
timeout
=
ptTimeout
.
getLeft
(
timeout
);
if
(
timeout
<=
0
)
if
(
timeout
==
0
)
{
{
tcp
.
disconnect
();
tcp
.
disconnect
();
return
erTimeOut
;
return
erTimeOut
;
...
@@ -61,22 +61,21 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
...
@@ -61,22 +61,21 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
return
res
;
return
res
;
}
}
if
(
timeout
!=
TIMEOUT_INF
)
if
(
timeout
!=
UniSetTimer
::
WaitUpTime
)
{
{
timeout
-=
ptTimeout
.
getCurrent
(
);
timeout
=
ptTimeout
.
getLeft
(
timeout
);
if
(
timeout
<=
0
)
if
(
timeout
==
0
)
{
{
tcp
.
disconnect
();
tcp
.
disconnect
();
return
erTimeOut
;
return
erTimeOut
;
}
}
}
}
int
msec
=
(
timeout
!=
TIMEOUT_INF
)
?
timeout
:
UniSetTimer
::
WaitUpTime
;
do
do
{
{
// buf.addr = curQueryHeader.uID;
// buf.addr = curQueryHeader.uID;
// res = recv_pdu(buf,mec);
// res = recv_pdu(buf,mec);
res
=
recv
(
addr
,
buf
,
msec
);
res
=
recv
(
addr
,
buf
,
timeout
);
if
(
res
!=
erNoError
&&
res
!=
erBadReplyNodeAddress
)
if
(
res
!=
erNoError
&&
res
!=
erBadReplyNodeAddress
)
{
{
...
@@ -92,10 +91,10 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
...
@@ -92,10 +91,10 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
return
res
;
return
res
;
}
}
if
(
timeout
!=
TIMEOUT_INF
)
if
(
timeout
!=
UniSetTimer
::
WaitUpTime
)
{
{
timeout
-=
ptTimeout
.
getCurrent
(
);
timeout
=
ptTimeout
.
getLeft
(
timeout
);
if
(
timeout
<=
0
)
if
(
timeout
==
0
)
{
{
tcp
.
disconnect
();
tcp
.
disconnect
();
return
erTimeOut
;
return
erTimeOut
;
...
@@ -125,7 +124,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
...
@@ -125,7 +124,7 @@ mbErrCode ModbusTCPServer::receive( ModbusRTU::ModbusAddr addr, int timeout )
}
}
// --------------------------------------------------------------------------------
// --------------------------------------------------------------------------------
void
ModbusTCPServer
::
setChannelTimeout
(
in
t
msec
)
void
ModbusTCPServer
::
setChannelTimeout
(
timeout_
t
msec
)
{
{
tcp
.
setTimeout
(
msec
);
tcp
.
setTimeout
(
msec
);
}
}
...
...
src/ObjectRepository/ObjectsManager_LT.cc
View file @
3db9b2c6
...
@@ -67,7 +67,7 @@ void ObjectsManager_LT::callback()
...
@@ -67,7 +67,7 @@ void ObjectsManager_LT::callback()
}
}
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
ObjectsManager_LT
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
short
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
void
ObjectsManager_LT
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
short
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
{
{
//
//
if
(
lt
.
askTimer
(
timerid
,
timeMS
,
ticks
,
p
)
!=
UniSetTimer
::
WaitUpTime
)
if
(
lt
.
askTimer
(
timerid
,
timeMS
,
ticks
,
p
)
!=
UniSetTimer
::
WaitUpTime
)
...
...
src/ObjectRepository/UniSetObject_LT.cc
View file @
3db9b2c6
...
@@ -67,7 +67,7 @@ void UniSetObject_LT::callback()
...
@@ -67,7 +67,7 @@ void UniSetObject_LT::callback()
}
}
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
UniSetObject_LT
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
short
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
void
UniSetObject_LT
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
short
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
{
{
//
//
if
(
lt
.
askTimer
(
timerid
,
timeMS
,
ticks
,
p
)
!=
UniSetTimer
::
WaitUpTime
)
if
(
lt
.
askTimer
(
timerid
,
timeMS
,
ticks
,
p
)
!=
UniSetTimer
::
WaitUpTime
)
...
...
src/Processes/IONotifyController_LT.cc
View file @
3db9b2c6
...
@@ -68,7 +68,7 @@ void IONotifyController_LT::callback()
...
@@ -68,7 +68,7 @@ void IONotifyController_LT::callback()
}
}
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
IONotifyController_LT
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
short
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
void
IONotifyController_LT
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
short
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
{
{
//
//
if
(
lt
.
askTimer
(
timerid
,
timeMS
,
ticks
,
p
)
!=
UniSetTimer
::
WaitUpTime
)
if
(
lt
.
askTimer
(
timerid
,
timeMS
,
ticks
,
p
)
!=
UniSetTimer
::
WaitUpTime
)
...
...
src/Services/TimerService.cc
View file @
3db9b2c6
...
@@ -191,11 +191,10 @@ void TimerService::work()
...
@@ -191,11 +191,10 @@ void TimerService::work()
bool
resort
=
false
;
bool
resort
=
false
;
terminate
=
false
;
terminate
=
false
;
// TimerInfo* ti;
// TimerInfo* ti;
int
sleepTime
(
UniSetTimer
::
MIN_QUANTITY_TIME_MS
);
//
while
(
!
terminate
)
while
(
!
terminate
)
{
{
sleepTime
=
UniSetTimer
::
MIN_QUANTITY_TIME_MS
;
//
timeout_t
sleepTime
=
UniSetTimer
::
MinQuantityTime
;
//
{
// lock
{
// lock
uniset_mutex_lock
lock
(
lstMutex
,
5000
);
uniset_mutex_lock
lock
(
lstMutex
,
5000
);
resort
=
false
;
resort
=
false
;
...
@@ -251,9 +250,10 @@ void TimerService::work()
...
@@ -251,9 +250,10 @@ void TimerService::work()
}
}
else
else
{
{
li
->
curTimeMS
-=
sleepTime
;
if
(
li
->
curTimeMS
<
sleepTime
)
if
(
li
->
curTimeMS
<
0
)
li
->
curTimeMS
=
0
;
li
->
curTimeMS
=
0
;
else
li
->
curTimeMS
-=
sleepTime
;
}
}
...
@@ -270,8 +270,8 @@ void TimerService::work()
...
@@ -270,8 +270,8 @@ void TimerService::work()
if
(
resort
)
//
if
(
resort
)
//
tlst
.
sort
();
tlst
.
sort
();
if
(
sleepTime
<
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
)
if
(
sleepTime
<
UniSetTimer
::
M
inQuantityTime
)
sleepTime
=
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
;
sleepTime
=
UniSetTimer
::
M
inQuantityTime
;
}
// unlock
}
// unlock
...
...
src/Timers/PassiveSysTimer.cc
View file @
3db9b2c6
...
@@ -89,7 +89,7 @@ void PassiveSysTimer::terminate()
...
@@ -89,7 +89,7 @@ void PassiveSysTimer::terminate()
}
}
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
int
PassiveSysTimer
::
wait
(
in
t
timeMS
)
bool
PassiveSysTimer
::
wait
(
timeout_
t
timeMS
)
{
{
pid
=
getpid
();
pid
=
getpid
();
...
...
src/Timers/PassiveTimer.cc
View file @
3db9b2c6
...
@@ -49,7 +49,7 @@ clock_ticks(sysconf(_SC_CLK_TCK))
...
@@ -49,7 +49,7 @@ clock_ticks(sysconf(_SC_CLK_TCK))
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
PassiveTimer
::
PassiveTimer
(
in
t
timeMS
)
:
PassiveTimer
::
PassiveTimer
(
timeout_
t
timeMS
)
:
timeAct
(
0
),
timeAct
(
0
),
timeSS
(
0
),
timeSS
(
0
),
timeStart
(
0
),
timeStart
(
0
),
...
...
src/Timers/ThrPassiveTimer.cc
View file @
3db9b2c6
...
@@ -63,33 +63,30 @@ void ThrPassiveTimer::terminate()
...
@@ -63,33 +63,30 @@ void ThrPassiveTimer::terminate()
}
}
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
int
ThrPassiveTimer
::
wait
(
in
t
timeMS
)
bool
ThrPassiveTimer
::
wait
(
timeout_
t
timeMS
)
{
{
terminated
=
0
;
terminated
=
0
;
{
{
tmutex
->
lock
();
tmutex
->
lock
();
PassiveTimer
::
setTiming
(
timeMS
);
// PassiveTimer-
timeMS
=
PassiveTimer
::
setTiming
(
timeMS
);
// PassiveTimer-
if
(
timeMS
<
0
||
timeMS
==
WaitUpTime
)
if
(
timeMS
==
WaitUpTime
)
{
{
while
(
!
terminated
)
// , ...
while
(
!
terminated
)
// , ...
tcondx
->
wait
();
tcondx
->
wait
();
}
}
else
else
{
{
if
(
timeMS
<
MIN_QUANTITY_TIME_MS
)
timeMS
=
MIN_QUANTITY_TIME_MS
;
unsigned
long
sec
,
msec
;
unsigned
long
sec
,
msec
;
omni_thread
::
get_time
(
&
sec
,
&
msec
,
timeMS
/
1000
,
(
timeMS
%
1000
)
*
1000000
);
omni_thread
::
get_time
(
&
sec
,
&
msec
,
timeMS
/
1000
,
(
timeMS
%
1000
)
*
1000000
);
// cout <<"timer: "<< timeMS/1000 << "[] " << (timeMS%1000)*1000000 <<"[]" << endl;
// cout <<"timer: "<< timeMS/1000 << "[] " << (timeMS%1000)*1000000 <<"[]" << endl;
tcondx
->
timedwait
(
sec
,
msec
);
tcondx
->
timedwait
(
sec
,
msec
);
}
}
tmutex
->
unlock
();
tmutex
->
unlock
();
}
}
terminated
=
1
;
terminated
=
1
;
return
1
;
return
true
;
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
src/Timers/WaitingPassiveTimer.cc
View file @
3db9b2c6
...
@@ -84,7 +84,7 @@ WaitingPassiveTimer::~WaitingPassiveTimer()
...
@@ -84,7 +84,7 @@ WaitingPassiveTimer::~WaitingPassiveTimer()
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
WaitingPassiveTimer
::
work
()
void
WaitingPassiveTimer
::
work
()
{
{
int
sleepMKS
=
(
int
)(
MIN_QUANTITY_TIME_MS
/
1000
)
;
timeout_t
sleepMKS
=
MIN_QUANTITY_TIME_MS
*
1000
;
terminated
=
false
;
terminated
=
false
;
while
(
!
terminated
)
while
(
!
terminated
)
{
{
...
@@ -119,7 +119,7 @@ void WaitingPassiveTimer::terminate()
...
@@ -119,7 +119,7 @@ void WaitingPassiveTimer::terminate()
usleep
(
1000
);
usleep
(
1000
);
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
void
WaitingPassiveTimer
::
wait
(
in
t
timeMS
)
void
WaitingPassiveTimer
::
wait
(
timeout_
t
timeMS
)
{
{
if
(
!
terminated
)
if
(
!
terminated
)
terminate
();
terminate
();
...
...
src/Various/LT_Object.cc
View file @
3db9b2c6
...
@@ -37,9 +37,7 @@ using namespace UniSetTypes;
...
@@ -37,9 +37,7 @@ using namespace UniSetTypes;
LT_Object
::
LT_Object
()
:
LT_Object
::
LT_Object
()
:
sleepTime
(
UniSetTimer
::
WaitUpTime
)
sleepTime
(
UniSetTimer
::
WaitUpTime
)
{
{
tmLast
.
setTiming
(
100000
);
tmLast
.
setTiming
(
UniSetTimer
::
WaitUpTime
);
tmLast
.
setTiming
(
UniSetTimer
::
WaitUpTime
);
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
...
@@ -47,7 +45,7 @@ LT_Object::~LT_Object()
...
@@ -47,7 +45,7 @@ LT_Object::~LT_Object()
{
{
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
in
t
LT_Object
::
checkTimers
(
UniSetObject
*
obj
)
timeout_
t
LT_Object
::
checkTimers
(
UniSetObject
*
obj
)
{
{
try
try
{
{
...
@@ -62,13 +60,13 @@ int LT_Object::checkTimers( UniSetObject* obj )
...
@@ -62,13 +60,13 @@ int LT_Object::checkTimers( UniSetObject* obj )
}
}
//
//
if
(
tmLast
.
getCurrent
()
<
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
)
if
(
tmLast
.
getCurrent
()
<
UniSetTimer
::
M
inQuantityTime
)
{
{
// sleepTime
// sleepTime
sleepTime
-=
tmLast
.
getCurrent
(
);
sleepTime
=
tmLast
.
getLeft
(
sleepTime
);
if
(
sleepTime
<
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
)
if
(
sleepTime
<
UniSetTimer
::
M
inQuantityTime
)
{
{
sleepTime
=
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
;
sleepTime
=
UniSetTimer
::
M
inQuantityTime
;
return
sleepTime
;
return
sleepTime
;
}
}
}
}
...
@@ -101,10 +99,8 @@ int LT_Object::checkTimers( UniSetObject* obj )
...
@@ -101,10 +99,8 @@ int LT_Object::checkTimers( UniSetObject* obj )
}
}
else
else
{
{
li
->
curTimeMS
-=
tmLast
.
getCurrent
();
li
->
curTimeMS
=
tmLast
.
getLeft
(
li
->
curTimeMS
);
if
(
li
->
curTimeMS
<
0
)
}
li
->
curTimeMS
=
0
;
}
//
//
if
(
li
->
curTimeMS
<
sleepTime
||
sleepTime
==
UniSetTimer
::
WaitUpTime
)
if
(
li
->
curTimeMS
<
sleepTime
||
sleepTime
==
UniSetTimer
::
WaitUpTime
)
...
@@ -114,8 +110,8 @@ int LT_Object::checkTimers( UniSetObject* obj )
...
@@ -114,8 +110,8 @@ int LT_Object::checkTimers( UniSetObject* obj )
if
(
resort
)
//
if
(
resort
)
//
tlst
.
sort
();
tlst
.
sort
();
if
(
sleepTime
<
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
)
if
(
sleepTime
<
UniSetTimer
::
M
inQuantityTime
)
sleepTime
=
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
;
sleepTime
=
UniSetTimer
::
M
inQuantityTime
;
}
// unlock
}
// unlock
tmLast
.
reset
();
tmLast
.
reset
();
...
@@ -129,15 +125,15 @@ int LT_Object::checkTimers( UniSetObject* obj )
...
@@ -129,15 +125,15 @@ int LT_Object::checkTimers( UniSetObject* obj )
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
int
LT_Object
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
long
timeMS
,
shor
t
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
timeout_t
LT_Object
::
askTimer
(
UniSetTypes
::
TimerId
timerid
,
timeout_t
timeMS
,
clock_
t
ticks
,
UniSetTypes
::
Message
::
Priority
p
)
{
{
if
(
timeMS
>
0
)
//
if
(
timeMS
>
0
)
//
{
{
if
(
timeMS
<
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
)
if
(
timeMS
<
UniSetTimer
::
M
inQuantityTime
)
{
{
unideb
[
Debug
::
CRIT
]
<<
"(LT_askTimer): [] "
unideb
[
Debug
::
CRIT
]
<<
"(LT_askTimer): [] "
<<
" ۣ "
<<
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
<<
endl
;
<<
" ۣ "
<<
UniSetTimer
::
M
inQuantityTime
<<
endl
;
timeMS
=
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
;
timeMS
=
UniSetTimer
::
M
inQuantityTime
;
}
}
{
// lock
{
// lock
...
@@ -170,7 +166,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks,
...
@@ -170,7 +166,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks,
if
(
unideb
.
debugging
(
Debug
::
INFO
)
)
if
(
unideb
.
debugging
(
Debug
::
INFO
)
)
unideb
[
Debug
::
INFO
]
<<
"(LT_askTimer): (id="
<<
timerid
<<
") "
<<
timeMS
<<
" []
\n
"
;
unideb
[
Debug
::
INFO
]
<<
"(LT_askTimer): (id="
<<
timerid
<<
") "
<<
timeMS
<<
" []
\n
"
;
}
}
else
//
else
//
( timeMS == 0)
{
{
if
(
unideb
.
debugging
(
Debug
::
INFO
)
)
if
(
unideb
.
debugging
(
Debug
::
INFO
)
)
unideb
[
Debug
::
INFO
]
<<
"(LT_askTimer): id="
<<
timerid
<<
endl
;
unideb
[
Debug
::
INFO
]
<<
"(LT_askTimer): id="
<<
timerid
<<
endl
;
...
@@ -193,7 +189,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks,
...
@@ -193,7 +189,7 @@ int LT_Object::askTimer( UniSetTypes::TimerId timerid, long timeMS, short ticks,
if
(
tlst
.
empty
()
)
if
(
tlst
.
empty
()
)
sleepTime
=
UniSetTimer
::
WaitUpTime
;
sleepTime
=
UniSetTimer
::
WaitUpTime
;
else
else
sleepTime
=
UniSetTimer
::
M
IN_QUANTITY_TIME_MS
;
sleepTime
=
UniSetTimer
::
M
inQuantityTime
;
}
}
return
sleepTime
;
return
sleepTime
;
...
...
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