Crate mechutil

Source

Modulesยง

actor
An actor for tick events and command routing.
async_bus
Low-latency bus communication
async_channel
Asynchronous, bi-directional comms channel. An asynchronous, bi-directional channel meant for communicating via an internal bus. We use tokio mpsc (multi-producer, single consumer) channels because tokio typically runs through all or projects.
command
CommandMessage and CommandMessageResult. Used for our message pipelines and IPC.
command_arg_tuple
MechFsmCommandArgTuple The MechFsmCommandArgTuple attempts to reduce the number transmissions required to execute a command by allowing for multiple arguments or varying types in the same transmission. To do so, values are serialized into the data field, with separate arrays tracking type information and value length. The data field can store up to 255 arguments, based upon argument length. For 255 values, every column would need to be a byte. If every argument was four bytes long, the maximum number of arguments would be 63.
command_fsm
corelink
Corelink IPC Protocol
heartbeat
notifier
One-to-many notifier. Some cool lifetime concepts, but tokio::channels are usually a better choice.
object_dictionary
An object dictionary similar to CANopen or CoE, used as registers with CommandFsm implementations. This module provides an implementation based upon the CANopen object dictionary or CAN over EtherCAT (CoE) systems. The object dictionary is the core mechanism for configuration and communication with CANopen devices. Each entry in the dictionary is represented by an index, which may contain sub-indices for more complex data structures such as arrays and records.
register_value
Register value used for flexible communication with a Codesys-based PLC, although it should be compatible with any controller.
subscription
Subscription mechanism, intended for async nodes to subscribe to messages.
ton
Timer on delay.
variant
Variant data type. Variant type used for communications and other purposes. A good example of a Variant type used in a similar application is in the locka99/opcua implementation found here: https://github.com/locka99/opcua/blob/master/lib/src/types/variant.rs