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
mtT_Str8
};
// -------------------------------------------------------------------------
std
::
string
type2str
(
MTRType
t
);
/*!< преоразование строки в тип */
MTRType
str2type
(
const
std
::
string
&
s
);
/*!< преобразование названия в строку */
std
::
string
type2str
(
MTRType
t
);
/*!< преоразование строки в тип */
MTRType
str2type
(
const
std
::
string
&
s
);
/*!< преобразование названия в строку */
int
wsize
(
MTRType
t
);
/*!< длина данных в словах */
// -------------------------------------------------------------------------
// Информация
const
ModbusRTU
::
ModbusData
regModelNumber
=
0x01
;
const
ModbusRTU
::
ModbusData
regSerialNumber
=
0x09
;
const
ModbusRTU
::
ModbusData
regModelNumber
=
0x01
;
const
ModbusRTU
::
ModbusData
regSerialNumber
=
0x09
;
std
::
string
getModelNumber
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
);
std
::
string
getSerialNumber
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
);
// -------------------------------------------------------------------------
// Настройки связи (чтение - read03, запись - write06)
const
ModbusRTU
::
ModbusData
regUpdateConfiguration
=
53
;
const
ModbusRTU
::
ModbusData
regAddress
=
55
;
const
ModbusRTU
::
ModbusData
regBaudRate
=
56
;
const
ModbusRTU
::
ModbusData
regStopBit
=
57
;
/* 0 - Stop bit, 1 - Stop bits */
const
ModbusRTU
::
ModbusData
regParity
=
58
;
const
ModbusRTU
::
ModbusData
regDataBits
=
59
;
const
ModbusRTU
::
ModbusData
regAddress
=
55
;
const
ModbusRTU
::
ModbusData
regBaudRate
=
56
;
const
ModbusRTU
::
ModbusData
regStopBit
=
57
;
/* 0 - Stop bit, 1 - Stop bits */
const
ModbusRTU
::
ModbusData
regParity
=
58
;
const
ModbusRTU
::
ModbusData
regDataBits
=
59
;
enum
mtrBaudRate
{
br1200
=
0
,
br2400
=
1
,
br4800
=
2
,
br9600
=
3
,
br19200
=
4
,
br38400
=
5
,
br57600
=
6
,
br115200
=
7
br1200
=
0
,
br2400
=
1
,
br4800
=
2
,
br9600
=
3
,
br19200
=
4
,
br38400
=
5
,
br57600
=
6
,
br115200
=
7
};
enum
mtrParity
{
mpNoParity
=
0
,
mpOddParity
=
1
,
mpEvenParity
=
2
mpNoParity
=
0
,
mpOddParity
=
1
,
mpEvenParity
=
2
};
enum
mtrDataBits
{
db8Bits
=
0
,
db7Bits
=
1
db8Bits
=
0
,
db7Bits
=
1
};
bool
setAddress
(
ModbusRTUMaster
*
mb
,
ModbusRTU
::
ModbusAddr
addr
,
ModbusRTU
::
ModbusAddr
newAddr
);
...
...
@@ -129,7 +129,7 @@ namespace MTR
static
MTRType
type
(){
return
mtT1
;
}
// ------------------------------------------
unsigned
short
val
;
};
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
T1
&
t
);
// -------------------------------------------------------------------------
class
T2
...
...
@@ -162,7 +162,7 @@ namespace MTR
// ------------------------------------------
// конструкторы на разные случаи...
T3
(){
memset
(
raw
.
v
,
0
,
sizeof
(
raw
.
v
));
}
T3
(
signed
int
i
){
raw
.
val
=
i
;
}
T3
(
unsigned
short
v1
,
unsigned
short
v2
)
...
...
@@ -170,7 +170,7 @@ namespace MTR
raw
.
v
[
0
]
=
v1
;
raw
.
v
[
1
]
=
v2
;
}
T3
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
if
(
size
>=
u2size
)
...
...
@@ -207,7 +207,7 @@ namespace MTR
memcpy
(
c
,
&
v1
,
sizeof
(
c
));
sval
=
std
::
string
(
c
);
}
T4
(
const
ModbusRTU
::
ModbusData
*
data
)
:
raw
(
data
[
0
])
{
...
...
@@ -215,7 +215,7 @@ namespace MTR
memcpy
(
c
,
&
(
data
[
0
]),
sizeof
(
c
));
sval
=
std
::
string
(
c
);
}
~
T4
(){}
// ------------------------------------------
/*! размер в словах */
...
...
@@ -257,7 +257,7 @@ namespace MTR
{
raw
.
lval
=
v
;
}
T5
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
if
(
size
>=
u2size
)
...
...
@@ -310,7 +310,7 @@ namespace MTR
{
raw
.
lval
=
v
;
}
T6
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
if
(
size
>=
u2size
)
...
...
@@ -363,7 +363,7 @@ namespace MTR
{
raw
.
lval
=
v
;
}
T7
(
const
ModbusRTU
::
ModbusData
*
data
,
int
size
)
{
if
(
size
>=
u2size
)
...
...
@@ -421,7 +421,7 @@ namespace MTR
raw
.
v
[
0
]
=
data
[
1
];
}
}
inline
unsigned
short
day
(){
return
raw
.
u2
.
day
;
}
inline
unsigned
short
mon
(){
return
raw
.
u2
.
mon
;
}
inline
unsigned
short
hour
(){
return
raw
.
u2
.
hour
;
}
...
...
@@ -522,7 +522,7 @@ namespace MTR
raw
.
v
[
1
]
=
data
[
0
];
}
}
inline
unsigned
short
year
(){
return
raw
.
u2
.
year
;
}
inline
unsigned
short
mon
(){
return
raw
.
u2
.
mon
;
}
inline
unsigned
short
day
(){
return
raw
.
u2
.
day
;
}
...
...
@@ -538,7 +538,7 @@ namespace MTR
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
T10
&
t
);
// --------------------------------------------------------------------------
class
T16
{
public
:
...
...
@@ -650,7 +650,7 @@ namespace MTR
// ------------------------------------------
operator
float
(){
return
raw
.
val
;
}
operator
long
(){
return
lroundf
(
raw
.
val
);
}
F1mem
raw
;
};
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
F1
&
t
);
...
...
include/modbus/ModbusTypes.h
View file @
5fa48362
...
...
@@ -175,16 +175,16 @@ namespace ModbusRTU
{
ModbusByte
ecode
;
ModbusCRC
crc
;
// ------- from slave -------
ErrorRetMessage
(
ModbusMessage
&
m
);
ErrorRetMessage
&
operator
=
(
ModbusMessage
&
m
);
void
init
(
ModbusMessage
&
m
);
// ------- to master -------
ErrorRetMessage
(
ModbusAddr
_from
,
ModbusByte
_func
,
ModbusByte
ecode
);
/*! преобразование для посылки в сеть */
/*! преобразование для посылки в сеть */
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