Configure a Fake Switch

The fake switch model is a model for testing switch functionality without physical hardware. It simulates a multi-position switch which you can control programmatically.

Navigate to the CONFIGURE tab of your machine’s page. Click the + icon next to your machine part in the left-hand menu and select Component or service. Select the switch type, then select the fake model. Enter a name or use the suggested name for your arm and click Create.

Fill in the attributes as applicable to your switch, according to the table below.

{
  "components": [
    {
      "name": "<your-switch-name>",
      "model": "fake",
      "type": "switch",
      "namespace": "rdk",
      "attributes": {
        "position_count": <number>,
        "labels": ["<label1>", "<label2>", "<label3>"]
      }
    }
  ]
}
{
  "components": [
    {
      "name": "my_switch",
      "model": "fake",
      "type": "switch",
      "namespace": "rdk",
      "attributes": {
        "position_count": 4,
        "labels": ["Off", "Low", "Medium", "High"]
      }
    }
  ]
}

Attributes

The following attributes are available for the fake switch model:

NameTypeRequired?Description
position_countintRequiredThe number of positions that the switch can be in. Default: 2
labelsarrayOptionalAn array of labels corresponding to the positions. Default: numeric values for the number of positions, starting with 0.

Test the switch

Once you have configured your switch, open the switch’s TEST panel on the CONFIGURE or CONTROL tab.

Use the buttons to view and change the switch’s position.

Troubleshooting

If your fake switch is not working as expected:

  1. Check your machine logs on the LOGS tab to check for errors.
  2. Make sure the position_count matches the number of labels if both are specified.
  3. Verify that position values used with SetPosition are within the valid range (0 to position_count - 1).
  4. Click on the TEST panel on the CONFIGURE or CONTROL tab and test if you can use the switch there.

Next steps

Check out the switch API or check out one of these guides: