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
81226a82
Commit
81226a82
authored
Jul 11, 2021
by
Pavel Vainerman
Committed by
Pavel Vainerman
Jul 14, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[unet-zero-copy]: long -> int64_t
parent
ead8b934
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
18 deletions
+35
-18
UDPPacket.cc
extensions/UNetUDP/UDPPacket.cc
+2
-2
UDPPacket.h
extensions/UNetUDP/UDPPacket.h
+9
-9
UNetReceiver.cc
extensions/UNetUDP/UNetReceiver.cc
+0
-7
test_unetudp.cc
extensions/UNetUDP/tests/test_unetudp.cc
+24
-0
No files found.
extensions/UNetUDP/UDPPacket.cc
View file @
81226a82
...
...
@@ -173,13 +173,13 @@ namespace uniset
return
header
.
acount
-
1
;
}
// -----------------------------------------------------------------------------
size_t
UDPMessage
::
addAData
(
long
id
,
long
val
)
noexcept
size_t
UDPMessage
::
addAData
(
int64_t
id
,
int64_t
val
)
noexcept
{
UDPAData
d
(
id
,
val
);
return
addAData
(
d
);
}
// -----------------------------------------------------------------------------
bool
UDPMessage
::
setAData
(
size_t
index
,
long
val
)
noexcept
bool
UDPMessage
::
setAData
(
size_t
index
,
int64_t
val
)
noexcept
{
if
(
index
<
MaxACount
)
{
...
...
extensions/UNetUDP/UDPPacket.h
View file @
81226a82
...
...
@@ -53,8 +53,8 @@ namespace uniset
uint32_t
magic
;
uint8_t
_be_order
;
// 1 - BE byte order, 0 - LE byte order
size_t
num
;
long
nodeID
;
long
procID
;
int64_t
nodeID
;
int64_t
procID
;
size_t
dcount
;
/*!< количество булевых величин */
size_t
acount
;
/*!< количество аналоговых величин */
}
__attribute__
((
packed
));
...
...
@@ -67,10 +67,10 @@ namespace uniset
struct
UDPAData
{
UDPAData
()
noexcept
:
id
(
uniset
::
DefaultObjectId
),
val
(
0
)
{}
UDPAData
(
long
id
,
long
val
)
noexcept
:
id
(
id
),
val
(
val
)
{}
UDPAData
(
int64_t
id
,
int64_t
val
)
noexcept
:
id
(
id
),
val
(
val
)
{}
long
id
;
long
val
;
int64_t
id
;
int64_t
val
;
}
__attribute__
((
packed
));
...
...
@@ -91,7 +91,7 @@ namespace uniset
bool
isOk
()
noexcept
;
// \warning в случае переполнения возвращается MaxDCount
size_t
addDData
(
long
id
,
bool
val
)
noexcept
;
size_t
addDData
(
int64_t
id
,
bool
val
)
noexcept
;
//!\return true - successful
bool
setDData
(
size_t
index
,
bool
val
)
noexcept
;
...
...
@@ -105,10 +105,10 @@ namespace uniset
// функции addAData возвращают индекс, по которому потом можно напрямую писать при помощи setAData(index)
// \warning в случае переполнения возвращается MaxACount
size_t
addAData
(
const
UDPAData
&
dat
)
noexcept
;
size_t
addAData
(
long
id
,
long
val
)
noexcept
;
size_t
addAData
(
int64_t
id
,
int64_t
val
)
noexcept
;
//!\return true - successful
bool
setAData
(
size_t
index
,
long
val
)
noexcept
;
bool
setAData
(
size_t
index
,
int64_t
val
)
noexcept
;
long
getDataID
(
)
const
noexcept
;
/*!< получение "уникального" идентификатора данных этого пакета */
...
...
@@ -140,7 +140,7 @@ namespace uniset
UDPHeader
header
;
UDPAData
a_dat
[
MaxACount
];
/*!< аналоговые величины */
long
d_id
[
MaxDCount
];
/*!< список дискретных ID */
int64_t
d_id
[
MaxDCount
];
/*!< список дискретных ID */
uint8_t
d_dat
[
MaxDDataCount
];
/*!< битовые значения */
}
__attribute__
((
packed
));
...
...
extensions/UNetUDP/UNetReceiver.cc
View file @
81226a82
...
...
@@ -207,13 +207,6 @@ bool UNetReceiver::createConnection( bool throwEx )
if
(
throwEx
)
throw
SystemError
(
s
.
str
());
}
catch
(
const
std
::
exception
&
ex
)
{
unetcrit
<<
ex
.
what
()
<<
std
::
endl
;
if
(
throwEx
)
throw
ex
;
}
return
false
;
}
...
...
extensions/UNetUDP/tests/test_unetudp.cc
View file @
81226a82
...
...
@@ -472,3 +472,27 @@ TEST_CASE("[UNetUDP]: check undefined value", "[unetudp][udp][sender]")
REQUIRE
(
pack
.
a_dat
[
0
].
val
==
110
);
}
// -----------------------------------------------------------------------------
TEST_CASE
(
"[UNetUDP]: perf test"
,
"[unetudp][zero][perf]"
)
{
UniSetUDP
::
UDPMessage
pack
;
REQUIRE
(
pack
.
isOk
());
pack
.
header
.
nodeID
=
100
;
pack
.
header
.
procID
=
100
;
pack
.
header
.
num
=
1
;
for
(
size_t
i
=
0
;
i
<
uniset
::
UniSetUDP
::
MaxACount
;
i
++
)
{
pack
.
addAData
(
i
,
i
);
pack
.
addDData
(
i
,
true
);
}
UniSetUDP
::
UDPMessage
pack2
;
PassiveTimer
pt
;
for
(
int
i
=
0
;
i
<
100000
;
i
++
)
{
memcpy
(
&
pack2
,
&
pack
,
sizeof
(
UniSetUDP
::
UDPMessage
));
pack2
.
ntoh
();
}
cerr
<<
"perf: "
<<
pt
.
getCurrent
()
<<
" msec"
<<
endl
;
}
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