mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-25 10:24:55 +00:00
172 lines
5.5 KiB
Markdown
172 lines
5.5 KiB
Markdown
# 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.
|
|
|
|
```JSON
|
|
{
|
|
"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 Input 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.
|
|
|
|
```JSON
|
|
{
|
|
"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.
|
|
|
|
```cs
|
|
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.
|