The High Level Processor (HLP) is the name given to the part of the Intelligent Home System (IHS) which carries out higher level computational tasks. Typical higher level tasks include creating and organising memories, matching new situations with previous ones, working out what to do next and possibly other more abstract tasks. The HLP can rely on the Autonomic Microprocessor Controller (AMC) to carry out fast autonomic responses to external events whilst it has a little more time to work out what should be done when more factors such as memory, are taken into account.
Known Functions of the HLP
Since the HLP is being redeployed and redesigned, its final functionality is not fully known. However, there are certain tasks which the HLP will perform and these can be listed. The HLP will carry out the following tasks:
- Building a Short Term Memory (STM)which can hold the most recent days events for real time decision making.
- Constructing and maintaining a Long Term Memory (LTM) from each days environmental sensor readings.
- Computing Occupancy Probability Levels (OPL) for each location at each event.
- Computing and applying AMC modifications which allow better control as experience grows.
- Maintaining higher level dialogue with a system user.
Rebuilding the HLP
In 2013, a redesigned AMC based on the Arduino Mega 2560 was installed. This meant that the details of HLP functionality changed a little. A new HLP based on a Raspberry PI supporting the Linux operating system was also installed at the same time as the new AMC.
The initial configuration of the new HLP is to handle all user or occupant level interface with the environment. This interface functionality will be extended to include interfaces with other higher level systems. For instance, it is proposed that the new HLP will handle Short Term Memory directly but will leave Long Term Memory to another Linux based task which will be started during each night time.
The new HLP is written in Python 3 which is an interpreted rather than compiled language and is therefore slower that the software running on the AMC. At present, it is intended to continue to develop the user facing HLP in Python but create C based code to handle the background higher level functions.
Linux supports a very useful system called CRON which can run software applications at regular intervals. This capability is already used to restart the HLP on reboot or if the application fails for some reason.