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
5589b01c
Commit
5589b01c
authored
Feb 01, 2014
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Изменения после проверки cppcheck (performance)
parent
f49163bc
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
138 additions
and
136 deletions
+138
-136
admin.cc
Utilities/Admin/admin.cc
+28
-28
iocalibr.cc
extensions/IOControl/iocalibr.cc
+1
-1
RRDServer.cc
extensions/RRDServer/RRDServer.cc
+1
-1
SMDBServer.cc
extensions/SMDBServer/SMDBServer.cc
+2
-2
SMDBServer.h
extensions/SMDBServer/SMDBServer.h
+3
-3
ModbusTypes.h
include/modbus/ModbusTypes.h
+54
-54
ModbusServer.cc
src/Communications/Modbus/ModbusServer.cc
+11
-10
ModbusTypes.cc
src/Communications/Modbus/ModbusTypes.cc
+35
-34
UniSetTypes.cc
src/ObjectRepository/UniSetTypes.cc
+3
-3
No files found.
Utilities/Admin/admin.cc
View file @
5589b01c
...
...
@@ -458,12 +458,12 @@ int omap()
int
setValue
(
const
string
&
args
,
UInterface
&
ui
,
Configuration
*
conf
)
{
int
err
=
0
;
typedef
std
::
list
<
UniSetTypes
::
ParamSInfo
>
SList
;
SList
sl
=
UniSetTypes
::
getSInfoList
(
args
,
conf
);
cout
<<
"====== setValue ======"
<<
endl
;
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
it
++
)
{
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
++
it
)
{
try
{
UniversalIO
::
IOType
t
=
conf
->
getIOType
(
it
->
si
.
id
);
...
...
@@ -471,10 +471,10 @@ int setValue( const string& args, UInterface &ui, Configuration* conf )
cout
<<
" name: ("
<<
it
->
si
.
id
<<
") "
<<
it
->
fname
<<
endl
;
cout
<<
" iotype: "
<<
t
<<
endl
;
cout
<<
" text: "
<<
conf
->
oind
->
getTextName
(
it
->
si
.
id
)
<<
"
\n\n
"
;
if
(
it
->
si
.
node
==
DefaultObjectId
)
it
->
si
.
node
=
conf
->
getLocalNode
();
switch
(
t
)
{
case
UniversalIO
:
:
DI
:
...
...
@@ -494,9 +494,9 @@ int setValue( const string& args, UInterface &ui, Configuration* conf )
{
cerr
<<
"(setValue): "
<<
ex
<<
endl
;;
err
=
1
;
}
}
}
return
err
;
}
...
...
@@ -504,11 +504,11 @@ int setValue( const string& args, UInterface &ui, Configuration* conf )
int
getValue
(
const
string
&
args
,
UInterface
&
ui
,
Configuration
*
conf
)
{
int
err
=
0
;
typedef
std
::
list
<
UniSetTypes
::
ParamSInfo
>
SList
;
SList
sl
=
UniSetTypes
::
getSInfoList
(
args
,
UniSetTypes
::
conf
);
cout
<<
"====== getValue ======"
<<
endl
;
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
it
++
)
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
++
it
)
{
try
{
...
...
@@ -516,10 +516,10 @@ int getValue( const string& args, UInterface &ui, Configuration* conf )
cout
<<
" name: ("
<<
it
->
si
.
id
<<
") "
<<
it
->
fname
<<
endl
;
cout
<<
" iotype: "
<<
t
<<
endl
;
cout
<<
" text: "
<<
conf
->
oind
->
getTextName
(
it
->
si
.
id
)
<<
"
\n\n
"
;
if
(
it
->
si
.
node
==
DefaultObjectId
)
it
->
si
.
node
=
conf
->
getLocalNode
();
switch
(
t
)
{
case
UniversalIO
:
:
DO
:
...
...
@@ -528,7 +528,7 @@ int getValue( const string& args, UInterface &ui, Configuration* conf )
case
UniversalIO
:
:
AI
:
cout
<<
" value: "
<<
ui
.
getValue
(
it
->
si
.
id
,
it
->
si
.
node
)
<<
endl
;
break
;
default:
cerr
<<
"FAILED: Unknown 'iotype' for "
<<
it
->
fname
<<
endl
;
err
=
1
;
...
...
@@ -539,9 +539,9 @@ int getValue( const string& args, UInterface &ui, Configuration* conf )
{
cerr
<<
"(getValue): "
<<
ex
<<
endl
;
err
=
1
;
}
}
}
return
err
;
}
// --------------------------------------------------------------------------------------
...
...
@@ -551,11 +551,11 @@ int getCalibrate( const std::string& args, UInterface &ui )
typedef
std
::
list
<
UniSetTypes
::
ParamSInfo
>
SList
;
SList
sl
=
UniSetTypes
::
getSInfoList
(
args
,
UniSetTypes
::
conf
);
cout
<<
"====== getCalibrate ======"
<<
endl
;
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
it
++
)
{
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
++
it
)
{
if
(
it
->
si
.
node
==
DefaultObjectId
)
it
->
si
.
node
=
conf
->
getLocalNode
();
cout
<<
" name: ("
<<
it
->
si
.
id
<<
") "
<<
it
->
fname
<<
endl
;
cout
<<
" text: "
<<
conf
->
oind
->
getTextName
(
it
->
si
.
id
)
<<
"
\n
"
;
try
...
...
@@ -568,9 +568,9 @@ int getCalibrate( const std::string& args, UInterface &ui )
{
cerr
<<
"(getCalibrate): "
<<
ex
<<
endl
;;
err
=
1
;
}
}
}
return
err
;
}
...
...
@@ -578,14 +578,14 @@ int getCalibrate( const std::string& args, UInterface &ui )
int
getRawValue
(
const
std
::
string
&
args
,
UInterface
&
ui
)
{
int
err
=
0
;
typedef
std
::
list
<
UniSetTypes
::
ParamSInfo
>
SList
;
typedef
std
::
list
<
UniSetTypes
::
ParamSInfo
>
SList
;
SList
sl
=
UniSetTypes
::
getSInfoList
(
args
,
UniSetTypes
::
conf
);
cout
<<
"====== getRawValue ======"
<<
endl
;
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
it
++
)
for
(
SList
::
iterator
it
=
sl
.
begin
();
it
!=
sl
.
end
();
++
it
)
{
if
(
it
->
si
.
node
==
DefaultObjectId
)
it
->
si
.
node
=
conf
->
getLocalNode
();
it
->
si
.
node
=
conf
->
getLocalNode
();
cout
<<
" name: ("
<<
it
->
si
.
id
<<
") "
<<
it
->
fname
<<
endl
;
cout
<<
" text: "
<<
conf
->
oind
->
getTextName
(
it
->
si
.
id
)
<<
"
\n\n
"
;
try
...
...
@@ -596,7 +596,7 @@ int getRawValue( const std::string& args, UInterface &ui )
{
cerr
<<
"(getRawValue): "
<<
ex
<<
endl
;;
err
=
1
;
}
}
}
return
err
;
}
...
...
@@ -621,7 +621,7 @@ int logRotate( const string& arg, UInterface &ui )
cout
<<
"(logrotate): name='"
<<
arg
<<
"' не найдено!!!
\n
"
;
return
1
;
}
SystemMessage
sm
(
SystemMessage
::
LogRotate
);
TransportMessage
tm
(
sm
.
transport_msg
());
ui
.
send
(
id
,
tm
);
...
...
@@ -655,7 +655,7 @@ int configure( const string& arg, UInterface &ui )
ui
.
send
(
id
,
tm
);
cout
<<
"
\n
Send 'ReConfigure' to "
<<
arg
<<
" OK.
\n
"
;
}
return
0
;
return
0
;
}
// --------------------------------------------------------------------------------------
...
...
@@ -667,7 +667,7 @@ int oinfo( const string& arg, UInterface &ui )
cout
<<
"(oinfo): Не задан OID!"
<<
endl
;
return
1
;
}
UniSetTypes
::
ObjectVar
o
=
ui
.
resolve
(
oid
);
UniSetObject_i_var
obj
=
UniSetObject_i
::
_narrow
(
o
);
if
(
CORBA
::
is_nil
(
obj
))
...
...
@@ -679,7 +679,7 @@ int oinfo( const string& arg, UInterface &ui )
SimpleInfo_var
inf
=
obj
->
getInfo
();
cout
<<
inf
->
info
<<
endl
;
}
return
0
;
}
...
...
extensions/IOControl/iocalibr.cc
View file @
5589b01c
...
...
@@ -270,7 +270,7 @@ int main(int argc, char* argv[])
}
usleep
(
1000000
);
}
return
0
;
}
...
...
extensions/RRDServer/RRDServer.cc
View file @
5589b01c
...
...
@@ -74,7 +74,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
throw
SystemError
(
err
.
str
());
}
for
(;
it_rra
.
getCurrent
();
it_rra
++
)
for
(;
it_rra
.
getCurrent
();
++
it_rra
)
{
string
rra
(
it_rra
.
getProp
(
"rra"
)
);
if
(
rra
.
empty
()
)
...
...
extensions/SMDBServer/SMDBServer.cc
View file @
5589b01c
...
...
@@ -10,7 +10,7 @@ using namespace UniSetTypes;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
SMDBServer
::
SMDBServer
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
const
string
prefix
)
:
const
string
&
prefix
)
:
DBServer_MySQL
(
objId
),
prefix
(
prefix
)
{
...
...
@@ -178,7 +178,7 @@ void SMDBServer::help_print( int argc, const char* const* argv )
// -----------------------------------------------------------------------------
SMDBServer
*
SMDBServer
::
init_smdbserver
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
const
std
::
string
prefix
)
const
std
::
string
&
prefix
)
{
string
name
=
conf
->
getArgParam
(
"--"
+
prefix
+
"-name"
,
"DBServer"
);
if
(
name
.
empty
()
)
...
...
extensions/SMDBServer/SMDBServer.h
View file @
5589b01c
...
...
@@ -12,13 +12,13 @@ class SMDBServer:
{
public
:
SMDBServer
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
prefix
=
"dbserver"
);
const
std
::
string
&
prefix
=
"dbserver"
);
virtual
~
SMDBServer
();
/*! глобальная функция для инициализации объекта */
static
SMDBServer
*
init_smdbserver
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
prefix
=
"dbserver"
);
const
std
::
string
&
prefix
=
"dbserver"
);
/*! глобальная функция для вывода help-а */
static
void
help_print
(
int
argc
,
const
char
*
const
*
argv
);
...
...
include/modbus/ModbusTypes.h
View file @
5589b01c
...
...
@@ -197,18 +197,18 @@ namespace ModbusRTU
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
ErrorRetMessage
*
m
);
// -----------------------------------------------------------------------
struct
DataBits
{
{
DataBits
(
ModbusByte
b
);
DataBits
(
std
::
string
s
);
// example "10001111"
DataBits
();
const
DataBits
&
operator
=
(
const
ModbusByte
&
r
);
operator
ModbusByte
();
ModbusByte
mbyte
();
bool
operator
[](
const
in
t
i
){
return
b
[
i
];
}
bool
operator
[](
const
size_
t
i
){
return
b
[
i
];
}
std
::
bitset
<
BitsPerByte
>
b
;
};
...
...
@@ -216,33 +216,33 @@ namespace ModbusRTU
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
DataBits
*
m
);
// -----------------------------------------------------------------------
struct
DataBits16
{
{
DataBits16
(
ModbusData
d
);
DataBits16
(
std
::
string
s
);
// example "1000111110001111"
DataBits16
(
const
std
::
string
&
s
);
// example "1000111110001111"
DataBits16
();
const
DataBits16
&
operator
=
(
const
ModbusData
&
r
);
operator
ModbusData
();
ModbusData
mdata
();
bool
operator
[](
const
in
t
i
){
return
b
[
i
];
}
bool
operator
[](
const
size_
t
i
){
return
b
[
i
];
}
void
set
(
int
n
,
bool
s
){
b
.
set
(
n
,
s
);
}
std
::
bitset
<
BitsPerData
>
b
;
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
DataBits16
&
m
);
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
DataBits16
*
m
);
// -----------------------------------------------------------------------
/*! Запрос 0x01 */
/*! Запрос 0x01 */
struct
ReadCoilMessage
:
public
ModbusHeader
{
ModbusData
start
;
ModbusData
count
;
ModbusCRC
crc
;
// ------- to slave -------
ReadCoilMessage
(
ModbusAddr
addr
,
ModbusData
start
,
ModbusData
count
);
/*! преобразование для посылки в сеть */
...
...
@@ -262,7 +262,7 @@ namespace ModbusRTU
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
ReadCoilMessage
*
m
);
// -----------------------------------------------------------------------
/*! Ответ на 0x01 */
struct
ReadCoilRetMessage
:
public
ModbusHeader
...
...
@@ -285,7 +285,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static
int
getDataLen
(
ModbusMessage
&
m
);
ModbusCRC
crc
;
// ------- to master -------
ReadCoilRetMessage
(
ModbusAddr
_from
);
...
...
@@ -314,7 +314,7 @@ namespace ModbusRTU
/*! очистка данных */
void
clear
();
/*! проверка на переполнение */
inline
bool
isFull
()
{
...
...
@@ -322,8 +322,8 @@ namespace ModbusRTU
}
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
};
...
...
@@ -338,7 +338,7 @@ namespace ModbusRTU
ModbusData
start
;
ModbusData
count
;
ModbusCRC
crc
;
// ------- to slave -------
ReadInputStatusMessage
(
ModbusAddr
addr
,
ModbusData
start
,
ModbusData
count
);
/*! преобразование для посылки в сеть */
...
...
@@ -379,7 +379,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static
int
getDataLen
(
ModbusMessage
&
m
);
ModbusCRC
crc
;
// ------- to master -------
ReadInputStatusRetMessage
(
ModbusAddr
_from
);
...
...
@@ -408,16 +408,16 @@ namespace ModbusRTU
/*! очистка данных */
void
clear
();
/*! проверка на переполнение */
inline
bool
isFull
()
/*! проверка на переполнение */
inline
bool
isFull
()
{
return
(
(
int
)
bcnt
>=
MAXLENPACKET
);
}
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
};
...
...
@@ -426,14 +426,14 @@ namespace ModbusRTU
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
ReadInputStatusRetMessage
*
m
);
// -----------------------------------------------------------------------
/*! Запрос 0x03 */
/*! Запрос 0x03 */
struct
ReadOutputMessage
:
public
ModbusHeader
{
ModbusData
start
;
ModbusData
count
;
ModbusCRC
crc
;
// ------- to slave -------
ReadOutputMessage
(
ModbusAddr
addr
,
ModbusData
start
,
ModbusData
count
);
/*! преобразование для посылки в сеть */
...
...
@@ -475,7 +475,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static
int
getDataLen
(
ModbusMessage
&
m
);
ModbusCRC
crc
;
// ------- to master -------
ReadOutputRetMessage
(
ModbusAddr
_from
);
...
...
@@ -487,19 +487,19 @@ namespace ModbusRTU
/*! очистка данных */
void
clear
();
/*! проверка на переполнение */
inline
bool
isFull
()
/*! проверка на переполнение */
inline
bool
isFull
()
{
return
(
count
*
sizeof
(
ModbusData
)
>=
MAXLENPACKET
);
}
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
/*! преобразование для посылки в сеть */
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
// Это поле не входит в стандарт modbus
// оно вспомогательное и игнорируется при
// преобразовании в ModbusMessage.
...
...
@@ -518,7 +518,7 @@ namespace ModbusRTU
ModbusData
start
;
ModbusData
count
;
ModbusCRC
crc
;
// ------- to slave -------
ReadInputMessage
(
ModbusAddr
addr
,
ModbusData
start
,
ModbusData
count
);
/*! преобразование для посылки в сеть */
...
...
@@ -561,7 +561,7 @@ namespace ModbusRTU
/*! узнать длину данных следующий за предварительным заголовком ( в байтах ) */
static
int
getDataLen
(
ModbusMessage
&
m
);
ModbusCRC
crc
;
// ------- to master -------
ReadInputRetMessage
(
ModbusAddr
_from
);
...
...
@@ -573,21 +573,21 @@ namespace ModbusRTU
/*! очистка данных */
void
clear
();
/*! проверка на переполнение */
inline
bool
isFull
()
{
return
(
count
*
sizeof
(
ModbusData
)
>=
MAXLENPACKET
);
}
void
swapData
();
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
// Это поле не входит в стандарт modbus
// оно вспомогательное и игнорируется при
// преобразовании в ModbusMessage.
...
...
@@ -599,7 +599,7 @@ namespace ModbusRTU
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
ReadInputRetMessage
&
m
);
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
ReadInputRetMessage
*
m
);
// -----------------------------------------------------------------------
/*! Запрос на запись 0x0F */
/*! Запрос на запись 0x0F */
struct
ForceCoilsMessage
:
public
ModbusHeader
{
...
...
@@ -651,7 +651,7 @@ namespace ModbusRTU
void
init
(
ModbusMessage
&
m
);
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! размер предварительного заголовка
* (после основного до фактических данных)
...
...
@@ -741,7 +741,7 @@ namespace ModbusRTU
void
init
(
ModbusMessage
&
m
);
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! размер предварительного заголовка
* (после основного до фактических данных)
...
...
@@ -828,7 +828,7 @@ namespace ModbusRTU
void
init
(
ModbusMessage
&
m
);
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! размер предварительного заголовка
* (после основного до фактических данных)
...
...
@@ -911,7 +911,7 @@ namespace ModbusRTU
void
init
(
ModbusMessage
&
m
);
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! размер предварительного заголовка
* (после основного до фактических данных)
...
...
@@ -1015,7 +1015,7 @@ namespace ModbusRTU
}
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
...
...
@@ -1143,7 +1143,7 @@ namespace ModbusRTU
}
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
...
...
@@ -1211,7 +1211,7 @@ namespace ModbusRTU
}
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
...
...
@@ -1314,7 +1314,7 @@ namespace ModbusRTU
void
init
(
ModbusMessage
&
m
);
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! размер предварительного заголовка
* (после основного до фактических данных)
...
...
@@ -1355,7 +1355,7 @@ namespace ModbusRTU
{
return
(
count
>=
sizeof
(
data
)
);
}
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
...
...
@@ -1390,7 +1390,7 @@ namespace ModbusRTU
void
init
(
ModbusMessage
&
m
);
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! размер предварительного заголовка
* (после основного до фактических данных)
...
...
@@ -1473,7 +1473,7 @@ namespace ModbusRTU
void
clear
();
/*! размер данных(после заголовка) у данного типа сообщения */
in
t
szData
();
size_
t
szData
();
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
...
...
src/Communications/Modbus/ModbusServer.cc
View file @
5589b01c
...
...
@@ -1448,7 +1448,7 @@ ModbusRTU::mbErrCode ModbusServer::replyFileTransfer( const std::string &fname,
}
return
ModbusRTU
::
erNoError
;
}
}
// -------------------------------------------------------------------------
ModbusRTU
::
mbErrCode
ModbusServer
::
replySetDateTime
(
ModbusRTU
::
SetDateTimeMessage
&
query
,
ModbusRTU
::
SetDateTimeRetMessage
&
reply
,
...
...
@@ -1462,15 +1462,16 @@ ModbusRTU::mbErrCode ModbusServer::replySetDateTime( ModbusRTU::SetDateTimeMessa
if
(
gettimeofday
(
&
set
,
&
tz
)
==
0
)
{
struct
tm
*
t
=
localtime
(
&
set
.
tv_sec
);
t
->
tm_sec
=
query
.
sec
;
t
->
tm_min
=
query
.
min
;
t
->
tm_hour
=
query
.
hour
;
t
->
tm_mday
=
query
.
day
;
t
->
tm_mon
=
query
.
mon
-
1
;
// t->tm_year = (query.century>19) ? query.year + query.century*10 - 1900 : query.year;
t
->
tm_year
=
(
query
.
century
>
19
)
?
query
.
year
+
2000
-
1900
:
query
.
year
;
set
.
tv_sec
=
mktime
(
t
);
struct
tm
t
;
localtime_r
(
&
set
.
tv_sec
,
&
t
);
t
.
tm_sec
=
query
.
sec
;
t
.
tm_min
=
query
.
min
;
t
.
tm_hour
=
query
.
hour
;
t
.
tm_mday
=
query
.
day
;
t
.
tm_mon
=
query
.
mon
-
1
;
// t.tm_year = (query.century>19) ? query.year + query.century*10 - 1900 : query.year;
t
.
tm_year
=
(
query
.
century
>
19
)
?
query
.
year
+
2000
-
1900
:
query
.
year
;
set
.
tv_sec
=
mktime
(
&
t
);
set
.
tv_usec
=
0
;
if
(
settimeofday
(
&
set
,
&
tz
)
==
0
)
...
...
src/Communications/Modbus/ModbusTypes.cc
View file @
5589b01c
...
...
@@ -385,14 +385,14 @@ const DataBits& DataBits::operator=( const ModbusByte& r )
{
for
(
unsigned
int
i
=
0
;
i
<
b
.
size
();
i
++
)
b
[
i
]
=
r
&
(
1
<<
i
);
return
(
*
this
);
}
// -------------------------------------------------------------------------
std
::
ostream
&
ModbusRTU
::
operator
<<
(
std
::
ostream
&
os
,
DataBits
&
d
)
{
os
<<
"["
;
for
(
unsigned
int
i
=
(
int
)
d
.
b
.
size
()
-
1
;
i
>=
0
;
i
--
)
for
(
int
i
=
d
.
b
.
size
()
-
1
;
i
>=
0
;
i
--
)
os
<<
d
.
b
[
i
];
os
<<
"]"
;
...
...
@@ -404,10 +404,10 @@ std::ostream& ModbusRTU::operator<<(std::ostream& os, DataBits* d )
return
os
<<
(
*
d
);
}
// -------------------------------------------------------------------------
DataBits16
::
DataBits16
(
std
::
string
s
)
:
DataBits16
::
DataBits16
(
const
std
::
string
&
s
)
:
b
(
s
)
{
}
// -------------------------------------------------------------------------
DataBits16
::
DataBits16
(
ModbusData
d
)
...
...
@@ -439,16 +439,17 @@ ModbusData DataBits16::mdata()
// -------------------------------------------------------------------------
const
DataBits16
&
DataBits16
::
operator
=
(
const
ModbusData
&
r
)
{
for
(
unsigned
int
i
=
0
;
i
<
b
.
size
();
i
++
)
const
size_t
sz
=
b
.
size
();
for
(
unsigned
int
i
=
0
;
i
<
sz
;
i
++
)
b
[
i
]
=
r
&
(
1
<<
i
);
return
(
*
this
);
}
// -------------------------------------------------------------------------
std
::
ostream
&
ModbusRTU
::
operator
<<
(
std
::
ostream
&
os
,
DataBits16
&
d
)
{
os
<<
"["
;
for
(
unsigned
int
i
=
(
int
)
d
.
b
.
size
()
-
1
;
i
>=
0
;
i
--
)
for
(
int
i
=
d
.
b
.
size
()
-
1
;
i
>=
0
;
i
--
)
os
<<
d
.
b
[
i
];
os
<<
"]"
;
...
...
@@ -478,14 +479,14 @@ void ReadCoilRetMessage::init( ModbusMessage& m )
memset
(
this
,
0
,
sizeof
(
*
this
));
addr
=
m
.
addr
;
func
=
m
.
func
;
bcnt
=
m
.
data
[
0
];
if
(
bcnt
>
MAXLENPACKET
)
throw
mbException
(
erPacketTooLong
);
memcpy
(
&
data
,
&
(
m
.
data
[
1
]),
bcnt
);
memcpy
(
&
crc
,
&
(
m
.
data
[
bcnt
+
1
]),
szCRC
);
}
}
// -------------------------------------------------------------------------
int
ReadCoilRetMessage
::
getDataLen
(
ModbusMessage
&
m
)
{
...
...
@@ -512,7 +513,7 @@ bool ReadCoilRetMessage::setBit( unsigned char dnum, unsigned char bnum, bool st
data
[
dnum
]
=
d
;
return
true
;
}
return
false
;
}
// -------------------------------------------------------------------------
...
...
@@ -520,7 +521,7 @@ bool ReadCoilRetMessage::addData( DataBits d )
{
if
(
isFull
()
)
return
false
;
data
[
bcnt
++
]
=
d
.
mbyte
();
return
true
;
}
...
...
@@ -532,7 +533,7 @@ bool ReadCoilRetMessage::getData( unsigned char dnum, DataBits& d )
d
=
data
[
dnum
];
return
true
;
}
return
false
;
}
// -------------------------------------------------------------------------
...
...
@@ -551,7 +552,7 @@ ModbusMessage ReadCoilRetMessage::transport_msg()
// копируем заголовок и данные
memcpy
(
&
mm
,
this
,
szModbusHeader
);
memcpy
(
&
mm
.
data
,
&
bcnt
,
sizeof
(
bcnt
));
memcpy
(
&
mm
.
data
,
&
bcnt
,
sizeof
(
bcnt
));
int
ind
=
sizeof
(
bcnt
);
// копируем данные
...
...
@@ -570,7 +571,7 @@ ModbusMessage ReadCoilRetMessage::transport_msg()
return
mm
;
}
// -------------------------------------------------------------------------
in
t
ReadCoilRetMessage
::
szData
()
size_
t
ReadCoilRetMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
bcnt
)
+
bcnt
+
szCRC
;
...
...
@@ -639,7 +640,7 @@ void ReadInputStatusMessage::init( ModbusMessage& m )
assert
(
m
.
func
==
fnReadInputStatus
);
memset
(
this
,
0
,
sizeof
(
*
this
));
memcpy
(
this
,
&
m
,
sizeof
(
*
this
));
// m.len
// переворачиваем слова
start
=
SWAPSHORT
(
start
);
count
=
SWAPSHORT
(
count
);
...
...
@@ -678,14 +679,14 @@ void ReadInputStatusRetMessage::init( ModbusMessage& m )
memset
(
this
,
0
,
sizeof
(
*
this
));
addr
=
m
.
addr
;
func
=
m
.
func
;
bcnt
=
m
.
data
[
0
];
if
(
bcnt
>
MAXLENPACKET
)
throw
mbException
(
erPacketTooLong
);
memcpy
(
&
data
,
&
(
m
.
data
[
1
]),
bcnt
);
memcpy
(
&
crc
,
&
(
m
.
data
[
bcnt
+
1
]),
szCRC
);
}
}
// -------------------------------------------------------------------------
int
ReadInputStatusRetMessage
::
getDataLen
(
ModbusMessage
&
m
)
{
...
...
@@ -770,7 +771,7 @@ ModbusMessage ReadInputStatusRetMessage::transport_msg()
return
mm
;
}
// -------------------------------------------------------------------------
in
t
ReadInputStatusRetMessage
::
szData
()
size_
t
ReadInputStatusRetMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
bcnt
)
+
bcnt
+
szCRC
;
...
...
@@ -989,7 +990,7 @@ ModbusMessage ReadOutputRetMessage::transport_msg()
return
mm
;
}
// -------------------------------------------------------------------------
in
t
ReadOutputRetMessage
::
szData
()
size_
t
ReadOutputRetMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
bcnt
)
+
count
*
sizeof
(
ModbusData
)
+
szCRC
;
...
...
@@ -1197,7 +1198,7 @@ ModbusMessage ReadInputRetMessage::transport_msg()
return
mm
;
}
// -------------------------------------------------------------------------
in
t
ReadInputRetMessage
::
szData
()
size_
t
ReadInputRetMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
bcnt
)
+
count
*
sizeof
(
ModbusData
)
+
szCRC
;
...
...
@@ -1370,7 +1371,7 @@ bool ForceCoilsMessage::checkFormat()
return
(
func
==
fnForceMultipleCoils
);
}
// -------------------------------------------------------------------------
in
t
ForceCoilsMessage
::
szData
()
size_
t
ForceCoilsMessage
::
szData
()
{
return
szHead
()
+
bcnt
+
szCRC
;
}
...
...
@@ -1617,7 +1618,7 @@ bool WriteOutputMessage::checkFormat()
return
(
(
bcnt
==
(
quant
*
sizeof
(
ModbusData
)))
&&
(
func
==
fnWriteOutputRegisters
)
);
}
// -------------------------------------------------------------------------
in
t
WriteOutputMessage
::
szData
()
size_
t
WriteOutputMessage
::
szData
()
{
return
szHead
()
+
bcnt
+
szCRC
;
}
...
...
@@ -1812,7 +1813,7 @@ bool ForceSingleCoilMessage::checkFormat()
return
(
func
==
fnForceSingleCoil
);
}
// -------------------------------------------------------------------------
in
t
ForceSingleCoilMessage
::
szData
()
size_
t
ForceSingleCoilMessage
::
szData
()
{
return
szHead
()
+
sizeof
(
ModbusData
)
+
szCRC
;
}
...
...
@@ -1984,7 +1985,7 @@ bool WriteSingleOutputMessage::checkFormat()
return
(
(
func
==
fnWriteOutputSingleRegister
)
);
}
// -------------------------------------------------------------------------
in
t
WriteSingleOutputMessage
::
szData
()
size_
t
WriteSingleOutputMessage
::
szData
()
{
return
szHead
()
+
sizeof
(
ModbusData
)
+
szCRC
;
}
...
...
@@ -2266,7 +2267,7 @@ ModbusMessage DiagnosticMessage::transport_msg()
return
mm
;
}
// -------------------------------------------------------------------------
in
t
DiagnosticMessage
::
szData
()
size_
t
DiagnosticMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
subf
)
+
count
*
sizeof
(
ModbusData
)
+
szCRC
;
...
...
@@ -2595,7 +2596,7 @@ ModbusMessage MEIMessageRetRDI::transport_msg()
return
mm
;
}
// -------------------------------------------------------------------------
in
t
MEIMessageRetRDI
::
szData
()
size_
t
MEIMessageRetRDI
::
szData
()
{
// заголовочные поля + фактическое число данных + контрольная сумма
return
6
+
bcnt
+
szCRC
;
...
...
@@ -2761,7 +2762,7 @@ ModbusMessage JournalCommandRetMessage::transport_msg()
return
mm
;
}
// -------------------------------------------------------------------------
in
t
JournalCommandRetMessage
::
szData
()
size_
t
JournalCommandRetMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
bcnt
)
+
count
*
sizeof
(
ModbusData
)
+
szCRC
;
...
...
@@ -3097,12 +3098,12 @@ void RemoteServiceMessage::init( ModbusMessage& m )
// copy not include CRC
memcpy
(
this
,
&
m
,
szModbusHeader
+
m
.
len
);
// последний элемент это CRC
memcpy
(
&
crc
,
&
(
m
.
data
[
m
.
len
-
szCRC
]),
szCRC
);
}
// -------------------------------------------------------------------------
in
t
RemoteServiceMessage
::
szData
()
size_
t
RemoteServiceMessage
::
szData
()
{
return
szHead
()
+
bcnt
+
szCRC
;
}
...
...
@@ -3162,7 +3163,7 @@ void RemoteServiceRetMessage::clear()
bcnt
=
0
;
}
// -------------------------------------------------------------------------
in
t
RemoteServiceRetMessage
::
szData
()
size_
t
RemoteServiceRetMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
bcnt
)
+
count
*
sizeof
(
ModbusByte
)
+
szCRC
;
...
...
@@ -3222,10 +3223,10 @@ void ReadFileRecordMessage::init( ModbusMessage& m )
assert
(
m
.
func
==
fnReadFileRecord
);
memset
(
this
,
0
,
sizeof
(
*
this
));
// copy not include CRC
memcpy
(
this
,
&
m
,
szModbusHeader
+
m
.
len
);
// потом проверяем
if
(
!
checkFormat
()
)
{
...
...
@@ -3249,7 +3250,7 @@ void ReadFileRecordMessage::init( ModbusMessage& m )
}
}
// -------------------------------------------------------------------------
in
t
ReadFileRecordMessage
::
szData
()
size_
t
ReadFileRecordMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
bcnt
)
+
count
*
sizeof
(
SubRequest
)
+
szCRC
;
...
...
@@ -3419,7 +3420,7 @@ int FileTransferRetMessage::getDataLen( ModbusMessage& m )
return
m
.
data
[
0
];
}
// -----------------------------------------------------------------------
in
t
FileTransferRetMessage
::
szData
()
size_
t
FileTransferRetMessage
::
szData
()
{
// фактическое число данных + контрольная сумма
return
sizeof
(
ModbusByte
)
*
2
+
sizeof
(
ModbusData
)
*
3
+
dlen
+
szCRC
;
...
...
src/ObjectRepository/UniSetTypes.cc
View file @
5589b01c
...
...
@@ -235,12 +235,12 @@ using namespace UniSetTypes;
std
::
list
<
UniSetTypes
::
ParamSInfo
>
UniSetTypes
::
getSInfoList
(
const
string
&
str
,
Configuration
*
conf
)
{
std
::
list
<
UniSetTypes
::
ParamSInfo
>
res
;
std
::
list
<
std
::
string
>
l
=
UniSetTypes
::
explode_str
(
str
,
','
);
for
(
std
::
list
<
std
::
string
>::
iterator
it
=
l
.
begin
();
it
!=
l
.
end
();
it
++
)
for
(
std
::
list
<
std
::
string
>::
iterator
it
=
l
.
begin
();
it
!=
l
.
end
();
++
it
)
{
UniSetTypes
::
ParamSInfo
item
;
std
::
list
<
std
::
string
>
p
=
UniSetTypes
::
explode_str
((
*
it
),
'='
);
std
::
string
s
=
""
;
if
(
p
.
size
()
==
1
)
...
...
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