-
-
Notifications
You must be signed in to change notification settings - Fork 96
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Stabilize uavcan.node.port.List (#138)
Stabilize uavcan.node.port.List
- Loading branch information
1 parent
16b4f31
commit 935973b
Showing
6 changed files
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# A list of ports that this node is using: | ||
# - Subjects published by this node (whether periodically or ad-hoc). | ||
# - Subjects that this node is subscribed to (a datalogger or a debugger would typically subscribe to all subjects). | ||
# - RPC services consumed by this node (i.e., service clients). | ||
# - RPC services provided by this node (i.e., service servers). | ||
# | ||
# All nodes should implement this capability to provide network introspection and diagnostic capabilities. | ||
# This message should be published using the fixed subject-ID as follows: | ||
# - At the OPTIONAL priority level at least every MAX_PUBLICATION_PERIOD seconds. | ||
# - At the OPTIONAL or SLOW priority level within MAX_PUBLICATION_PERIOD after the port configuration is changed. | ||
|
||
uint8 MAX_PUBLICATION_PERIOD = 10 # [seconds] | ||
# If the port configuration is not updated in this amount of time, the node should publish this message anyway. | ||
|
||
SubjectIDList.1.0 publishers | ||
SubjectIDList.1.0 subscribers | ||
ServiceIDList.1.0 clients | ||
ServiceIDList.1.0 servers | ||
|
||
@sealed |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# A list of service identifiers. | ||
# This is a trivial constant-size bitmask with some reserved space in case the range of service-ID is increased | ||
# in a future revision of the protocol. | ||
|
||
uint16 CAPACITY = ServiceID.1.0.MAX + 1 | ||
|
||
bool[CAPACITY] mask | ||
# The index represents the identifier value. True -- present/used. False -- absent/unused. | ||
|
||
@extent 1024 # Reserve space in case the range is extended in the future. | ||
|
||
@assert CAPACITY % 8 == 0 | ||
@assert _offset_ == {CAPACITY} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# A list of subject identifiers. | ||
# The range of subject-ID is large, so using a fixed-size bitmask would make this type difficult to handle on | ||
# resource-constrained systems. To address that, we provide two extra options: a simple variable-length list, | ||
# and a special case that indicates that every subject-ID is in use. | ||
|
||
@union | ||
|
||
uint16 CAPACITY = SubjectID.1.0.MAX + 1 | ||
|
||
bool[CAPACITY] mask | ||
# The index represents the identifier value. True -- present/used. False -- absent/unused. | ||
|
||
SubjectID.1.0[<256] sparse_list | ||
# A list of identifiers that can be used instead of the mask if most of the identifiers are unused. | ||
|
||
uavcan.primitive.Empty.1.0 total | ||
# A special case indicating that all identifiers are in use. | ||
|
||
@extent 8 + 2 ** 15 # Reserve space in case the range is extended in the future. |