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
d53b3c49
Commit
d53b3c49
authored
May 16, 2022
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(unet): cleanup code
parent
67f75773
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
47 deletions
+45
-47
UNetReceiver.cc
extensions/UNetUDP/UNetReceiver.cc
+18
-18
UNetReceiver.h
extensions/UNetUDP/UNetReceiver.h
+6
-7
UNetSender.cc
extensions/UNetUDP/UNetSender.cc
+8
-9
UNetSender.h
extensions/UNetUDP/UNetSender.h
+13
-13
No files found.
extensions/UNetUDP/UNetReceiver.cc
View file @
d53b3c49
...
@@ -314,7 +314,7 @@ void UNetReceiver::statisticsEvent(ev::periodic& tm, int revents) noexcept
...
@@ -314,7 +314,7 @@ void UNetReceiver::statisticsEvent(ev::periodic& tm, int revents) noexcept
return
;
return
;
}
}
auto
t_end
=
chrono
::
high_resolution_clock
::
now
();
t_end
=
chrono
::
high_resolution_clock
::
now
();
float
sec
=
chrono
::
duration_cast
<
chrono
::
duration
<
float
>>
(
t_end
-
t_stats
).
count
();
float
sec
=
chrono
::
duration_cast
<
chrono
::
duration
<
float
>>
(
t_end
-
t_stats
).
count
();
t_stats
=
t_end
;
t_stats
=
t_end
;
stats
.
recvPerSec
=
recvCount
/
sec
;
stats
.
recvPerSec
=
recvCount
/
sec
;
...
@@ -796,9 +796,9 @@ void UNetReceiver::initIterators() noexcept
...
@@ -796,9 +796,9 @@ void UNetReceiver::initIterators() noexcept
}
}
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
UNetReceiver
::
CacheInfo
*
UNetReceiver
::
getDCache
(
UniSetUDP
::
UDPMessage
*
pack
)
noexcept
UNetReceiver
::
CacheInfo
*
UNetReceiver
::
getDCache
(
UniSetUDP
::
UDPMessage
*
u
pack
)
noexcept
{
{
auto
dID
=
pack
->
getDataID
();
auto
dID
=
u
pack
->
getDataID
();
auto
dit
=
d_icache_map
.
find
(
dID
);
auto
dit
=
d_icache_map
.
find
(
dID
);
if
(
dit
==
d_icache_map
.
end
()
)
if
(
dit
==
d_icache_map
.
end
()
)
...
@@ -809,22 +809,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack )
...
@@ -809,22 +809,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack )
CacheInfo
*
d_info
=
&
dit
->
second
;
CacheInfo
*
d_info
=
&
dit
->
second
;
if
(
pack
->
header
.
dcount
==
d_info
->
items
.
size
()
)
if
(
u
pack
->
header
.
dcount
==
d_info
->
items
.
size
()
)
return
&
dit
->
second
;
return
&
dit
->
second
;
unetinfo
<<
myname
<<
": init dcache["
<<
pack
->
header
.
dcount
<<
"] for dataID="
<<
dID
<<
endl
;
unetinfo
<<
myname
<<
": init dcache["
<<
u
pack
->
header
.
dcount
<<
"] for dataID="
<<
dID
<<
endl
;
d_info
->
items
.
resize
(
pack
->
header
.
dcount
);
d_info
->
items
.
resize
(
u
pack
->
header
.
dcount
);
d_info
->
crc
=
0
;
d_info
->
crc
=
0
;
cacheMissed
++
;
cacheMissed
++
;
for
(
size_t
i
=
0
;
i
<
pack
->
header
.
dcount
;
i
++
)
for
(
size_t
i
=
0
;
i
<
u
pack
->
header
.
dcount
;
i
++
)
{
{
CacheItem
&
d
=
d_info
->
items
[
i
];
CacheItem
&
d
=
d_info
->
items
[
i
];
if
(
d
.
id
!=
pack
->
d_id
[
i
]
)
if
(
d
.
id
!=
u
pack
->
d_id
[
i
]
)
{
{
d
.
id
=
pack
->
d_id
[
i
];
d
.
id
=
u
pack
->
d_id
[
i
];
shm
->
initIterator
(
d
.
ioit
);
shm
->
initIterator
(
d
.
ioit
);
}
}
}
}
...
@@ -832,9 +832,9 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack )
...
@@ -832,9 +832,9 @@ UNetReceiver::CacheInfo* UNetReceiver::getDCache( UniSetUDP::UDPMessage* pack )
return
d_info
;
return
d_info
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
UNetReceiver
::
CacheInfo
*
UNetReceiver
::
getACache
(
UniSetUDP
::
UDPMessage
*
pack
)
noexcept
UNetReceiver
::
CacheInfo
*
UNetReceiver
::
getACache
(
UniSetUDP
::
UDPMessage
*
u
pack
)
noexcept
{
{
auto
dID
=
pack
->
getDataID
();
auto
dID
=
u
pack
->
getDataID
();
auto
ait
=
a_icache_map
.
find
(
dID
);
auto
ait
=
a_icache_map
.
find
(
dID
);
if
(
ait
==
a_icache_map
.
end
()
)
if
(
ait
==
a_icache_map
.
end
()
)
...
@@ -845,22 +845,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getACache( UniSetUDP::UDPMessage* pack )
...
@@ -845,22 +845,22 @@ UNetReceiver::CacheInfo* UNetReceiver::getACache( UniSetUDP::UDPMessage* pack )
CacheInfo
*
a_info
=
&
ait
->
second
;
CacheInfo
*
a_info
=
&
ait
->
second
;
if
(
pack
->
header
.
acount
==
a_info
->
items
.
size
()
)
if
(
u
pack
->
header
.
acount
==
a_info
->
items
.
size
()
)
return
a_info
;
return
a_info
;
unetinfo
<<
myname
<<
": init acache["
<<
pack
->
header
.
acount
<<
"] for dataID="
<<
dID
<<
endl
;
unetinfo
<<
myname
<<
": init acache["
<<
u
pack
->
header
.
acount
<<
"] for dataID="
<<
dID
<<
endl
;
a_info
->
items
.
resize
(
pack
->
header
.
acount
);
a_info
->
items
.
resize
(
u
pack
->
header
.
acount
);
a_info
->
crc
=
0
;
a_info
->
crc
=
0
;
cacheMissed
++
;
cacheMissed
++
;
for
(
size_t
i
=
0
;
i
<
pack
->
header
.
acount
;
i
++
)
for
(
size_t
i
=
0
;
i
<
u
pack
->
header
.
acount
;
i
++
)
{
{
CacheItem
&
d
=
a_info
->
items
[
i
];
CacheItem
&
d
=
a_info
->
items
[
i
];
if
(
d
.
id
!=
pack
->
a_dat
[
i
].
id
)
if
(
d
.
id
!=
u
pack
->
a_dat
[
i
].
id
)
{
{
d
.
id
=
pack
->
a_dat
[
i
].
id
;
d
.
id
=
u
pack
->
a_dat
[
i
].
id
;
shm
->
initIterator
(
d
.
ioit
);
shm
->
initIterator
(
d
.
ioit
);
}
}
}
}
...
@@ -873,7 +873,7 @@ void UNetReceiver::connectEvent( UNetReceiver::EventSlot sl ) noexcept
...
@@ -873,7 +873,7 @@ void UNetReceiver::connectEvent( UNetReceiver::EventSlot sl ) noexcept
slEvent
=
sl
;
slEvent
=
sl
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
const
std
::
string
UNetReceiver
::
getShortInfo
()
const
noexcept
std
::
string
UNetReceiver
::
getShortInfo
()
const
noexcept
{
{
// warning: будет вызываться из другого потока
// warning: будет вызываться из другого потока
// (считаем что чтение безопасно)
// (считаем что чтение безопасно)
...
...
extensions/UNetUDP/UNetReceiver.h
View file @
d53b3c49
...
@@ -99,7 +99,7 @@ namespace uniset
...
@@ -99,7 +99,7 @@ namespace uniset
* выкинуто исключение при неудачной попытке создания соединения.
* выкинуто исключение при неудачной попытке создания соединения.
*/
*/
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
class
UNetReceiver
:
class
UNetReceiver
final
:
protected
EvWatcher
,
protected
EvWatcher
,
public
std
::
enable_shared_from_this
<
UNetReceiver
>
public
std
::
enable_shared_from_this
<
UNetReceiver
>
{
{
...
@@ -112,7 +112,7 @@ namespace uniset
...
@@ -112,7 +112,7 @@ namespace uniset
void
start
();
void
start
();
void
stop
();
void
stop
();
inline
const
std
::
string
getName
()
cons
t
inline
std
::
string
getName
()
const
noexcep
t
{
{
return
myname
;
return
myname
;
}
}
...
@@ -160,12 +160,12 @@ namespace uniset
...
@@ -160,12 +160,12 @@ namespace uniset
void
connectEvent
(
EventSlot
sl
)
noexcept
;
void
connectEvent
(
EventSlot
sl
)
noexcept
;
// --------------------------------------------------------------------
// --------------------------------------------------------------------
inline
std
::
shared_ptr
<
DebugStream
>
getLog
()
inline
std
::
shared_ptr
<
DebugStream
>
getLog
()
noexcept
{
{
return
unetlog
;
return
unetlog
;
}
}
virtual
const
std
::
string
getShortInfo
()
const
noexcept
;
std
::
string
getShortInfo
()
const
noexcept
;
protected
:
protected
:
...
@@ -180,7 +180,6 @@ namespace uniset
...
@@ -180,7 +180,6 @@ namespace uniset
};
};
ReceiveRetCode
receive
()
noexcept
;
ReceiveRetCode
receive
()
noexcept
;
void
step
()
noexcept
;
void
update
()
noexcept
;
void
update
()
noexcept
;
void
callback
(
ev
::
io
&
watcher
,
int
revents
)
noexcept
;
void
callback
(
ev
::
io
&
watcher
,
int
revents
)
noexcept
;
void
readEvent
(
ev
::
io
&
watcher
)
noexcept
;
void
readEvent
(
ev
::
io
&
watcher
)
noexcept
;
...
@@ -202,7 +201,7 @@ namespace uniset
...
@@ -202,7 +201,7 @@ namespace uniset
size_t
rnext
(
size_t
num
);
size_t
rnext
(
size_t
num
);
private
:
private
:
UNetReceiver
()
;
UNetReceiver
()
{}
timeout_t
updatepause
=
{
100
};
/*!< периодичность обновления данных в SM, [мсек] */
timeout_t
updatepause
=
{
100
};
/*!< периодичность обновления данных в SM, [мсек] */
...
@@ -304,7 +303,7 @@ namespace uniset
...
@@ -304,7 +303,7 @@ namespace uniset
size_t
cacheMissed
;
// количество промахов
size_t
cacheMissed
;
// количество промахов
bool
ignoreCRC
=
{
false
};
/*!< отключение проверки crc */
bool
ignoreCRC
=
{
false
};
/*!< отключение проверки crc */
CacheInfo
*
getDCache
(
UniSetUDP
::
UDPMessage
*
pack
)
noexcept
;
CacheInfo
*
getDCache
(
UniSetUDP
::
UDPMessage
*
u
pack
)
noexcept
;
CacheInfo
*
getACache
(
UniSetUDP
::
UDPMessage
*
pack
)
noexcept
;
CacheInfo
*
getACache
(
UniSetUDP
::
UDPMessage
*
pack
)
noexcept
;
};
};
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
...
...
extensions/UNetUDP/UNetSender.cc
View file @
d53b3c49
...
@@ -168,7 +168,7 @@ namespace uniset
...
@@ -168,7 +168,7 @@ namespace uniset
updateItem
(
it
->
second
,
value
);
updateItem
(
it
->
second
,
value
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetSender
::
updateItem
(
UItem
&
it
,
long
value
)
void
UNetSender
::
updateItem
(
const
UItem
&
it
,
long
value
)
{
{
auto
&
pk
=
mypacks
[
it
.
pack_sendfactor
];
auto
&
pk
=
mypacks
[
it
.
pack_sendfactor
];
...
@@ -181,7 +181,7 @@ namespace uniset
...
@@ -181,7 +181,7 @@ namespace uniset
mypack
.
msg
.
setAData
(
it
.
pack_ind
,
value
);
mypack
.
msg
.
setAData
(
it
.
pack_ind
,
value
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetSender
::
setCheckConnectionPause
(
int
msec
)
void
UNetSender
::
setCheckConnectionPause
(
int
msec
)
noexcept
{
{
if
(
msec
>
0
)
if
(
msec
>
0
)
ptCheckConnection
.
setTiming
(
msec
);
ptCheckConnection
.
setTiming
(
msec
);
...
@@ -448,7 +448,6 @@ namespace uniset
...
@@ -448,7 +448,6 @@ namespace uniset
<<
UniSetUDP
::
MaxDCount
<<
endl
<<
flush
;
<<
UniSetUDP
::
MaxDCount
<<
endl
<<
flush
;
std
::
terminate
();
std
::
terminate
();
return
false
;
}
}
}
}
else
if
(
p
.
iotype
==
UniversalIO
::
AI
||
p
.
iotype
==
UniversalIO
::
AO
)
// -V560
else
if
(
p
.
iotype
==
UniversalIO
::
AI
||
p
.
iotype
==
UniversalIO
::
AO
)
// -V560
...
@@ -512,7 +511,7 @@ namespace uniset
...
@@ -512,7 +511,7 @@ namespace uniset
return
os
<<
" sid="
<<
p
.
id
;
return
os
<<
" sid="
<<
p
.
id
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetSender
::
initIterators
()
void
UNetSender
::
initIterators
()
noexcept
{
{
for
(
auto
&&
it
:
items
)
for
(
auto
&&
it
:
items
)
shm
->
initIterator
(
it
.
second
.
ioit
);
shm
->
initIterator
(
it
.
second
.
ioit
);
...
@@ -524,12 +523,12 @@ namespace uniset
...
@@ -524,12 +523,12 @@ namespace uniset
shm
->
askSensor
(
it
.
second
.
id
,
cmd
);
shm
->
askSensor
(
it
.
second
.
id
,
cmd
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
size_t
UNetSender
::
getDataPackCount
()
const
size_t
UNetSender
::
getDataPackCount
()
const
noexcept
{
{
return
mypacks
.
size
();
return
mypacks
.
size
();
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
const
std
::
string
UNetSender
::
getShortInfo
()
cons
t
std
::
string
UNetSender
::
getShortInfo
()
const
noexcep
t
{
{
// warning: будет вызываться из другого потока
// warning: будет вызываться из другого потока
// (считаем что чтение безопасно)
// (считаем что чтение безопасно)
...
@@ -545,12 +544,12 @@ namespace uniset
...
@@ -545,12 +544,12 @@ namespace uniset
<<
"
\t
packs([sendfactor]=num): "
<<
"
\t
packs([sendfactor]=num): "
<<
endl
;
<<
endl
;
for
(
auto
i
=
mypacks
.
begin
();
i
!=
mypacks
.
end
();
++
i
)
for
(
const
auto
&
p
:
mypacks
)
{
{
s
<<
"
\t
["
<<
i
->
first
<<
"]="
<<
i
->
second
.
size
()
<<
endl
;
s
<<
"
\t
["
<<
p
.
first
<<
"]="
<<
p
.
second
.
size
()
<<
endl
;
size_t
n
=
0
;
size_t
n
=
0
;
for
(
const
auto
&
pack
:
i
->
second
)
for
(
const
auto
&
pack
:
p
.
second
)
{
{
//uniset_rwmutex_rlock l(p->mut);
//uniset_rwmutex_rlock l(p->mut);
s
<<
"
\t\t
["
<<
(
n
++
)
<<
"]="
<<
sizeof
(
pack
.
msg
)
<<
" bytes"
s
<<
"
\t\t
["
<<
(
n
++
)
<<
"]="
<<
sizeof
(
pack
.
msg
)
<<
" bytes"
...
...
extensions/UNetUDP/UNetSender.h
View file @
d53b3c49
...
@@ -60,7 +60,7 @@ namespace uniset
...
@@ -60,7 +60,7 @@ namespace uniset
* выкинуто исключение при неудачной попытке создания соединения.
* выкинуто исключение при неудачной попытке создания соединения.
* \warning setCheckConnectionPause(msec) должно быть кратно sendpause!
* \warning setCheckConnectionPause(msec) должно быть кратно sendpause!
*/
*/
class
UNetSender
class
UNetSender
final
{
{
public
:
public
:
UNetSender
(
std
::
unique_ptr
<
UNetSendTransport
>&&
transport
,
const
std
::
shared_ptr
<
SMInterface
>&
smi
UNetSender
(
std
::
unique_ptr
<
UNetSendTransport
>&&
transport
,
const
std
::
shared_ptr
<
SMInterface
>&
smi
...
@@ -72,7 +72,7 @@ namespace uniset
...
@@ -72,7 +72,7 @@ namespace uniset
,
size_t
maxDCount
=
UniSetUDP
::
MaxDCount
,
size_t
maxDCount
=
UniSetUDP
::
MaxDCount
,
size_t
maxACount
=
UniSetUDP
::
MaxACount
);
,
size_t
maxACount
=
UniSetUDP
::
MaxACount
);
virtual
~
UNetSender
();
~
UNetSender
();
typedef
size_t
sendfactor_t
;
typedef
size_t
sendfactor_t
;
...
@@ -99,7 +99,7 @@ namespace uniset
...
@@ -99,7 +99,7 @@ namespace uniset
typedef
std
::
unordered_map
<
uniset
::
ObjectId
,
UItem
>
UItemMap
;
typedef
std
::
unordered_map
<
uniset
::
ObjectId
,
UItem
>
UItemMap
;
size_t
getDataPackCount
()
const
;
size_t
getDataPackCount
()
const
noexcept
;
void
start
();
void
start
();
void
stop
();
void
stop
();
...
@@ -126,41 +126,41 @@ namespace uniset
...
@@ -126,41 +126,41 @@ namespace uniset
void
updateSensor
(
uniset
::
ObjectId
id
,
long
value
);
void
updateSensor
(
uniset
::
ObjectId
id
,
long
value
);
/*! Обновить значение по итератору */
/*! Обновить значение по итератору */
void
updateItem
(
UItem
&
it
,
long
value
);
void
updateItem
(
const
UItem
&
it
,
long
value
);
inline
void
setSendPause
(
int
msec
)
inline
void
setSendPause
(
int
msec
)
noexcept
{
{
sendpause
=
msec
;
sendpause
=
msec
;
}
}
inline
void
setPackSendPause
(
int
msec
)
inline
void
setPackSendPause
(
int
msec
)
noexcept
{
{
packsendpause
=
msec
;
packsendpause
=
msec
;
}
}
inline
void
setPackSendPauseFactor
(
int
factor
)
inline
void
setPackSendPauseFactor
(
int
factor
)
noexcept
{
{
packsendpauseFactor
=
factor
;
packsendpauseFactor
=
factor
;
}
}
void
setCheckConnectionPause
(
int
msec
);
void
setCheckConnectionPause
(
int
msec
)
noexcept
;
/*! заказать датчики */
/*! заказать датчики */
void
askSensors
(
UniversalIO
::
UIOCommand
cmd
);
void
askSensors
(
UniversalIO
::
UIOCommand
cmd
);
/*! инициализация итераторов */
/*! инициализация итераторов */
void
initIterators
();
void
initIterators
()
noexcept
;
inline
std
::
shared_ptr
<
DebugStream
>
getLog
()
inline
std
::
shared_ptr
<
DebugStream
>
getLog
()
noexcept
{
{
return
unetlog
;
return
unetlog
;
}
}
virtual
const
std
::
string
getShortInfo
()
cons
t
;
std
::
string
getShortInfo
()
const
noexcep
t
;
inline
size_t
getADataSize
()
const
inline
size_t
getADataSize
()
const
noexcept
{
{
return
maxAData
;
return
maxAData
;
}
}
inline
size_t
getDDataSize
()
const
inline
size_t
getDDataSize
()
const
noexcept
{
{
return
maxDData
;
return
maxDData
;
}
}
...
...
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