where : ibrtses embedded

plug and play commandset

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.

User operated commands

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] :

field meaning
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
data additional data

The data part enables trees of definitions for records

The bitset could be coded as (bitmask,menustring) :

bit mask string
0x80 enable operation
0x20 start job
0x04 auto save config
0x01 protect output


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

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 :

field meaning
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.


Questions ?
Feedback ?

sponsored links


last updated: 12.april.00

Copyright (99,2000) Ing.Büro R.Tschaggelar