Skip to content

Duress Home DV (duresshome.json)

This is the home screen shown on the CC2 badge of the person wearing the device. It displays their own name and role, a hidden duress flag that appears when an alert is active, and buttons to open the system functions or the duress alert list.

File: /dvs/duresshome.json


Click to expand
{
"displayName": "Home",
"displayIcon": "ic_airplanemode_on_black_48dp",
"target_size": { "w": 176, "h": 264 },
"infopages": [
{
"id": "1",
"infowidgets": [
{
"name": "user_name",
"region": { "x": 5, "y": 5, "w": 160, "h": 70 },
"type": "dynamic",
"value": "Johnathon Doemachine",
"format": "text",
"formatter": {
"name": "basic",
"valign": "c",
"halign": "c",
"autobreak": true,
"outline": "solid_rounded",
"outline_sz": 1,
"font": { "sz": 34 }
}
},
{
"name": "user_role",
"region": { "x": 5, "y": 75, "w": 160, "h": 20 },
"type": "dynamic",
"value": "CTO",
"format": "text",
"formatter": {
"name": "basic",
"valign": "c",
"halign": "c",
"autobreak": false,
"font": { "sz": 14, "weight": "bold" }
}
},
{
"name": "duress_flag",
"region": { "x": 40, "y": 100, "w": 90, "h": 90 },
"type": "dynamic",
"value": "alert_bell",
"show": false,
"format": "graphic",
"formatter": {
"name": "basic",
"valign": "scale",
"halign": "scale",
"outline": "solid_square",
"outline_sz": 1
}
},
{
"name": "config",
"region": { "x": 5, "y": 190, "w": 50, "h": 50 },
"type": "button",
"actions": [{ "a": "g", "p": "sysfns.1" }],
"value": "gear1",
"format": "graphic",
"formatter": {
"name": "basic",
"valign": "c",
"halign": "c",
"autobreak": false,
"outline": "solid_rounded",
"outline_sz": 1,
"font": { "sz": 22 }
}
},
{
"name": "duress",
"region": { "x": 110, "y": 190, "w": 50, "h": 50 },
"type": "button",
"actions": [{ "a": "g", "p": "duress.1" }],
"value": "ic_bug_report_black_24dp",
"format": "graphic",
"formatter": {
"name": "basic",
"valign": "c",
"halign": "c",
"autobreak": false,
"outline": "solid_rounded",
"outline_sz": 1
}
}
]
}
]
}

WidgetTypeInteractionPurpose
user_nametextdynamicThe wearer’s name (e.g., “Johnathon Doemachine”). Set by the device’s own user data (usually via vname in the duress DV configuration or the allocation data block).
user_roletextdynamicThe wearer’s role or title (e.g., “CTO”). Also set by the device’s own user data (user_role).
duress_flaggraphicdynamicShows an alert bell icon when a duress alert is active (hidden by default).
configgraphic (button)buttonOpens the system functions page (sysfns.1).
duressgraphic (button)buttonOpens the duress alert list (duress.1) where the wearer can see incoming alerts.

  • user_name and user_role are populated by the device’s own configuration—either from the initial value in the DV or from dynamic data set via updateLocal/updateRemote actions in the allocdata.
  • They are completely independent of the portal’s “Associated User” field.
  • The duress_appnever reads user_name or user_role when building a duress alert notification. Instead, the duress_appuses its own associatedUser field for the subj of the alert.

This DV does not receive data from the duress_appfor its widgets. It only provides a button to navigate to the duress DV, which is where the portal-pushed alerts appear.

When a duress alert is received, the duress_flag widget becomes visible, but the notification text (subj, location) is displayed in the duress DV, not here.