Skip to content

Commit 1145f61

Browse files
committed
partial update of documentation to reflect the implementation pattern
1 parent ad09daf commit 1145f61

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

docs/ar_ibus.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,23 @@ One of the foundational capabilities of the SparkFun Toolkit is bus communicatio
44

55
For bus communication, the SparkFun Toolkit is designed to provide a common implementation for use across all SparkFun libraries. Additionally, the bus architecture is modeled on a *driver* pattern, separating the individual bus setup/configuration from data communication, enabling a single device implementation to easily support a variety of device bus types.
66

7-
The key goals set for the Bus implementation in the Toolkit include:
7+
### The Bus Interface Design Pattern
8+
9+
This pattern allows an application to develop against the common bus interface without regard to the underlying bus type or implementation. This *plug-in* nature of this model enables core application reuse across a range of bus devices. What to use a different bus type? Just use a different driver.
10+
11+
This pattern is show in the following diagram:
12+
13+
![Driver Pattern](images/tk_ibus_p1.png)
14+
15+
This pattern extends across different platforms, allowing a common platform independent application core to utilize platform specific bus drivers.
16+
17+
![Platform Independence](images/tk_ibus_p2.png)
18+
19+
The platform dependant drivers implement the core Bus Interface (IBus) for communication, with platform specific setup and management left to the underlying implementation. Since the application core only works with the Bus Interface, if implemented correctly, the same core works across different bus types and across different development environments.
20+
21+
## Goals
22+
23+
For the initial implementation the key goals set for the Bus implementation in the Toolkit include:
824

925
* Separate device setup from device communication
1026
* Define a common bus interface for use across a variety of common device bus types
@@ -13,7 +29,7 @@ The key goals set for the Bus implementation in the Toolkit include:
1329

1430
## Architecture Overview
1531

16-
To meet the goals for this subsystem, the Flux framework follows a ***Driver Pattern***, defining a common interface for bus communication. Device drivers are designed around this interface, leaving bus configuration and implementation to platform specific implementation.
32+
As outlined above, the SparkFun Toolkit follows a ***Driver Pattern***, defining a common interface for bus communication. Device drivers are designed around this interface, leaving bus configuration and implementation to platform specific implementation.
1733

1834
The key class to support this pattern are:
1935

docs/images/tk_ibus_p1.png

24 KB
Loading

docs/images/tk_ibus_p2.png

34.8 KB
Loading

0 commit comments

Comments
 (0)