# rustc version rustc 1.98.0-nightly (c397dae80 2026-07-02)
# docs.rs version docsrs 0.0.0 (964c90a45859fd8f9076e3cbe58470a5a4f4d4f7 2026-07-01 )
# build log [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "DOCS_RS=1" "-w" "/opt/rustwide/workdir" "--user" "1001:1001" "fbbcf9c26366e6611012f9856e041329e80a0f41ae8053455fbf7bdba5c7a416" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "rustdoc" "--lib" "-Zrustdoc-map" "--config" "build.rustdocflags=[\"--cfg\", \"docsrs\", \"-Z\", \"unstable-options\", \"--emit=invocation-specific\", \"--resource-suffix\", \"-20260702-1.98.0-nightly-c397dae80\", \"--static-root-path\", \"/-/rustdoc.static/\", \"--cap-lints\", \"warn\", \"--extern-html-root-takes-precedence\"]" "--offline" "-Zunstable-options" "--config=doc.extern-map.registries.crates-io=\"https://docs.rs/{pkg_name}/{version}/x86_64-unknown-linux-gnu\"" "-Zrustdoc-scrape-examples" "-j6" "--target" "x86_64-unknown-linux-gnu", kill_on_drop: false }` [INFO] [stderr] warning: target filter specified, but no targets matched; this is a no-op [INFO] [stderr] Documenting canadensis_data_types v0.6.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unresolved link to `radian` [INFO] [stderr] --> src/generated.rs:1375:63 [INFO] [stderr] | [INFO] [stderr] 1375 | ... #[cfg_attr(not(doctest), doc = " [radian]")] [INFO] [stderr] | ^^^^^^ no item named `radian` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `radian` [INFO] [stderr] --> src/generated.rs:1382:63 [INFO] [stderr] | [INFO] [stderr] 1382 | ... #[cfg_attr(not(doctest), doc = " [radian]")] [INFO] [stderr] | ^^^^^^ no item named `radian` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `nanosecond` [INFO] [stderr] --> src/generated.rs:2647:38 [INFO] [stderr] | [INFO] [stderr] 2647 | ... doc = " [nanosecond] Nanoseconds elapsed since 1970-01-01T00:00:00Z TAI." [INFO] [stderr] | ^^^^^^^^^^ no item named `nanosecond` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `seconds` [INFO] [stderr] --> src/generated.rs:2820:42 [INFO] [stderr] | [INFO] [stderr] 2820 | ... doc = " [seconds]\n The actuator is allowed to enter a safe state (e.g., stop the controlled mechanism, disconnect itself fr... [INFO] [stderr] | ^^^^^^^ no item named `seconds` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:2825:42 [INFO] [stderr] | [INFO] [stderr] 2825 | ... doc = " [second]\n This is the maximum publication period (minimum frequency) for all subjects described in this service.\n ... [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `percent` [INFO] [stderr] --> src/generated.rs:3038:42 [INFO] [stderr] | [INFO] [stderr] 3038 | ... doc = " [percent]\n Percentage of the maximum rated output intensity. May exceed +-100% in case of overload.\n Positive valu... [INFO] [stderr] | ^^^^^^^ no item named `percent` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `Ts` [INFO] [stderr] --> src/generated.rs:3640:25 [INFO] [stderr] | [INFO] [stderr] 3640 | / /// `reg.udral.service.actuator.servo._.0.1` [INFO] [stderr] 3641 | | /// [INFO] [stderr] 3642 | | /// Fixed size 0 bytes [INFO] [stderr] 3643 | | /// [INFO] [stderr] 3644 | | #[cfg_attr( [INFO] [stderr] 3645 | | not(doctest), [INFO] [stderr] 3646 | | doc = " A servo can actuate either a translational or rotary load using electric power from the high-voltage DC bus.\n\n The type of load (translational or rotational) dictates which type is used for commanding the setpoint and reporting\n the status:\n - reg.udral.physics.dynamics.rotation.Planar[Ts]\n - reg.udral.physics.dynamics.translation.Linear[Ts]\n For generality, either or both of these types are referred to as \"timestamped dynamics\" or \"non-timestamped dynamics\".\n\n The default readiness state is STANDBY. While in this state, the servo is not allowed to apply force to the load,\n and the setpoint subject is ignored. The servo shall enter the STANDBY state automatically if the readiness subject\n is not updated for CONTROL_TIMEOUT.\n\n The subjects defined by this service are shown on the following canvas. Implementers are encouraged to add\n custom subjects with additional data. Notice that the physics subjects are timestamped.\n\n SUBJECT NAME SUBJECT TYPE RATE\n\n +------------+ setpoint +------------+ (non-timestamped dynamics) (see below) R\n | |--------------------->| |\n | | readiness | | reg.udral.service.common.Readiness any\n | |--------------------->| |\n | | feedback | | reg.udral.service.actuator.common.Feedback R\n | |<---------------------| |\n | Controller | status | Servo | reg.udral.service.actuator.common.Status any\n | |<---------------------| |\n | | power | | reg.udral.physics.electricity.PowerTs R\n | |<---------------------| |\n | | dynamics | | (timestamped dynamics) R\n | |<---------------------| |\n +------------+ +------------+\n\n Should it be necessary to control a group of servos in lockstep, an arbitrary number of them may subscribe\n to the same setpoint subject (their published subjects would be different of course).\n\n If the servo is ENGAGED, setpoint messages are processed as follows: the first field of the kinematic setpoint type\n that contains a finite value is taken as the commanded setpoint. The following non-negative finite fields define\n the motion profile, where negative and non-finite values are ignored.\n\n For example, a translational dynamics message containing the following values:\n position = +0.35\n velocity = NaN\n acceleration = NaN\n force = 30\n ...is interpreted as follows: position the load at 0.35 meters relative to the neutral, limit the force to 30 newton,\n do not limit the velocity and acceleration. Here is another example:\n angular position = NaN\n angular velocity = +400\n angular acceleration = NaN\n torque = 50\n which is interpreted as follows: reach the angular velocity of 400 radian/second in the forward direction,\n limit the torque to 50 newton*meters, do not limit the acceleration.\n\n The motion profile parameters that are not supported are to be silently ignored by the servo. If the commanded\n parameter cannot be controlled by the servo, the setpoint is to be ignored. For example, in the second example above,\n if the servo does not support angular velocity control, the setpoint message would be discarded.\n\n The above describes the typical use case where each servo is controlled over a dedicated setpoint\n subject independently (or a group of servos are controlled in lockstep using the same setpoint subject).\n Some applications may require synchronous independent control of multiple servos in a group, similar to ESC.\n To address this, a compliant servo should support another operating mode where the controlled quantity\n (position, velocity, force, etc.) is selected statically along with the motion profile (using the register API),\n and the servo subscribes to the setpoint subject of type \"reg.udral.service.actuator.common.sp.*\".\n Having its index in the group configured statically, the servo fetches the setpoint from the appropriate\n index in the setpoint array.\n The resulting topology closely resembles that of the ESC service:\n\n SUBJECT NAME SUBJECT TYPE\n +----------------+\n | Controller |---------+------------+----... setpoint reg.udral.service.actuator.common.sp.*\n | |-------+-)----------+-)----... readiness reg.udral.service.common.Readiness\n +----------------+ | | | |\n ^ ^ ^ ^ ^ ^ ^ ^ v v v v\n | | | | | | | | +---------+ +---------+\n | | | | | | | | |Servo i=0| |Servo i=1| ...\n | | | | | | | | +---------+ +---------+\n | | | | | | | | | | | | | | | |\n | | | | | | | +-----+ | | | | | | | feedback reg.udral.service.actuator.common.Feedback\n | | | | | | +---------+ | | | | | | status reg.udral.service.actuator.common.Status\n | | | | | +-------------+ | | | | | power reg.udral.physics.electricity.PowerTs\n | | | | +-----------------+ | | | | dynamics (timestamped dynamics)\n | | | | | | | |\n | | | +---------------------------+ | | |\n | | +-------------------------------+ | |\n | +-----------------------------------+ |\n +---------------------------------------+\n\n If the selected readiness state is SLEEP, the behavior is implementation-defined. Implementations are recommended to\n power off the high-voltage circuitry and all non-essential components (e.g., LED indication, sensors, etc.)\n to minimize the power consumption. The publication rate requirements do not apply if the state is SLEEP.\n\n The worst-case readiness state transition latency is not defined.\n\n The following subjects shall be published immediately after a new setpoint is applied even if the servo is STANDBY:\n\n SUBJECT NAME RECOMMENDED PRIORITY\n ---------------------------------------------\n feedback same as the setpoint\n power second to the setpoint\n dynamics second to the setpoint\n\n If no setpoint is being published, these subjects should continue being updated at least at 1/MAX_PUBLICATION_PERIOD.\n\n If the setpoint publication rate exceeds 50 Hz, implementations are allowed (but not required) to throttle these\n subjects by dropping some of the messages such that the publication rate of each subject does not exceed 50 Hz.\n Implementations operating over Classic CAN are recommended to do this.\n\n The other subjects may be published at an implementation-defined rate and priority,\n which should be consistent across the group.\n\n The measurements carried by the published messages should be low-pass filtered with an adequate cutoff frequency to\n avoid aliasing effects. Implementations should strive to sample all parameters simultaneously.\n\n It is assumed that the servo is powered from a DC electric power supply network. A positive electric current\n represents current flowing from the DC network into the servo (negative represents regeneration).\n\n Excepting edge cases and transients, torque/force and current are generally of the same sign (barring the difference\n introduced by the power dissipated by the servo itself).\n\n +velocity\n ^\n braking,| forward,\n negative| positive\n power | power\n -----------+----------> +torque/force/current\n reverse,| braking,\n positive| negative\n power | power\n\n An example implementation is available at https://github.com/OpenCyphal/demos" [INFO] [stderr] | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: the link appears in this line: [INFO] [stderr] [INFO] [stderr] - reg.udral.physics.dynamics.rotation.Planar[Ts] [INFO] [stderr] ^^ [INFO] [stderr] = note: no item named `Ts` in scope [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `Ts` [INFO] [stderr] --> src/generated.rs:3640:25 [INFO] [stderr] | [INFO] [stderr] 3640 | / /// `reg.udral.service.actuator.servo._.0.1` [INFO] [stderr] 3641 | | /// [INFO] [stderr] 3642 | | /// Fixed size 0 bytes [INFO] [stderr] 3643 | | /// [INFO] [stderr] 3644 | | #[cfg_attr( [INFO] [stderr] 3645 | | not(doctest), [INFO] [stderr] 3646 | | doc = " A servo can actuate either a translational or rotary load using electric power from the high-voltage DC bus.\n\n The type of load (translational or rotational) dictates which type is used for commanding the setpoint and reporting\n the status:\n - reg.udral.physics.dynamics.rotation.Planar[Ts]\n - reg.udral.physics.dynamics.translation.Linear[Ts]\n For generality, either or both of these types are referred to as \"timestamped dynamics\" or \"non-timestamped dynamics\".\n\n The default readiness state is STANDBY. While in this state, the servo is not allowed to apply force to the load,\n and the setpoint subject is ignored. The servo shall enter the STANDBY state automatically if the readiness subject\n is not updated for CONTROL_TIMEOUT.\n\n The subjects defined by this service are shown on the following canvas. Implementers are encouraged to add\n custom subjects with additional data. Notice that the physics subjects are timestamped.\n\n SUBJECT NAME SUBJECT TYPE RATE\n\n +------------+ setpoint +------------+ (non-timestamped dynamics) (see below) R\n | |--------------------->| |\n | | readiness | | reg.udral.service.common.Readiness any\n | |--------------------->| |\n | | feedback | | reg.udral.service.actuator.common.Feedback R\n | |<---------------------| |\n | Controller | status | Servo | reg.udral.service.actuator.common.Status any\n | |<---------------------| |\n | | power | | reg.udral.physics.electricity.PowerTs R\n | |<---------------------| |\n | | dynamics | | (timestamped dynamics) R\n | |<---------------------| |\n +------------+ +------------+\n\n Should it be necessary to control a group of servos in lockstep, an arbitrary number of them may subscribe\n to the same setpoint subject (their published subjects would be different of course).\n\n If the servo is ENGAGED, setpoint messages are processed as follows: the first field of the kinematic setpoint type\n that contains a finite value is taken as the commanded setpoint. The following non-negative finite fields define\n the motion profile, where negative and non-finite values are ignored.\n\n For example, a translational dynamics message containing the following values:\n position = +0.35\n velocity = NaN\n acceleration = NaN\n force = 30\n ...is interpreted as follows: position the load at 0.35 meters relative to the neutral, limit the force to 30 newton,\n do not limit the velocity and acceleration. Here is another example:\n angular position = NaN\n angular velocity = +400\n angular acceleration = NaN\n torque = 50\n which is interpreted as follows: reach the angular velocity of 400 radian/second in the forward direction,\n limit the torque to 50 newton*meters, do not limit the acceleration.\n\n The motion profile parameters that are not supported are to be silently ignored by the servo. If the commanded\n parameter cannot be controlled by the servo, the setpoint is to be ignored. For example, in the second example above,\n if the servo does not support angular velocity control, the setpoint message would be discarded.\n\n The above describes the typical use case where each servo is controlled over a dedicated setpoint\n subject independently (or a group of servos are controlled in lockstep using the same setpoint subject).\n Some applications may require synchronous independent control of multiple servos in a group, similar to ESC.\n To address this, a compliant servo should support another operating mode where the controlled quantity\n (position, velocity, force, etc.) is selected statically along with the motion profile (using the register API),\n and the servo subscribes to the setpoint subject of type \"reg.udral.service.actuator.common.sp.*\".\n Having its index in the group configured statically, the servo fetches the setpoint from the appropriate\n index in the setpoint array.\n The resulting topology closely resembles that of the ESC service:\n\n SUBJECT NAME SUBJECT TYPE\n +----------------+\n | Controller |---------+------------+----... setpoint reg.udral.service.actuator.common.sp.*\n | |-------+-)----------+-)----... readiness reg.udral.service.common.Readiness\n +----------------+ | | | |\n ^ ^ ^ ^ ^ ^ ^ ^ v v v v\n | | | | | | | | +---------+ +---------+\n | | | | | | | | |Servo i=0| |Servo i=1| ...\n | | | | | | | | +---------+ +---------+\n | | | | | | | | | | | | | | | |\n | | | | | | | +-----+ | | | | | | | feedback reg.udral.service.actuator.common.Feedback\n | | | | | | +---------+ | | | | | | status reg.udral.service.actuator.common.Status\n | | | | | +-------------+ | | | | | power reg.udral.physics.electricity.PowerTs\n | | | | +-----------------+ | | | | dynamics (timestamped dynamics)\n | | | | | | | |\n | | | +---------------------------+ | | |\n | | +-------------------------------+ | |\n | +-----------------------------------+ |\n +---------------------------------------+\n\n If the selected readiness state is SLEEP, the behavior is implementation-defined. Implementations are recommended to\n power off the high-voltage circuitry and all non-essential components (e.g., LED indication, sensors, etc.)\n to minimize the power consumption. The publication rate requirements do not apply if the state is SLEEP.\n\n The worst-case readiness state transition latency is not defined.\n\n The following subjects shall be published immediately after a new setpoint is applied even if the servo is STANDBY:\n\n SUBJECT NAME RECOMMENDED PRIORITY\n ---------------------------------------------\n feedback same as the setpoint\n power second to the setpoint\n dynamics second to the setpoint\n\n If no setpoint is being published, these subjects should continue being updated at least at 1/MAX_PUBLICATION_PERIOD.\n\n If the setpoint publication rate exceeds 50 Hz, implementations are allowed (but not required) to throttle these\n subjects by dropping some of the messages such that the publication rate of each subject does not exceed 50 Hz.\n Implementations operating over Classic CAN are recommended to do this.\n\n The other subjects may be published at an implementation-defined rate and priority,\n which should be consistent across the group.\n\n The measurements carried by the published messages should be low-pass filtered with an adequate cutoff frequency to\n avoid aliasing effects. Implementations should strive to sample all parameters simultaneously.\n\n It is assumed that the servo is powered from a DC electric power supply network. A positive electric current\n represents current flowing from the DC network into the servo (negative represents regeneration).\n\n Excepting edge cases and transients, torque/force and current are generally of the same sign (barring the difference\n introduced by the power dissipated by the servo itself).\n\n +velocity\n ^\n braking,| forward,\n negative| positive\n power | power\n -----------+----------> +torque/force/current\n reverse,| braking,\n positive| negative\n power | power\n\n An example implementation is available at https://github.com/OpenCyphal/demos" [INFO] [stderr] | |________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: the link appears in this line: [INFO] [stderr] [INFO] [stderr] - reg.udral.physics.dynamics.translation.Linear[Ts] [INFO] [stderr] ^^ [INFO] [stderr] = note: no item named `Ts` in scope [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `Hz` [INFO] [stderr] --> src/generated.rs:3695:242 [INFO] [stderr] | [INFO] [stderr] 3695 | ... TYP. RATE [Hz]\n energy_source reg.udral.physics.electricity.SourceTs ... [INFO] [stderr] | ^^ no item named `Hz` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `percent` [INFO] [stderr] --> src/generated.rs:3972:38 [INFO] [stderr] | [INFO] [stderr] 3972 | ... doc = " [percent]\n The SoH of the battery, or best guess thereof; ranges from 0 (unusable) to 100 (new)." [INFO] [stderr] | ^^^^^^^ no item named `percent` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `volt` [INFO] [stderr] --> src/generated.rs:4177:35 [INFO] [stderr] | [INFO] [stderr] 4177 | doc = " [volt]\n The voltages of individual cells in the battery pack." [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 4178 | | )] [INFO] [stderr] 4179 | | /// [INFO] [stderr] 4180 | | /// `saturated float16[<=255]` [INFO] [stderr] 4181 | | /// [INFO] [stderr] 4182 | | /// Always aligned, [INFO] [stderr] 4183 | | /// size ranges from 0 to 4080 bits [INFO] [stderr] | |___________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: the link appears in this line: [INFO] [stderr] [INFO] [stderr] [volt] [INFO] [stderr] ^^^^ [INFO] [stderr] = note: no item named `volt` in scope [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:4550:59 [INFO] [stderr] | [INFO] [stderr] 4550 | #[cfg_attr(not(doctest), doc = " [second]")] [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:6634:34 [INFO] [stderr] | [INFO] [stderr] 6634 | ... doc = " [second]\n Modem nodes are required to keep the NAT table entries alive for at least this amount of time, unless the... [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:6788:34 [INFO] [stderr] | [INFO] [stderr] 6788 | ... doc = " [second]\n Modem nodes are required to keep the NAT table entries alive for at least this amount of time, unless the... [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:9166:27 [INFO] [stderr] | [INFO] [stderr] 9166 | ... doc = " [second]\n The uptime seconds counter should never overflow. The counter will reach the upper limit in ~136 ye... [INFO] [stderr] | _________________^ [INFO] [stderr] 9167 | | ... )] [INFO] [stderr] 9168 | | ... /// [INFO] [stderr] 9169 | | ... /// `saturated uint32` [INFO] [stderr] 9170 | | ... /// [INFO] [stderr] 9171 | | ... /// Always aligned, [INFO] [stderr] 9172 | | ... /// size 32 bits [INFO] [stderr] | |______________________^ [INFO] [stderr] | [INFO] [stderr] = note: the link appears in this line: [INFO] [stderr] [INFO] [stderr] [second] [INFO] [stderr] ^^^^^^ [INFO] [stderr] = note: no item named `second` in scope [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:9210:30 [INFO] [stderr] | [INFO] [stderr] 9210 | ... doc = " [second]\n The publication period shall not exceed this limit.\n The period should not change while the node is runn... [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:9215:30 [INFO] [stderr] | [INFO] [stderr] 9215 | ... doc = " [second]\n If the last message from the node was received more than this amount of time ago, it should be considered... [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `seconds` [INFO] [stderr] --> src/generated.rs:9527:34 [INFO] [stderr] | [INFO] [stderr] 9527 | ... doc = " [seconds]\n If the port configuration is not updated in this amount of time, the node should publish this message an... [INFO] [stderr] | ^^^^^^^ no item named `seconds` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `seconds` [INFO] [stderr] --> src/generated.rs:9612:34 [INFO] [stderr] | [INFO] [stderr] 9612 | ... doc = " [seconds]\n If the port configuration is not updated in this amount of time, the node should publish this message an... [INFO] [stderr] | ^^^^^^^ no item named `seconds` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `8192` [INFO] [stderr] --> src/generated.rs:9871:30 [INFO] [stderr] | [INFO] [stderr] 9871 | /// bool[8192] [INFO] [stderr] | ^^^^ no item named `8192` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `8192` [INFO] [stderr] --> src/generated.rs:9974:30 [INFO] [stderr] | [INFO] [stderr] 9974 | /// bool[8192] [INFO] [stderr] | ^^^^ no item named `8192` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:10178:55 [INFO] [stderr] | [INFO] [stderr] 10178 | #[cfg_attr(not(doctest), doc = " [second]")] [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:10182:31 [INFO] [stderr] | [INFO] [stderr] 10182 | ... = " [second]\n Given the minimum election time...ould be at least one millisecond or higher." [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: the link appears in this line: [INFO] [stderr] [INFO] [stderr] [second] [INFO] [stderr] ^^^^^^ [INFO] [stderr] = note: no item named `second` in scope [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `second` [INFO] [stderr] --> src/generated.rs:10323:34 [INFO] [stderr] | [INFO] [stderr] 10323 | ... doc = " [second]\n This message should be broadcasted by the allocator at this interval until all other allocators are disc... [INFO] [stderr] | ^^^^^^ no item named `second` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `1` [INFO] [stderr] --> src/generated.rs:12101:13 [INFO] [stderr] | [INFO] [stderr] 12101 | / /// `uavcan.register.Access.1.0` [INFO] [stderr] 12102 | | /// [INFO] [stderr] 12103 | | /// Size ranges from 2 to 515 bytes [INFO] [stderr] 12104 | | /// [INFO] [stderr] 12105 | | #[cfg_attr( [INFO] [stderr] 12106 | | not(doctest), [INFO] [stderr] 12107 | | doc = " Registers are strongly-typed named values used to store the configuration parameters of a node.\n This service is used to write and read a register.\n\n\n READ/WRITE BEHAVIORS\n\n The write operation is performed first, unless skipped by sending an empty value in the request.\n The server may attempt to convert the type of the supplied value to the correct type if there is a type mismatch\n (e.g. uint8 may be converted to uint16); however, servers are not required to perform implicit type conversion,\n and the rules of such conversion are not explicitly specified, so this behavior should not be relied upon.\n\n On the next step the register will be read regardless of the outcome of the write operation. As such, if the write\n operation could not be performed (e.g. due to a type mismatch or any other issue), the register will retain its old\n value. By evaluating the response the caller can determine whether the register was written successfully.\n\n The write-read sequence is not guaranteed to be atomic, meaning that external influences may cause the register to\n change its value between the write and the subsequent read operation. The caller is responsible for handling that\n case properly.\n\n The timestamp provided in the response corresponds to the time when the register was read. The timestamp may\n be empty if the server does not support timestamping or its clock is not (yet) synchronized with the network.\n\n If only read is desired, but not write, the caller shall provide a value of type 'empty'. That will signal the server\n that the write operation shall be skipped, and it will proceed to read the register immediately.\n\n If the requested register does not exist, the write operation will have no effect and the returned value will be\n empty. Existing registers should not return 'empty' when read since that would make them indistinguishable from\n nonexistent registers.\n\n\n REGISTER DEFINITION REQUIREMENTS\n\n Registers shall never change their type or flags as long as the server is running. Meaning that:\n - Mutability and persistence flags cannot change their states.\n - Read operations shall always return values of the same type and same dimensionality.\n The dimensionality requirement does not apply to inherently variable-length values such as strings and\n unstructured chunks.\n\n Register name should contain only:\n - Lowercase ASCII alphanumeric characters (a-z, 0-9)\n - Full stop (.)\n - Low line (underscore) (_)\n With the following limitations/recommendations:\n - The name shall not begin with a decimal digit (0-9).\n - The name shall neither begin nor end with a full stop.\n - A low line shall not be followed by a non-alphanumeric character.\n - The name should contain at least one full stop character.\n Other patterns and ASCII characters are reserved for special function registers (introduced below).\n\n\n ENVIRONMENT VARIABLES\n\n This section applies only to software nodes executed in a high-level operating system that supports environment\n variables or an equivalent mechanism.\n\n When a software node is launched, it is usually necessary to provide some of its configuration information early,\n particularly that which is related to Cyphal networking, before the node is started. Environment variables offer\n a convenient way of addressing this. Software nodes that support the register interface should evaluate the\n available environment variables during initialization and update their registers (whether they are stored in\n a persistent storage or in memory) accoringly. This should be completed before the first register read access.\n\n A register name is mapped to an environment variable name as follows:\n - the name is upper-cased;\n - full stop characters are replaced with double low line characters.\n For example: 'motor.inductance_dq' is mapped to 'MOTOR__INDUCTANCE_DQ'.\n\n Register values are represented in environment variables as follows:\n - string: utf-8 or platform-specific\n - unstructured: as-is\n - bit, integer*, natural*, real*: space-separated decimals\n\n If an environment variable matches the name of an existing register but its value cannot be converted to the\n register's type, an error should be raised.\n\n If an environment variable does not match the name of any register, it may be ignored. However, if the implementation\n can reliably deduce the type and purpose of the register, it may create one automatically. This provision is to\n support applications where the register schema may be altered by configuration.\n\n\n SPECIAL FUNCTION REGISTERS\n\n The following optional special function register names are defined:\n - suffix '<' is used to define an immutable persistent value that contains the maximum value\n of the respective register.\n - suffix '>' is like above, used to define the minimum value of the respective register.\n - suffix '=' is like above, used to define the default value of the respective register.\n - prefix '*' is reserved for raw memory access (to be defined later).\n Examples:\n - register name \"system.parameter\"\n - maximum value is contained in the register named \"system.parameter<\" (optional)\n - minimum value is contained in the register named \"system.parameter>\" (optional)\n - default value is contained in the register named \"system.parameter=\" (optional)\n\n The type and dimensionality of the special function registers containing the minimum, maximum, and the default\n value of a register shall be the same as those of the register they relate to.\n\n If a written value exceeds the minimum/maximum specified by the respective special function registers,\n the server may either adjust the value automatically, or to retain the old value, depending on which behavior\n suits the objectives of the application better.\n The values of registers containing non-scalar numerical entities should be compared elementwise.\n\n\n STANDARD REGISTERS\n\n The following table specifies the register name patterns that are reserved by the specification for\n common functions. These conventions are not mandatory to follow, but implementers are recommended to adhere because\n they enable enhanced introspection capabilities and simplify device configuration and diagnostics.\n\n REGISTER NAME PATTERN TYPE FLAGS RECOMMENDED DEFAULT\n =====================================================================================================================\n\n uavcan.node.id natural16[1] mutable, persistent 65535 (unset/PnP)\n\n Contains the node-ID of the local node. Values above the maximum valid node-ID for the current transport\n indicate that the node-ID is not set; if plug-and-play is supported, it will be used by the node to obtain an\n automatic node-ID. Invalid values other than 65535 should be avoided for consistency.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.node.description string mutable, persistent (empty)\n\n User/integrator-defined, human-readable description of this specific node.\n This is intended for use by a system integrator and should not be set by the manufacturer of a component.\n For example: on a quad-rotor drone this might read \"motor 2\" for one of the ESC nodes.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.pub.PORT_NAME.id natural16[1] mutable, persistent 65535 (unset, invalid)\n uavcan.sub.PORT_NAME.id ditto ditto ditto\n uavcan.cln.PORT_NAME.id ditto ditto ditto\n uavcan.srv.PORT_NAME.id ditto ditto ditto\n\n Publication/subscription/client/server port-ID, respectively. These registers are configured by the system integrator\n or an autoconfiguration authority when the node is first connected to a network.\n\n The \"PORT_NAME\" defines the human-friendly name of the port, which is related to the corresponding function\n or a network service supported by the node. The name shall match the following POSIX ERE expression:\n\n [a-zA-Z_][a-zA-Z0-9_.]*\n\n The names are defined by the vendor of the node. The user/integrator is expected to understand their meaning and\n relation to the functional capabilities of the node by reading the technical documentation provided by the vendor.\n\n A port whose port-ID register is unset (invalid value) remains inactive (unused); the corresponding function may\n be disabled. For example, a register named \"uavcan.pub.measurement.id\" defines the subject-ID of a measurement\n published by this node; if the register contains an invalid value (above the maximum valid subject-ID),\n said measurement is not published.\n\n The same name is used in other similar registers defined below. Network introspection and autoconfiguration tools\n will expect to find a register of this form for every configurable port supported by the node.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.pub.PORT_NAME.type string immutable, persistent N/A\n uavcan.sub.PORT_NAME.type ditto ditto ditto\n uavcan.cln.PORT_NAME.type ditto ditto ditto\n uavcan.srv.PORT_NAME.type ditto ditto ditto\n\n Publication/subscription/client/server full data type name and dot-separated version numbers, respectively.\n These registers are set by the vendor once and typically they are to remain unchanged (hence \"immutable\").\n The \"PORT_NAME\" defines the human-friendly name of the port as specified above.\n For example, a register named \"uavcan.pub.measurement.type\" may contain \"uavcan.si.sample.angle.Quaternion.1.0\".\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.diagnostic.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.can.bitrate natural32[2] implementation-defined implementation-defined\n uavcan.can.iface string mutable, persistent implementation-defined\n\n These registers are only relevant for nodes that support Cyphal/CAN.\n\n uavcan.can.bitrate defines the CAN bus bit rate: the first value is the arbitration bit rate, the second is the\n data phase bit rate. Nodes that support only Classic CAN should ignore the second value. Nodes that support CAN FD\n should initialize in the Classic CAN mode (MTU 8 bytes, BRS flag not set) if the values are equal. If CAN bitrate\n is not configurable or is always auto-detected, this register may be omitted or made immutable; otherwise it should\n be mutable and persistent.\n\n uavcan.can.iface is only relevant for software nodes or nodes that are capable of using different CAN interfaces.\n The value is a space-separated list of CAN interface names to use. The name format is implementation-defined\n (for example, \"can0\").\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.udp.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------#\n\n uavcan.serial.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------" [INFO] [stderr] | |_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: the link appears in this line: [INFO] [stderr] [INFO] [stderr] uavcan.node.id natural16[1] mutable, persistent 65535 (unset/PnP) [INFO] [stderr] ^ [INFO] [stderr] = note: no item named `1` in scope [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `1` [INFO] [stderr] --> src/generated.rs:12101:13 [INFO] [stderr] | [INFO] [stderr] 12101 | / /// `uavcan.register.Access.1.0` [INFO] [stderr] 12102 | | /// [INFO] [stderr] 12103 | | /// Size ranges from 2 to 515 bytes [INFO] [stderr] 12104 | | /// [INFO] [stderr] 12105 | | #[cfg_attr( [INFO] [stderr] 12106 | | not(doctest), [INFO] [stderr] 12107 | | doc = " Registers are strongly-typed named values used to store the configuration parameters of a node.\n This service is used to write and read a register.\n\n\n READ/WRITE BEHAVIORS\n\n The write operation is performed first, unless skipped by sending an empty value in the request.\n The server may attempt to convert the type of the supplied value to the correct type if there is a type mismatch\n (e.g. uint8 may be converted to uint16); however, servers are not required to perform implicit type conversion,\n and the rules of such conversion are not explicitly specified, so this behavior should not be relied upon.\n\n On the next step the register will be read regardless of the outcome of the write operation. As such, if the write\n operation could not be performed (e.g. due to a type mismatch or any other issue), the register will retain its old\n value. By evaluating the response the caller can determine whether the register was written successfully.\n\n The write-read sequence is not guaranteed to be atomic, meaning that external influences may cause the register to\n change its value between the write and the subsequent read operation. The caller is responsible for handling that\n case properly.\n\n The timestamp provided in the response corresponds to the time when the register was read. The timestamp may\n be empty if the server does not support timestamping or its clock is not (yet) synchronized with the network.\n\n If only read is desired, but not write, the caller shall provide a value of type 'empty'. That will signal the server\n that the write operation shall be skipped, and it will proceed to read the register immediately.\n\n If the requested register does not exist, the write operation will have no effect and the returned value will be\n empty. Existing registers should not return 'empty' when read since that would make them indistinguishable from\n nonexistent registers.\n\n\n REGISTER DEFINITION REQUIREMENTS\n\n Registers shall never change their type or flags as long as the server is running. Meaning that:\n - Mutability and persistence flags cannot change their states.\n - Read operations shall always return values of the same type and same dimensionality.\n The dimensionality requirement does not apply to inherently variable-length values such as strings and\n unstructured chunks.\n\n Register name should contain only:\n - Lowercase ASCII alphanumeric characters (a-z, 0-9)\n - Full stop (.)\n - Low line (underscore) (_)\n With the following limitations/recommendations:\n - The name shall not begin with a decimal digit (0-9).\n - The name shall neither begin nor end with a full stop.\n - A low line shall not be followed by a non-alphanumeric character.\n - The name should contain at least one full stop character.\n Other patterns and ASCII characters are reserved for special function registers (introduced below).\n\n\n ENVIRONMENT VARIABLES\n\n This section applies only to software nodes executed in a high-level operating system that supports environment\n variables or an equivalent mechanism.\n\n When a software node is launched, it is usually necessary to provide some of its configuration information early,\n particularly that which is related to Cyphal networking, before the node is started. Environment variables offer\n a convenient way of addressing this. Software nodes that support the register interface should evaluate the\n available environment variables during initialization and update their registers (whether they are stored in\n a persistent storage or in memory) accoringly. This should be completed before the first register read access.\n\n A register name is mapped to an environment variable name as follows:\n - the name is upper-cased;\n - full stop characters are replaced with double low line characters.\n For example: 'motor.inductance_dq' is mapped to 'MOTOR__INDUCTANCE_DQ'.\n\n Register values are represented in environment variables as follows:\n - string: utf-8 or platform-specific\n - unstructured: as-is\n - bit, integer*, natural*, real*: space-separated decimals\n\n If an environment variable matches the name of an existing register but its value cannot be converted to the\n register's type, an error should be raised.\n\n If an environment variable does not match the name of any register, it may be ignored. However, if the implementation\n can reliably deduce the type and purpose of the register, it may create one automatically. This provision is to\n support applications where the register schema may be altered by configuration.\n\n\n SPECIAL FUNCTION REGISTERS\n\n The following optional special function register names are defined:\n - suffix '<' is used to define an immutable persistent value that contains the maximum value\n of the respective register.\n - suffix '>' is like above, used to define the minimum value of the respective register.\n - suffix '=' is like above, used to define the default value of the respective register.\n - prefix '*' is reserved for raw memory access (to be defined later).\n Examples:\n - register name \"system.parameter\"\n - maximum value is contained in the register named \"system.parameter<\" (optional)\n - minimum value is contained in the register named \"system.parameter>\" (optional)\n - default value is contained in the register named \"system.parameter=\" (optional)\n\n The type and dimensionality of the special function registers containing the minimum, maximum, and the default\n value of a register shall be the same as those of the register they relate to.\n\n If a written value exceeds the minimum/maximum specified by the respective special function registers,\n the server may either adjust the value automatically, or to retain the old value, depending on which behavior\n suits the objectives of the application better.\n The values of registers containing non-scalar numerical entities should be compared elementwise.\n\n\n STANDARD REGISTERS\n\n The following table specifies the register name patterns that are reserved by the specification for\n common functions. These conventions are not mandatory to follow, but implementers are recommended to adhere because\n they enable enhanced introspection capabilities and simplify device configuration and diagnostics.\n\n REGISTER NAME PATTERN TYPE FLAGS RECOMMENDED DEFAULT\n =====================================================================================================================\n\n uavcan.node.id natural16[1] mutable, persistent 65535 (unset/PnP)\n\n Contains the node-ID of the local node. Values above the maximum valid node-ID for the current transport\n indicate that the node-ID is not set; if plug-and-play is supported, it will be used by the node to obtain an\n automatic node-ID. Invalid values other than 65535 should be avoided for consistency.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.node.description string mutable, persistent (empty)\n\n User/integrator-defined, human-readable description of this specific node.\n This is intended for use by a system integrator and should not be set by the manufacturer of a component.\n For example: on a quad-rotor drone this might read \"motor 2\" for one of the ESC nodes.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.pub.PORT_NAME.id natural16[1] mutable, persistent 65535 (unset, invalid)\n uavcan.sub.PORT_NAME.id ditto ditto ditto\n uavcan.cln.PORT_NAME.id ditto ditto ditto\n uavcan.srv.PORT_NAME.id ditto ditto ditto\n\n Publication/subscription/client/server port-ID, respectively. These registers are configured by the system integrator\n or an autoconfiguration authority when the node is first connected to a network.\n\n The \"PORT_NAME\" defines the human-friendly name of the port, which is related to the corresponding function\n or a network service supported by the node. The name shall match the following POSIX ERE expression:\n\n [a-zA-Z_][a-zA-Z0-9_.]*\n\n The names are defined by the vendor of the node. The user/integrator is expected to understand their meaning and\n relation to the functional capabilities of the node by reading the technical documentation provided by the vendor.\n\n A port whose port-ID register is unset (invalid value) remains inactive (unused); the corresponding function may\n be disabled. For example, a register named \"uavcan.pub.measurement.id\" defines the subject-ID of a measurement\n published by this node; if the register contains an invalid value (above the maximum valid subject-ID),\n said measurement is not published.\n\n The same name is used in other similar registers defined below. Network introspection and autoconfiguration tools\n will expect to find a register of this form for every configurable port supported by the node.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.pub.PORT_NAME.type string immutable, persistent N/A\n uavcan.sub.PORT_NAME.type ditto ditto ditto\n uavcan.cln.PORT_NAME.type ditto ditto ditto\n uavcan.srv.PORT_NAME.type ditto ditto ditto\n\n Publication/subscription/client/server full data type name and dot-separated version numbers, respectively.\n These registers are set by the vendor once and typically they are to remain unchanged (hence \"immutable\").\n The \"PORT_NAME\" defines the human-friendly name of the port as specified above.\n For example, a register named \"uavcan.pub.measurement.type\" may contain \"uavcan.si.sample.angle.Quaternion.1.0\".\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.diagnostic.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.can.bitrate natural32[2] implementation-defined implementation-defined\n uavcan.can.iface string mutable, persistent implementation-defined\n\n These registers are only relevant for nodes that support Cyphal/CAN.\n\n uavcan.can.bitrate defines the CAN bus bit rate: the first value is the arbitration bit rate, the second is the\n data phase bit rate. Nodes that support only Classic CAN should ignore the second value. Nodes that support CAN FD\n should initialize in the Classic CAN mode (MTU 8 bytes, BRS flag not set) if the values are equal. If CAN bitrate\n is not configurable or is always auto-detected, this register may be omitted or made immutable; otherwise it should\n be mutable and persistent.\n\n uavcan.can.iface is only relevant for software nodes or nodes that are capable of using different CAN interfaces.\n The value is a space-separated list of CAN interface names to use. The name format is implementation-defined\n (for example, \"can0\").\n\n ---------------------------------------------------------------------------------------------------------------------\n\n uavcan.udp.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------#\n\n uavcan.serial.*\n\n Prefix reserved for future use.\n\n ---------------------------------------------------------------------------------------------------------------------" [INFO] [stderr] | |_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: the link appears in this line: [INFO] [stderr] [INFO] [stderr] uavcan.pub.PORT_NAME.id natural16[1] mutable, persistent 65535 (unset, invalid) [INFO] [stderr] ^ [INFO] [stderr] = note: no item named `1` in scope [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `a-zA-Z0-9_.` [INFO] [stderr] --> src/generated.rs:12107:8545 [INFO] [stderr] | [INFO] [stderr] 12107 | ... POSIX ERE expression:\n\n [a-zA-Z_][a-zA-Z0-9_.]*\n\n The names are defined by the vendor of the node. The user/integrator ... [INFO] [stderr] | ^^^^^^^^^^^ no item named `a-zA-Z0-9_.` in scope [INFO] [stderr] | [INFO] [stderr] = help: to escape `[` and `]` characters, add '\' before them like `\[` or `\]` [INFO] [stderr] [INFO] [stderr] warning: unresolved link to `2` [INFO] [stderr] --> src/generated.rs:12101:13 [INFO] [stderr] | [INFO] [stderr] 12101 | / /// `uavcan.register.Access.1.0` [INFO] [stderr] 12102 | | /// [INFO] [stderr] 12103 | | /// Size ranges from 2 to 515 bytes [INFO] [stderr] 12104 | | /// [INFO] [stderr] 12105 | | #[cfg_attr( [INFO] [stderr] 12106 | | not(doctest), [WARN] too much data in the log, truncating it