- Links, GUI's and buttons
- Crashes and tools
- Crashing again
- Even more macro definition changes.
- Insteon design musings
- New and improved UI for the client, and more Macro musings
- Macros, not only for plcd, but in the compiler too! Also Insteon debugging help
- Attempts to fix macros, or changing "izza" to "hazza"
- Parameters with namespaces, new commands and yet another issue with Macros.
- Parameters, duplication, conflicts and namespaces
Parametered, a class that provides parameters to other classes
I may have previously commented on the need for arbitrary parameters for commands. If not then there is a need for commands to use arbitrary parameters. These are on top the command's target and type. This is for things like dim level in dim commands or responders in link commands.
I implemented this as a std::string, std::string map in the 'Command' super class, and provided translator functions to enable inserting and pulling integer values.
With the requirement to handle different Insteon devices, I want to provide the Protocol handler a similar ability for devices. The idea is that when you add a device, the PLM will query its engine level and determine if the device is I2CS. Then the protocol handler will be able to store that information in the device for later commands.
To enable this I am extracting the map and handling functions from Command and generating a new class referred to as 'Parametered'. In the case of Command, it will inherit 'Addressed' and 'Parametered'. As will 'Device' however, 'Device' will use 'Parametered' with a pointer to the 'ConfigHolder' so when you change a devices parameters, the device will cause the configuration file to be rewritten with the new parameter.