SwitchSmart model

From SwitchSmart!
(Difference between revisions)
Jump to: navigation, search
 
Line 9: Line 9:
 
* driver  
 
* driver  
 
*: currently realized as linux kernel module
 
*: currently realized as linux kernel module
*: the interface the kernel provides to the userspace is realized as character-interface (for the [[HopeRF rfm12]]-module this is '/dev/rfm12').
+
*: the interface the kernel provides to the userspace is realized as character-interface (for the [[HopeRF rfm12]]-module this is ''/dev/rfm12'').
 
* library
 
* library
*: containing all the information for supported devices (such as radio controlled power sockets, etc.). The library uses shared-memory - so every instance using the library is sharing its configured devices states.
+
*: containing all the information for supported devices (such as radio controlled power sockets, etc.). The library uses shared-memory - so every instance using the library is sharing its configured devices states. Communication with the module happens via a character-device exposed by the driver (see above).
 
* applications directly using this library
 
* applications directly using this library
 
*: Actually any application can be linked against and using the library directly, but this probably only makes sense for testing applications or applications providing a more sophisticated network interface, such as the XML-RPC / JSON-RPC applications do. There's also an application, implementing an ncurses interface.
 
*: Actually any application can be linked against and using the library directly, but this probably only makes sense for testing applications or applications providing a more sophisticated network interface, such as the XML-RPC / JSON-RPC applications do. There's also an application, implementing an ncurses interface.
 
* frontend applications
 
* frontend applications
 
*: those applications are communicating via IP using high-level protocols such as XML-RPC / JSON-RPC, provided by mentioned applications using the library above. Those are bloated (especially XML), but (kinda) well-specified, inter-operable, easy-to-use on modern platforms such as iOS, Android and other platforms providing high-level programming languages / interfaces.
 
*: those applications are communicating via IP using high-level protocols such as XML-RPC / JSON-RPC, provided by mentioned applications using the library above. Those are bloated (especially XML), but (kinda) well-specified, inter-operable, easy-to-use on modern platforms such as iOS, Android and other platforms providing high-level programming languages / interfaces.

Latest revision as of 21:20, 5 December 2011

Technical perspective

Switchsmart model.png


Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox