expression: allow array of strings

There are cases where the expressions can be very long and the
resulting string is fairly ugly.  JSON doesn't allow multi-line
strings in the standard, but it does allow arrays of strings.  Allow
the Expression to optionally be an array of string to allow nicer
formatting.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ic21a7c00d4ce96d8d993902d6c3b36f027972947
1 file changed
tree: 5dadb91f36723212633f3fe744fc969eb9557064
  1. subprojects/
  2. .clang-format
  3. .gitignore
  4. dbusSensor.hpp
  5. dbusUtils.hpp
  6. exprtkTools.hpp
  7. LICENSE
  8. MAINTAINERS
  9. meson.build
  10. OWNERS
  11. phosphor-virtual-sensor.service.in
  12. README.md
  13. thresholds.hpp
  14. virtual_sensor_config.json
  15. virtualSensor.cpp
  16. virtualSensor.hpp
README.md

phosphor-virtual-sensor

phosphor-virtual-sensor reads in virtual_sensor_config.json There are two types of data in this file:

virtual sensor configuration information

See virtual_sensor_config.json in this repository for an example. Sensors added this way can use any expression that is accepted by exprtk.

information to get a virtual sensor configuraton from D-Bus

For example:

{
  "Desc": {
    "Config": "D-Bus",
    "Type": "modifiedMedian"
  }
}

Sensors added this way can only use a set of restricted calculations. At this stage the only type supported is modifiedMedian.

The virtual sensor configuration information needs to be added into the relevant hardware configuration file in entity-manager. This method of adding a virtual sensor allows a recipe that builds for different hardware configurations to have different virtual sensors for each configuration.

The virtual sensor configuration in entity manager follows a different format to the JSON in virtual_sensor_config.json (specified in entity-manager/schemas/VirtualSensor.json).