Skip to content

DigitalInput

Trevor Payne edited this page May 14, 2020 · 1 revision

DigitalInput

Digital Inputs can be bridged directly to SIMPL from any device that is both inlcuded within essentials and has a relay.

Consider the following example.

{
    "template": {
        "roomInfo": [
            {}
        ],
        "devices": [
            {
                "key": "processor",
                "uid": 0,
                "type": "pro3",
                "name": "pro3",
                "group": "processor",
                "supportedConfigModes": [
                    "compliance",
                    "essentials"
                ],
                "supportedSystemTypes": [
                    "hudType",
                    "presType",
                    "vtcType",
                    "custom"
                ],
                "supportsCompliance": true,
                "properties": {}
            },
            {
                "key": "DigitalInput-1",
                "uid": 3,
                "name": "Digital Input 1",
                "group": "api",
                "type": "digitalInput",
                "properties": {
                    "portDeviceKey" : "processor",
                    "portNumber" : 1,
                    "disablePullUpResistor" : true
                }
            },
            {
                "key": "DigitalInput-2",
                "uid": 3,
                "name": "Digital Inptut 2",
                "group": "api",
                "type": "digitalInput",
                "properties": {
                    "portDeviceKey" : "processor",
                    "portNumber" : 2,
                    "disablePullUpResistor" : true
                }
            },
            {
                "key": "deviceBridge",
                "uid": 4,
                "name": "BridgeToDevices",
                "group": "api",
                "type": "eiscapiadv",
                "properties": {
                    "control": {
                        "tcpSshProperties": {
                            "address": "127.0.0.2",
                            "port": 0
                        },
                        "ipid": "03",
                        "method": "ipidTcp"
                    },
                    "devices": [
                        {
                            "deviceKey": "DigitalInput-1",
                            "joinStart": 1
                        },
                        {
                            "deviceKey": "DigitalInput-2",
                            "joinStart": 2
                        }
                    ]
                }
            }
        ]
    }
}

RelayOutput Configuration Explanation

This configuration is meant for a Pro3 device, and instantiates two relay ports and links them to an eisc bridge to another processor slot on ipid 3. Let's break down the DigitalInput-1 device.

{
    "key": "DigitalInput-1",
    "uid": 3,
    "name": "Digital Input 1",
    "group": "api",
    "type": "digitalInput",
    "properties": {
        "portDeviceKey" : "processor",
        "portNumber" : 1,
        "disablePullUpResistor" : true
    }
}

Key

The Key is a unique identifier for essentials. The key allows the device to be linked to other devices also defined by key. All Keys MUST be unique, as every device is added to a globally-accessible dictionary. If you have accidentally utilized the same key twice, Essentials will notify you during startup that there is an issue with the device.

Uid

The Uid is reserved for use with an PepperDash internal config generation tool, and is not useful to Essentials in any way.

Name

The Name a friendly name assigned to the device. Many devices pass this data to the bridge for utilization in SIMPL.

Group

Utilized in certain Essentials devices. In this case, the value is unimportant.

Type

The Type is the identifier for a specific type of device in Essentials. A list of all valid types can be reported by using the consolecommand gettypes in Essentials. In this case, the type is digitalInput. This type is valid for any instance of a Relay Output.

Properties

These are the properties essential to the instantiation of the identified type.

Properties

There are two properties relevant to the instantiation of a relay device.

portDeviceKey

This property maps to the key of the device upon which the relay resides.

portNumber

This property maps to the number of the relay on the device you have mapped the relay device to. Even if the device has only a single relay, portNumber must be defined.

disablePullUpResistor

This is a boolean value, therefore it is a case-sensitive true or false utilized to determine if the pullup resistor on the digital input will be disabled or not.

The JoinMap

The joinmap for a digitalInput device is comprised of a single digital join.

namespace PepperDash.Essentials.Core.Bridges
{
    public class IDigitalInputJoinMap : JoinMapBaseAdvanced
    {

        [JoinName("InputState")]
        public JoinDataComplete InputState = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
            new JoinMetadata() { Label = "Room Email Url", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital });


        public IDigitalInputJoinMap(uint joinStart)
            : base(joinStart, typeof(IDigitalInputJoinMap))
        {
        }
    }
}

InputState is a digital join that represents the feedback for the associated Digital Input Device. Its join is set to 1.