System Class

class SystemClass : public EntityClass

SystemClass. The System class provides access to the core settings, configuration and system information of the BrainStem module. The class provides access to the model type, serial number and other static information as well as the ability to set boot reflexes, toggle the user LED, as well as affect module and router addresses etc. The most common brainstem example uses the system entity to blink the User LED.

Public Functions

SystemClass()

Constructors.

~SystemClass()

Destructor.

!SystemClass ()

Finalizer.

void init (BrainStem2CLI::ModuleClass^ module, const unsigned char index)

Initializes the class. Should only be called when manually creating classes.

Parameters:
  • pModule – The module.

  • index – The cmdSYSTEM index to be addressed.

aErr getModule(unsigned char %address)

Get the current address the module uses on the BrainStem network.

Parameters:

address – The address the module is using on the BrainStem network.

Returns:

Returns common entity return values

aErr getModuleBaseAddress(unsigned char %address)

Get the base address of the module. Software offsets and hardware offsets are added to this base address to produce the effective module address.

Parameters:

address – The address the module is using on the BrainStem network.

Returns:

Returns common entity return values

aErr setRouter(const unsigned char address)

Set the router address the module uses to communicate with the host and heartbeat to in order to establish the BrainStem network. This setting must be saved and the board reset before the setting becomes active. Warning: changing the router address may cause the module to “drop off” the BrainStem network if the new router address is not in use by a BrainStem module. Please review the BrainStem network fundamentals before modifying the router address.

Parameters:

address – The router address to be used.

Returns:

Returns common entity return values

aErr getRouter(unsigned char %address)

Get the router address the module uses to communicate with the host and heartbeat to in order to establish the BrainStem network.

Parameters:

address – The address.

Returns:

Returns common entity return values

aErr setHBInterval(const unsigned char interval)

Set the delay between heartbeat packets which are sent from the module. For link modules, these these heartbeat are sent to the host. For non-link modules, these heartbeats are sent to the router address. Interval values are in 25.6 millisecond increments Valid values are 1-255; default is 10 (256 milliseconds).

Parameters:

interval – The desired heartbeat delay.

Returns:

Returns common entity return values

aErr getHBInterval(unsigned char %interval)

Get the delay between heartbeat packets which are sent from the module. For link modules, these these heartbeat are sent to the host. For non-link modules, these heartbeats are sent to the router address. Interval values are in 25.6 millisecond increments.

Parameters:

interval – The current heartbeat delay.

Returns:

Returns common entity return values

aErr setLED(const unsigned char bOn)

Set the system LED state. Most modules have a blue system LED. Refer to the module datasheet for details on the system LED location and color.

Parameters:

bOn – true: turn the LED on, false: turn LED off.

Returns:

Returns common entity return values

aErr getLED(unsigned char %bOn)

Get the system LED state. Most modules have a blue system LED. Refer to the module datasheet for details on the system LED location and color.

Parameters:

bOn – true: LED on, false: LED off.

Returns:

Returns common entity return values

aErr setBootSlot(const unsigned char slot)

Set a store slot to be mapped when the module boots. The boot slot will be mapped after the module boots from powers up, receives a reset signal on its reset input, or is issued a software reset command. Set the slot to 255 to disable mapping on boot.

Parameters:

slot – The slot number in aSTORE_INTERNAL to be marked as a boot slot.

Returns:

Returns common entity return values

aErr getBootSlot(unsigned char %slot)

Get the store slot which is mapped when the module boots.

Parameters:

slot – The slot number in aSTORE_INTERNAL that is mapped after the module boots.

Returns:

Returns common entity return values

aErr getVersion(unsigned int %build)

Get the modules firmware version number. The version number is packed into the return value. Utility functions in the aVersion module can unpack the major, minor and patch numbers from the version number which looks like M.m.p.

Parameters:

build – The build version date code.

aErr getModel(unsigned char %model)

Get the module’s model enumeration. A subset of the possible model enumerations is defined in BrainStem.h under “BrainStem model codes”. Other codes are be used by Acroname for proprietary module types.

Parameters:

model – The module’s model enumeration.

Returns:

Returns common entity return values

aErr getHardwareVersion(unsigned int %hardwareVersion)

Get the module’s hardware revision information. The content of the hardware version is specific to each Acroname product and used to indicate behavioral differences between product revisions. The codes are not well defined and may change at any time.

Parameters:

hardwareVersion – The module’s hardware version information.

Returns:

Returns common entity return values

aErr getSerialNumber(unsigned int %serialNumber)

Get the module’s serial number. The serial number is a unique 32bit integer which is usually communicated in hexadecimal format.

Parameters:

serialNumber – The module’s serial number.

Returns:

Returns common entity return values

aErr save(void)

Save the system operating parameters to the persistent module flash memory. Operating parameters stored in the system flash will be loaded after the module reboots. Operating parameters include: heartbeat interval, module address, module router address

Returns:

Returns common entity return values

aErr reset(void)

Reset the system.

Note

aErrTimeout indicates a successful reset, as the system resets immediately, which tears down the USB-link immediately, thus preventing an affirmative response.

Returns:

Returns aErrTimeout, from common entity, on success.

aErr logEvents(void)

Saves system log events to a slot defined by the module (usually ram slot 0).

Returns:

Returns common entity return values

aErr getUptime(unsigned int %uptimeCounter)

Get the module’s accumulated uptime in minutes

Parameters:

uptimeCounter – The module’s accumulated uptime in minutes.

Returns:

Returns common entity return values

aErr getTemperature(int %temperature)

Get the module’s current temperature in micro-C

Parameters:

temperature – The module’s system temperature in micro-C

Returns:

Returns common entity return values

aErr getMinimumTemperature(int %minTemperature)

Get the module’s minimum temperature in micro-C

Parameters:

minTemperature – The module’s minimum system temperature in micro-C

Returns:

Returns common entity return values

aErr getMaximumTemperature(int %maxTemperature)

Get the module’s maximum temperature in micro-C

Parameters:

maxTemperature – The module’s maximum system temperature in micro-C

Returns:

Returns common entity return values

aErr getInputVoltage(unsigned int %inputVoltage)

Get the module’s input voltage.

Parameters:

inputVoltage – The module’s input voltage reported in microvolts.

Returns:

Returns common entity return values

aErr getInputCurrent(unsigned int %inputCurrent)

Get the module’s input current.

Parameters:

inputCurrent – The module’s input current reported in microamps.

Returns:

Returns common entity return values

aErr getModuleHardwareOffset(unsigned char %offset)

Get the module hardware address offset. This is added to the base address to allow the module address to be configured in hardware. Not all modules support the hardware module address offset. Refer to the module datasheet.

Parameters:

offset – The module address offset.

Returns:

Returns common entity return values

aErr setModuleSoftwareOffset(const unsigned char address)

Set the software address offset. This software offset is added to the module base address, and potentially a module hardware address to produce the final module address. You must save the system settings and restart for this to take effect. Please review the BrainStem network fundamentals before modifying the module address.

Parameters:

address – The address for the module. Value must be even from 0-254.

Returns:

Returns common entity return values

aErr getModuleSoftwareOffset(unsigned char %address)

Get the software address offset. This software offset is added to the module base address, and potentially a module hardware address to produce the final module address. You must save the system settings and restart for this to take effect. Please review the BrainStem network fundamentals before modifying the module address.

Parameters:

address – The address for the module. Value must be even from 0-254.

Returns:

Returns common entity return values

aErr getRouterAddressSetting(unsigned char %address)

Get the router address system setting. This setting may not be the same as the current router address if the router setting was set and saved but no reset has occured. Please review the BrainStem network fundamentals before modifying the module address.

Parameters:

address – The address for the module. Value must be even from 0-254.

Returns:

Returns common entity return values

aErr routeToMe(const unsigned char bOn)

Enables/Disables the route to me function. This function allows for easy networking of BrainStem modules. Enabling (1) this function will send an I2C General Call to all devices on the network and request that they change their router address to the of the calling device. Disabling (0) will cause all devices on the BrainStem network to revert to their default address.

Parameters:

bOn – Enable or disable of the route to me function 1 = enable.

Returns:

Returns common entity return values

aErr getErrors(unsigned int %errors)

Gets any system level errors. Calling this function will clear the current errors. If the error persists it will be set again.

Parameters:

errors – Bit mapped field representing the devices errors

Returns:

Returns common entity return values

aErr getName(unsigned char %buffer, const unsigned int bufLength, unsigned int %unloadLength)

Gets a user defined name of the device. Helpful for identifying ports/devices in a static environment.

Parameters:
  • buffer – pointer to the start of a c style buffer to be filled

  • bufLength – Length of the buffer to be filed

  • unloadLength – Length that was actually received and filled.

Returns:

Returns common entity return values

aErr setName(unsigned char %buffer, const unsigned int bufLength)

Sets a user defined name for the device. Helpful for identification when multiple devices of the same type are present in a system.

Parameters:
  • buffer – Pointer to the start of a c style buffer to be transferred.

  • bufLength – Length of the buffer to be transferred.

Returns:

Returns common entity return values