Hard Buttons JSON File

As of CH5 release 2.3, a Hard Buttons JSON file is created as part of all new Crestron Template Projects within the /app/ directory. The Hard Buttons JSON file allows programmers to create hard button join assignments to define hard button join mappings during the design phase of a project. The Hard Buttons JSON file supports hard button mapping for supported touch screens within a project.

The Hard Buttons JSON file is created with the following structure:

Copy
{
  "project": {
    "signals": [
      {
        "hardButtonSignal": "Csig.Hard_Button_1.Press",
        "digitalJoin": "",
        "navigationPageName": ""
      },
      {
        "hardButtonSignal": "Csig.Hard_Button_2.Press",
        "digitalJoin": "",
        "navigationPageName": ""
      },
      {
        "hardButtonSignal": "Csig.Hard_Button_3.Press",
        "digitalJoin": "",
        "navigationPageName": ""
      },
      {
        "hardButtonSignal": "Csig.Hard_Button_4.Press",
        "digitalJoin": "",
        "navigationPageName": ""
      },
      {
        "hardButtonSignal": "Csig.Hard_Button_5.Press",
        "digitalJoin": "",
        "navigationPageName": ""
      }
    ],
    "pages": [
      {
        "pageName": "page1",
        "signals": [
          {
            "hardButtonSignal": "Csig.Hard_Button_1.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_2.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_3.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_4.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_5.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          }
        ]
      },
      {
        "pageName": "page2",
        "signals": [
          {
            "hardButtonSignal": "Csig.Hard_Button_1.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_2.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_3.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_4.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_5.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          }
        ]
      }
    ],
    "devices": [
      {
        "deviceName": "TSW-1070",
        "signals": [
          {
            "hardButtonSignal": "Csig.Hard_Button_1.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_2.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_3.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_4.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_5.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          }
        ],
        "pages": [
          {
            "pageName": "page1",
            "signals": [
              {
                "hardButtonSignal": "Csig.Hard_Button_1.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_2.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_3.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_4.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_5.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              }
            ]
          },
          {
            "pageName": "page2",
            "signals": [
              {
                "hardButtonSignal": "Csig.Hard_Button_1.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_2.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_3.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_4.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_5.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              }
            ]
          }
        ]
      },
      {
        "deviceName": "TSW-1060",
        "signals": [
          {
            "hardButtonSignal": "Csig.Hard_Button_1.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_2.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_3.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_4.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          },
          {
            "hardButtonSignal": "Csig.Hard_Button_5.Press",
            "digitalJoin": "",
            "navigationPageName": ""
          }
        ],
        "pages": [
          {
            "pageName": "page1",
            "signals": [
              {
                "hardButtonSignal": "Csig.Hard_Button_1.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_2.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_3.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_4.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_5.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              }
            ]
          },
          {
            "pageName": "page2",
            "signals": [
              {
                "hardButtonSignal": "Csig.Hard_Button_1.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_2.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_3.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_4.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              },
              {
                "hardButtonSignal": "Csig.Hard_Button_5.Press",
                "digitalJoin": "",
                "navigationPageName": ""
              }
            ]
          }
        ]
      }
    ]
  }
}

The JSON file contains the mappings for signals against the hard buttons. Content must be populated manually for the appropriate attributes.

NOTE: Hard buttons are always a Boolean (digital) signal. Only digital joins (inclusive of reserve digital joins) will be supported, and joins will be mapped to the press and release of a button. Repeat digital should be made available for hard buttons (as they are not supported by default).

The following priority is given to hard buttons for signal mapping (from highest to lowest):

  1. Device level page (if the user is on the selected page)
  2. Example: If a user is on page 2, the device level page 2 signal (if it is not empty) is given priority.

  3. Device level
  4. Project level page (if the user is on the selected page)
  5. Project level

The navigationPageName attribute refer to the name of the page (page flip) that the project navigates to when the hard button is pressed. The page flip takes precedence over the digitalJoin attribute following the hard button priorities explained above. However, a pageNavigation at the project level has a higher priority that one at the device level, and so forth.

If the Hard Buttons JSON file needs to be exported, use the Export Project Function.