Usually a device has a commandset taylored to its requirements. Different devices then have different commandsets. A controlling software on a PC has to know each device, meaning frequent software updates. There is a simple solution.
The requirement to have one user interface capable to handle yet unknown devices, can be satisfied with a commandset having the intelligence of presenting itself.
Consider 2 additional commands which are identical for each device :
The PC software just requires a loop :
FOR i:=1 to MenuItemCount do GetmenuItem[i]
And it knows the commandset of the device. It now looks simpler than it actually is. Nevertheless the complexity is only to be done once. The 'GetMenuItem[i]' has to be standardized for all devices.
The datafield of GetMenuItem[i] :
|commandcode||this item appears as this command|
|menu string||as presented to the user|
|datatype||string, byte, bitset, boolean, U16, S16, U32, S32, record|
|range info||length, lower bound, upper bound, ... of the datatype|
The data part enables trees of definitions for records
The bitset could be coded as (bitmask,menustring) :
|0x04||auto save config|
With a few additionally standardized commands such as :
A PC can build the user menu without even having an idea about the device. Should there automatically operated commands additional to the user operated commands, they have to be standardized as well. Not necessarily into detail though.
Timer commands are used to have the PC execute unknown commands in the embedded system in regular intervals.Again two additional commands are required :
The GetTimerItem[i] is defined as :
|intervall||depends on system : in ms, sec, min, day, always|
|Code||command code to be called|
|Action||todisk, compare values|
|OnError||todisk, notify user, alert user ...|
The command codes are specified in the commandlist above.
The implementation of such a structure takes less time than defining it. If something was forgotten, again software updates are necessary at the PC side.
This is a very powerful approach to control a family of similar products in distributed systems.
last updated: 12.april.00
Copyright (99,2000) Ing.Büro R.Tschaggelar