[Contest Entry] Rio Monde
TinkersALot
Posts: 535
River Earth?
Huh?
Believe it or not this name makes sense with the project I have in mind. But for now, the final purpose of Rio Monde is yet to be revealed.
Huh?
Believe it or not this name makes sense with the project I have in mind. But for now, the final purpose of Rio Monde is yet to be revealed.
Comments
So, what does RIO Monde stand for? It stands for:
Remote
I/O
MONitor and
Dispatch
Engine
What will it do:
What I have in mind is a device that performs two general tasks.
The first is that Monitoring. In this mode, Rio Monde will continuously monitor a set of I/O points and/or sensors. The values from the monitored devices will be treated in the following ways:
The measurements will be written to the file system to provide long term logging (with the samples being written to files that start at a specific time and span a specific range of time. This simple file naming mechanism will allow the file system to become a simple name based database of values.
The second way that samples will be treated will be that "exceptions" in the values (likely defined by entries in a configuration file) will be immediately sent via SMTP to a "monitoring station" whose address information is found in a configuration file.
The final way that these samples will be treated is that they will be sent to a client when the client sends a specific command to RIO Monde. The nature of this command is likely to be one where a start time and end time will be defined and all samples taken between the time span (inclusive) will be sent to the client.
It is likely a useful feature to consider removal of samples either under an auto-age-off scenario or under client command and control.
The next general feature that RIO Monde will support is a mode where "output devices" that are attached to the I/O channel are controlled by client command.
Program Code:
I plan to use a refined version of the message slot system that I developed for the "Mo' than a Po' BoeBot" project as a means of coordinating different cogs that are assigned a specific task. The tasks are currently envisioned as:
Executive
Socket Server and SMTP alerter
I/O monitor
Data Logger
Time Manager
File Manager
Command Executor
Output Controller
I/O Devices and Interface
I hope to be able to come up with a means of implemented an "open ended and expandable I/O system on to the spinneret. However, if the spinneret I/O is too constrained for what I have in mind, there may have to be a dedicated I/O controller that will manage the additional hardware (outputs and sensor devices). If a physical layer manager becomes needed, then the Output Controller and I/O monitor will provide interface services to that external controller. The exact nature of how this will work remains to be seen, and I am open to any suggestions or advice that others may offer.
Testing and Integration Expectations
Since I plan to decouple all tasks via message queues, each of them can be developed and tested independently so long as the test environment can feed correctly formatted messages into any task queue. Then in order to integrate any task into the system will be a simple manner of replacing the source of the messages from the test jig to the executive.
Project Status:
As my order for the spinneret is not yet fulfilled, this project's current state has not moved beyond this conceptualization phase.
Parting Shot:
So, this is what Rio Monde is all about. Hopefully, other "real life" tasks will not get too much in the way of my completing this effort. I already know how I want to use Rio Monde and think it can find lots of uses beyond the immedate need I see for it.