Wednesday, December 15, 2010

Physical Device Software Class Hierarchy

This is a first swag at a class hierarchy for the software that will be driving the physical devices. The machine code generated from the source code that represents these classes will be flashed onto the physical devices.


This is just a "cocktail napkin" design. Here is some brief details on each class


  • BaseDevice - All devices derive from this class. It provides some of the base services typically used by each class (example: serial communications).
  • SwitchedDevice - Represents a device that can be switched on or off, whether via hardware or software
  • LightingDevice - Inherits capabilities of a switched device. Adds other functions such as intensity and color control.
  • SensorDevice - A base class representing a general sensor device. Provides features such as sampling rate. These devices are always on and cannot be switched "on" or "off" (though I am thinking about having a "sleep" mode).
  • TankLevelDevice - drives the device that monitors tanks levels (water, fuel, holding, etc).
  • LiquidFlowDevice - drives the device that monitors the flow of liquid through a pipe (or hose).
  • WeatherDevice - drives the device that will measure environmental qualities often associated with weather (temperature, barometric pressure, humidity, etc).
  • DCMonitorDevice  - drives the device that measures aspects of a DC electrical circuit (voltage, current, etc).
  • ACMonitorDevice - similar to DCMonitorDevice except for AC circuits
  • HumanInputDevice  - is a base class for devices that handle human physical interaction used to control and monitor other devices in the network (switches, knobs, touch screens, etc).
  • ProximityDevice - drives the device that senses proximity intrusions. Like motion sensors.
  • ToggleSwitchDevice - drives the device that will accept wiring from physical switches which will turn the physical switches into "soft" switches to control other items on the network.
  • TouchScreenDevice  - drives the device that provides a dedicated touch screen interface for monitoring and controlling other devices on the network. This does not include off-the-shelf computing devices that have touch screen interfaces (like an iPad or iPhone).


There you go. I reserve the right to change my mind on any this of course.

No comments:

Post a Comment