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
5fa48362
Commit
5fa48362
authored
Feb 25, 2014
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(Modbus): дописал использование std::move для функций transport_msg().
parent
a9671a84
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
87 deletions
+85
-87
MTR.h
extensions/include/MTR.h
+36
-36
ModbusTypes.h
include/modbus/ModbusTypes.h
+3
-3
ModbusTypes.cc
src/Communications/Modbus/ModbusTypes.cc
+46
-48
No files found.
extensions/include/MTR.h
View file @
5fa48362
...
@@ -36,48 +36,48 @@ namespace MTR
...
@@ -36,48 +36,48 @@ namespace MTR
mtT_Str8
mtT_Str8
};
};
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
std
::
string
type2str
(
MTRType
t
);
/*!< преоразование строки в тип */
std
::
string
type2str
(
MTRType
t
);
/*!< преоразование строки в тип */
MTRType
str2type
(
const
std
::
string
&
s
);
/*!< преобразование названия в строку */
MTRType
str2type
(
const
std
::
string
&
s
);
/*!< преобразование названия в строку */
int
wsize
(
MTRType
t
);
/*!< длина данных в словах */
int
wsize
(
MTRType
t
);
/*!< длина данных в словах */
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
// Информация
// Информация
const
ModbusRTU
::
ModbusData
regModelNumber
=
0x01
;
const
ModbusRTU
::
ModbusData
regModelNumber
=
0x01
;
const
ModbusRTU
::
ModbusData
regSerialNumber
=
0x09
;
const
ModbusRTU
::
ModbusData
regSerialNumber
=
0x09
;
std
::
string
getModelNumber
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
);
std
::
string
getModelNumber
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
);
std
::
string
getSerialNumber
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
);
std
::
string
getSerialNumber
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
);
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
// Настройки связи (чтение - read03, запись - write06)
// Настройки связи (чтение - read03, запись - write06)
const
ModbusRTU
::
ModbusData
regUpdateConfiguration
=
53
;
const
ModbusRTU
::
ModbusData
regUpdateConfiguration
=
53
;
const
ModbusRTU
::
ModbusData
regAddress
=
55
;
const
ModbusRTU
::
ModbusData
regAddress
=
55
;
const
ModbusRTU
::
ModbusData
regBaudRate
=
56
;
const
ModbusRTU
::
ModbusData
regBaudRate
=
56
;
const
ModbusRTU
::
ModbusData
regStopBit
=
57
;
/* 0 - Stop bit, 1 - Stop bits */
const
ModbusRTU
::
ModbusData
regStopBit
=
57
;
/* 0 - Stop bit, 1 - Stop bits */
const
ModbusRTU
::
ModbusData
regParity
=
58
;
const
ModbusRTU
::
ModbusData
regParity
=
58
;
const
ModbusRTU
::
ModbusData
regDataBits
=
59
;
const
ModbusRTU
::
ModbusData
regDataBits
=
59
;
enum
mtrBaudRate
enum
mtrBaudRate
{
{
br1200
=
0
,
br1200
=
0
,
br2400
=
1
,
br2400
=
1
,
br4800
=
2
,
br4800
=
2
,
br9600
=
3
,
br9600
=
3
,
br19200
=
4
,
br19200
=
4
,
br38400
=
5
,
br38400
=
5
,
br57600
=
6
,
br57600
=
6
,
br115200
=
7
br115200
=
7
};
};
enum
mtrParity
enum
mtrParity
{
{
mpNoParity
=
0
,
mpNoParity
=
0
,
mpOddParity
=
1
,
mpOddParity
=
1
,
mpEvenParity
=
2
mpEvenParity
=
2
};
};
enum
mtrDataBits
enum
mtrDataBits
{
{
db8Bits
=
0
,
db8Bits
=
0
,
db7Bits
=
1
db7Bits
=
1
};
};
bool
setAddress
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusAddr
newAddr
);
bool
setAddress
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusAddr
newAddr
);
...
@@ -129,7 +129,7 @@ namespace MTR
...
@@ -129,7 +129,7 @@ namespace MTR
static
MTRType
type
(){
return
mtT1
;
}
static
MTRType
type
(){
return
mtT1
;
}
// ------------------------------------------
// ------------------------------------------
unsigned
short
val
;
unsigned
short
val
;
};
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
T1
&
t
);
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
T1
&
t
);
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
class
T2
class
T2
...
@@ -162,7 +162,7 @@ namespace MTR
...
@@ -162,7 +162,7 @@ namespace MTR
// ------------------------------------------
// ------------------------------------------
// конструкторы на разные случаи...
// конструкторы на разные случаи...
T3
(){
memset
(
raw
.
v
,
0
,
sizeof
(
raw
.
v
));
}
T3
(){
memset
(
raw
.
v
,
0
,
sizeof
(
raw
.
v
));
}
T3
(
signed
int
i
){
raw
.
val
=
i
;
}
T3
(
signed
int
i
){
raw
.
val
=
i
;
}
T3
(
unsigned
short
v1
,
unsigned
short
v2
)
T3
(
unsigned
short
v1
,
unsigned
short
v2
)
...
@@ -170,7 +170,7 @@ namespace MTR
...
@@ -170,7 +170,7 @@ namespace MTR
raw
.
v
[
0
]
=
v1
;
raw
.
v
[
0
]
=
v1
;
raw
.
v
[
1
]
=
v2
;
raw
.
v
[
1
]
=
v2
;
}
}
T3
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
T3
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
{
if
(
size
>=
u2size
)
if
(
size
>=
u2size
)
...
@@ -207,7 +207,7 @@ namespace MTR
...
@@ -207,7 +207,7 @@ namespace MTR
memcpy
(
c
,
&
v1
,
sizeof
(
c
));
memcpy
(
c
,
&
v1
,
sizeof
(
c
));
sval
=
std
::
string
(
c
);
sval
=
std
::
string
(
c
);
}
}
T4
(
const
ModbusRTU
::
ModbusData
*
data
)
:
T4
(
const
ModbusRTU
::
ModbusData
*
data
)
:
raw
(
data
[
0
])
raw
(
data
[
0
])
{
{
...
@@ -215,7 +215,7 @@ namespace MTR
...
@@ -215,7 +215,7 @@ namespace MTR
memcpy
(
c
,
&
(
data
[
0
]),
sizeof
(
c
));
memcpy
(
c
,
&
(
data
[
0
]),
sizeof
(
c
));
sval
=
std
::
string
(
c
);
sval
=
std
::
string
(
c
);
}
}
~
T4
(){}
~
T4
(){}
// ------------------------------------------
// ------------------------------------------
/*! размер в словах */
/*! размер в словах */
...
@@ -257,7 +257,7 @@ namespace MTR
...
@@ -257,7 +257,7 @@ namespace MTR
{
{
raw
.
lval
=
v
;
raw
.
lval
=
v
;
}
}
T5
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
T5
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
{
if
(
size
>=
u2size
)
if
(
size
>=
u2size
)
...
@@ -310,7 +310,7 @@ namespace MTR
...
@@ -310,7 +310,7 @@ namespace MTR
{
{
raw
.
lval
=
v
;
raw
.
lval
=
v
;
}
}
T6
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
T6
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
{
if
(
size
>=
u2size
)
if
(
size
>=
u2size
)
...
@@ -363,7 +363,7 @@ namespace MTR
...
@@ -363,7 +363,7 @@ namespace MTR
{
{
raw
.
lval
=
v
;
raw
.
lval
=
v
;
}
}
T7
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
T7
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
{
if
(
size
>=
u2size
)
if
(
size
>=
u2size
)
...
@@ -421,7 +421,7 @@ namespace MTR
...
@@ -421,7 +421,7 @@ namespace MTR
raw
.
v
[
0
]
=
data
[
1
];
raw
.
v
[
0
]
=
data
[
1
];
}
}
}
}
inline
unsigned
short
day
(){
return
raw
.
u2
.
day
;
}
inline
unsigned
short
day
(){
return
raw
.
u2
.
day
;
}
inline
unsigned
short
mon
(){
return
raw
.
u2
.
mon
;
}
inline
unsigned
short
mon
(){
return
raw
.
u2
.
mon
;
}
inline
unsigned
short
hour
(){
return
raw
.
u2
.
hour
;
}
inline
unsigned
short
hour
(){
return
raw
.
u2
.
hour
;
}
...
@@ -522,7 +522,7 @@ namespace MTR
...
@@ -522,7 +522,7 @@ namespace MTR
raw
.
v
[
1
]
=
data
[
0
];
raw
.
v
[
1
]
=
data
[
0
];
}
}
}
}
inline
unsigned
short
year
(){
return
raw
.
u2
.
year
;
}
inline
unsigned
short
year
(){
return
raw
.
u2
.
year
;
}
inline
unsigned
short
mon
(){
return
raw
.
u2
.
mon
;
}
inline
unsigned
short
mon
(){
return
raw
.
u2
.
mon
;
}
inline
unsigned
short
day
(){
return
raw
.
u2
.
day
;
}
inline
unsigned
short
day
(){
return
raw
.
u2
.
day
;
}
...
@@ -538,7 +538,7 @@ namespace MTR
...
@@ -538,7 +538,7 @@ namespace MTR
};
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
T10
&
t
);
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
T10
&
t
);
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
class
T16
class
T16
{
{
public
:
public
:
...
@@ -650,7 +650,7 @@ namespace MTR
...
@@ -650,7 +650,7 @@ namespace MTR
// ------------------------------------------
// ------------------------------------------
operator
float
(){
return
raw
.
val
;
}
operator
float
(){
return
raw
.
val
;
}
operator
long
(){
return
lroundf
(
raw
.
val
);
}
operator
long
(){
return
lroundf
(
raw
.
val
);
}
F1mem
raw
;
F1mem
raw
;
};
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
F1
&
t
);
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
F1
&
t
);
...
...
include/modbus/ModbusTypes.h
View file @
5fa48362
...
@@ -175,16 +175,16 @@ namespace ModbusRTU
...
@@ -175,16 +175,16 @@ namespace ModbusRTU
{
{
ModbusByte
ecode
;
ModbusByte
ecode
;
ModbusCRC
crc
;
ModbusCRC
crc
;
// ------- from slave -------
// ------- from slave -------
ErrorRetMessage
(
ModbusMessage
&
m
);
ErrorRetMessage
(
ModbusMessage
&
m
);
ErrorRetMessage
&
operator
=
(
ModbusMessage
&
m
);
ErrorRetMessage
&
operator
=
(
ModbusMessage
&
m
);
void
init
(
ModbusMessage
&
m
);
void
init
(
ModbusMessage
&
m
);
// ------- to master -------
// ------- to master -------
ErrorRetMessage
(
ModbusAddr
_from
,
ModbusByte
_func
,
ModbusByte
ecode
);
ErrorRetMessage
(
ModbusAddr
_from
,
ModbusByte
_func
,
ModbusByte
ecode
);
/*! преобразование для посылки в сеть */
/*! преобразование для посылки в сеть */
ModbusMessage
transport_msg
();
ModbusMessage
transport_msg
();
/*! размер данных(после заголовка) у данного типа сообщения
/*! размер данных(после заголовка) у данного типа сообщения
...
...
src/Communications/Modbus/ModbusTypes.cc
View file @
5fa48362
This diff is collapsed.
Click to expand it.
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