1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! A 3 tiered driver library for interacting with Modbus devices on a SCADA-like network.
//!
//! This library is one of a set of repositories in the
//! [Brewery Control System project](https://github.com/NavasotaBrewing)
//! of the [Navasota Brewing Company](https://navasotabrewing.com). It contains low
//! level drivers for devices we use in the brewing process.
//!
//! # Layers
//!
//! This crate operates on 3 layers:
//! 1. [`drivers`](crate::drivers) -- Low level abtractions of Modbus or other serial devices. These are very general and
//! allow communication to nearly any device.
//! 2. [`controllers`](crate::controllers) -- Implementations of drivers for specific controllers. These are the controllers
//! we use to control field devices in the brewery system.
//! 3. [`model`](crate::model) -- A conceptual model of an RTU, containing a list of devices. These devices are serializable and can be
//! sent over the network. They contain connection details and state, so that they can use a `controller` to read or enact change
//! in a field device. You can write a configuration file that models the RTU and its devices, then this crate can read the configuration
//! file and update/enact the devices as necessary.
//!
//! New controllers will be added as needed. See the [`examples/` directory](https://github.com/NavasotaBrewing/brewdrivers/tree/master/examples)
//! to see how to use this library, and see the [organization documentation](https://github.com/NavasotaBrewing/documentation) for more information about the
//! hardware and project as a whole.