Router Salvos with Helm

HELM 4.7.0 adds support for salvos on all types of router. Previously, salvos could only be fired with lengthy scripting, or if the controlled router had direct support for salvos.

The LoadSalvos script command  is used to load salvos from a JSON configuration file. Salvos are then triggered using the FireSalvo command.

Lua
H.ROUTER.LoadSalvos("salvos.json")
H.ROUTER.FireSalvo("MySalvo")

The router’s SalvoNames property holds a list of available salvos, which can be assigned to dropdowns or button groups.

Lua
H.DROPDOWN.Items = H.ROUTER.SalvoNames

Here’s an example of a JSON Salvo configuration file. Each salvo has a name and a body, which contains a list of routes in the format “source > dest”.  An optional id field can be used to recall salvos by number rather than by name

JSONC
{
    "Salvos": [
        {
            "name": "Test A",
            "id": 0,
            "body": [
                "1>1",
                "1>5",
                "1>6",
                "1>7"
            ]
        },
        {
            "name": "Test B",
            "id": 1,
            "body": [
                "4>0",
                "3>1",
                "2>2",
                "1>3",
                "0>4"
            ]
        }
    ]
}

To help validate and edit your JSON Salvo configuration files, you can use the online JSON validator and editor here. https://www.jsonschemavalidator.net/s/4fhgLG1O,

Salvos and the Dummy Router

The Dummy Router has four salvos pre-configured, which you can use to easily test salvo operation in a panel. These are

  • RESET – Set each output to its corresponding input
  • Test 1 – Set each output to Input 1
  • Test 2 – Set each output to Input 2
  • Test 3 – Set each output to Input 3