-
Notifications
You must be signed in to change notification settings - Fork 80
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
}
]
}
}
]
}
}
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.
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 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.