mechutil/
lib.rs

1/*
2 * Copyright (c) 2024 - 2025 Automated Design Corp. All Rights Reserved.
3 * Created Date: Tu Feb 2024
4 * -----
5 * Last Modified: Sat Mar 15 2025
6 * -----
7 */
8
9//
10// Copyright (C) 2024 Automated Design Corp. All Rights Reserved.
11// Created Date: 2024-02-02 17:05:57
12// -----
13// Last Modified: 2025-02-18 13:58:58
14// -----
15//
16//
17
18/// One-to-many notifier. Some cool lifetime concepts, but tokio::channels are usually a better choice.
19pub mod notifier;
20/// Timer on delay.
21pub mod ton;
22
23/// Register value used for flexible communication with a Codesys-based PLC,
24/// although it should be compatible with any controller.
25pub mod register_value;
26
27pub mod command_arg_tuple;
28
29/// An object dictionary similar to CANopen or CoE, used as registers with CommandFsm implementations.
30pub mod object_dictionary;
31
32/// An actor for tick events and command routing.
33pub mod actor;
34/// CommandMessage and CommandMessageResult. Used for our message pipelines and IPC.
35pub mod command;
36pub mod command_fsm;
37/// Variant data type.
38pub mod variant;
39
40pub mod heartbeat;
41
42/// Asynchronous, bi-directional comms channel.
43pub mod async_channel;
44
45/// Subscription mechanism, intended for async nodes to subscribe to messages.
46pub mod subscription;
47
48/// Low-latency bus communication
49pub mod async_bus;
50
51
52/// Corelink IPC Protocol
53pub mod corelink;
54
55/// IPC module for CommandMessage-based communication between autocore-server
56/// and external modules. Provides ModuleHandler trait (analogous to AsyncServelet),
57/// TCP transport with length-prefix framing, and TopicRouter for message dispatch.
58pub mod ipc;