diff --git a/Cargo.toml b/Cargo.toml index 07aeec2..4602caa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ members = [ # Device types "node", - "master", + "commander", # Examples "examples/playground" ] diff --git a/README.md b/README.md index 51b089d..f84712c 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,25 @@ # Physical -Physical is a library for interacting with the physical world from a computer. This can broadly be broken down into two categories: +Physical is a library for interacting with the physical world from a computer. This can broadly be broken down into two +categories: * Collecting and digitizing data from the physical world. * Controlling devices that take physical action. ## Concepts + The main concepts of Physical are: -* Peripheral: A peripheral is a board that hosts physical I/O and usually does analog to digital conversion or - digital to analog conversion. A peripheral cannot function on its own, it must be connected to a node. This is more - narrow than the definition of a peripheral in embedded systems generally. Peripheral support is done on the basis - of complete boards, not individual components like an ADC. Abstractions for individual components should be made - separately, such as in BFHAL. -* Node: A node hosts peripherals. A node can have a master but does not need one. A node can ignore or even override - commands from the master computer. In a complex system, nodes are intended to be kept simple, less likely to - encounter an error than the master, and in many cases should check for obvious problems in commands from the master. -* Master: A master hosts nodes. It is possible for a device to be both a node and a master at the same time, - although it may not be the best idea to make such a setup. \ No newline at end of file + +* Peripheral: A peripheral is a board that hosts physical I/O and usually does analog to digital conversion or + digital to analog conversion. A peripheral cannot function on its own, it must be connected to a node. This is more + narrow than the definition of a peripheral in embedded systems generally. Peripheral support is done on the basis + of complete boards, not individual components like an ADC. Abstractions for individual components should be made + separately, such as in BFPOWER drivers. +* Node: A node hosts peripherals. A node can have a commander but does not need one. A node can ignore or even override + commands from the commander. In a complex system, nodes are intended to be kept simple, less likely to + encounter an error than the commander, and in some cases should check for obvious problems in commands from the + commander. +* Commander: A commander hosts nodes. It is possible for a device to be both a node and a commander at the same time, + although it may not be the best idea to make such a setup. There is no concept of nesting commanders built into + Physical. If some kind of abstraction for a computer that commands multiple commanders, which command nodes, is + necessary, it should be made for that specific application. \ No newline at end of file diff --git a/master/Cargo.toml b/commander/Cargo.toml similarity index 77% rename from master/Cargo.toml rename to commander/Cargo.toml index 0e4d485..185bae4 100644 --- a/master/Cargo.toml +++ b/commander/Cargo.toml @@ -1,6 +1,6 @@ [package] -name = "physical-master" -description = "A master hosts nodes." +name = "physical-commander" +description = "A commander hosts nodes." version.workspace = true edition.workspace = true repository.workspace = true diff --git a/master/src/lib.rs b/commander/src/lib.rs similarity index 100% rename from master/src/lib.rs rename to commander/src/lib.rs