Skip to content

Commit

Permalink
Merge pull request #4 from PepperDash/feature/refactor-process-response
Browse files Browse the repository at this point in the history
Feature/refactor process response
  • Loading branch information
jkdevito authored Jun 2, 2022
2 parents 5e235b7 + 28a3d25 commit 25c4d6e
Show file tree
Hide file tree
Showing 28 changed files with 27,495 additions and 5 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/essentialsplugins-betabuilds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ env:
RELEASE_BRANCH: main
jobs:
Build_Project:
runs-on: windows-latest
runs-on: windows-2019
steps:
# First we checkout the source repo
- name: Checkout repo
Expand Down Expand Up @@ -221,7 +221,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Push_Nuget_Package:
needs: Build_Project
runs-on: windows-latest
runs-on: windows-2019
steps:
- name: Download Build Version Info
uses: actions/download-artifact@v1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/essentialsplugins-releasebuilds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ env:
RELEASE_BRANCH: main
jobs:
Build_Project:
runs-on: windows-latest
runs-on: windows-2019
steps:
# First we checkout the source repo
- name: Checkout repo
Expand Down Expand Up @@ -169,7 +169,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Push_Nuget_Package:
needs: Build_Project
runs-on: windows-latest
runs-on: windows-2019
steps:
- name: Download Build Version Info
uses: actions/download-artifact@v1
Expand Down
197 changes: 196 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,196 @@
# epi-display-sony-bravia
![PepperDash Logo](/images/logo_pdt_no_tagline_600.png)
# Sony Bravia Display Plugin

This is a plugin repo for Sony Bravia Displays. At this time the plugin only supports RS232 control.

[Sony Bravia Display - RS232 API](https://pro-bravia.sony.net/develop/integrate/rs-232c/index.html)

## RS232 Specification

Verify the RS232 via Serial Connection control is enabled. In testing, it was found the unit defaulted to RS232 via HDMI.

Set device to **Normal Mode**, do not put the device in **Pro Mode** or **Pro Settings Mode**. If they are put in either of the **Pro** modes requires **Remote Commander** out of **Pro** mode.

| Property | Value |
| ------------ | ----- |
| Baudrate | 9,600 |
| Data Bits | 8 |
| Parity | N/A |
| Start Bits | 1 |
| Stop Bits | 1 |
| Flow Control | N/A |

### Essentials RS232 Device Configuration

```json
{
"key": "display-1",
"name": "Display",
"type": "sonybravia",
"group": "display",
"properties": {
"control": {
"method": "com",
"controlPortDevKey": "processor",
"controlPortNumber": 1,
"comParams": {
"protocol": "RS232",
"baudRate": 9600,
"dataBits": 8,
"stopBits": 1,
"parity": "None",
"softwareHandshake": "None",
"hardwareHandshake": "None",
"pacing": 0
}
}
}
}
```

## Simple IP Specification

| Property | Value |
| -------- | ----- |
| Port | 20060 |


### Essentials Simple IP Device Configuration

Simple IP control is currently **under development**

```json
{
"key": "display-1",
"name": "Display",
"type": "sonybravia",
"group": "display",
"properties": {
"control": {
"method": "tcpip",
"tcpSshProperties": {
"address": "",
"port": 20060,
"username": "",
"password": "",
"autoReconnect": true,
"autoReconnectIntervalMs": 10000
}
}
}
}
```

## Device Bridging

### Essentials Device Bridge Configuration

```json
{
"key": "plugin-bridge1",
"uid": 39,
"name": "Plugin Bridge",
"group": "api",
"type": "eiscApiAdvanced",
"properties": {
"control": {
"tcpSshProperties": {
"address": "127.0.0.2",
"port": 0
},
"ipid": "B2",
"method": "ipidTcp"
},
"devices": [
{
"deviceKey": "display-1",
"joinStart": 1
}
]
}
}
```

### Essentials Bridge Join Map

The join map below documents the commands implemented in this plugin.

### Digitals

| Input | I/O | Output |
| ----------------------------- | --- | ------------------------- |
| Power Off | 1 | Power Off Fb |
| Power On | 2 | Power On Fb |
| | 3 | Is Two Display Fb |
| Input 1 Select [HDMI 1] | 11 | Input 1 Fb [HDMI 1] |
| Input 2 Select [HDMI 2] | 12 | Input 2 Fb [HDMI 2] |
| Input 3 Select [HDMI 3] | 13 | Input 3 Fb [HDMI 3] |
| Input 4 Select [HDMI 4] | 14 | Input 4 Fb [HDMI 4] |
| Input 5 Select [HDMI 5] | 15 | Input 5 Fb [HDMI 5] |
| Input 6 Select [PC] | 16 | Input 6 Fb [PC] |
| Input 7 Select [Video 1] | 17 | Input 7 Fb [Video 1] |
| Input 8 Select [Video 2] | 18 | Input 8 Fb [Video 2] |
| Input 9 Select [Video 3] | 19 | Input 9 Fb [video 3] |
| Input 10 Select [Component 3] | 20 | Input 10 Fb [Component 1] |
| | 40 | Button 1 Visibility Fb |
| | 41 | Button 2 Visibility Fb |
| | 42 | Button 3 Visibility Fb |
| | 43 | Button 4 Visibility Fb |
| | 44 | Button 5 Visibility Fb |
| | 45 | Button 6 Visibility Fb |
| | 46 | Button 7 Visibility Fb |
| | 47 | Button 8 Visibility Fb |
| | 48 | Button 9 Visibility Fb |
| | 49 | Button 10 Visibility Fb |
| | 50 | Display Online Fb |

### Analogs

| Input | I/O | Output |
| -------------------------- | --- | ---------------------- |
| Input Number Select [1-10] | 11 | Input Number Fb [1-10] |

### Serials

| Input | I/O | Output |
| ----- | --- | --------------------------- |
| | 1 | Display Name |
| | 11 | Input 1 Name [HDMI 1] |
| | 12 | Input 2 Name [HDMI 2] |
| | 13 | Input 3 Name [HDMI 3] |
| | 14 | Input 4 Name [HDMI 4] |
| | 15 | Input 5 Name [HDMI 5] |
| | 16 | Input 6 Name [PC] |
| | 17 | Input 7 Name [Video 1] |
| | 18 | Input 8 Name [Video 2] |
| | 19 | Input 9 Name [Video 3] |
| | 20 | Input 10 Name [Component 1] |



## DEVJSON Commands

When using DEVJSON commands update the program index `devjson:{programIndex}` and `deviceKey` values to match the testing environment.

```json
devjson:1 {"deviceKey":"display-1", "methodName":"PowerOn", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"PowerOff", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"PowerToggle", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"PowerPoll", "params":[]}

Devjson:1 {"deviceKey":"display-1", "methodName":"ListRoutingInputPorts", "params": []}

devjson:1 {"deviceKey":"display-1", "methodName":"InputHdmi1", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputHdmi2", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputHdmi3", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputHdmi4", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputHdmi5", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputVideo1", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputVideo2", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputVideo3", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputComponent1", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputComponent2", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputComponent3", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputVga1", "params":[]}
devjson:1 {"deviceKey":"display-1", "methodName":"InputPoll", "params":[]}
```
Binary file added README.pdf
Binary file not shown.
2 changes: 2 additions & 0 deletions RestorePackages.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@Echo ON
nuget install .\packages.config -OutputDirectory .\packages -excludeVersion
26 changes: 26 additions & 0 deletions SonyBraviaEpi.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<!-- Update ID with a plugin ID representative of the plugin being built-->
<id>PepperDash.Essentials.Plugin.Sony.Bravia</id>
<version>1.0.0</version>
<!-- Update Title with the plugin name that users will see-->
<title>Sony Bravia</title>
<authors>PepperDash Technologies</authors>
<owners>pepperdash</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<!-- Update projectUrl with the actual URL of the plugin repo-->
<projectUrl>https://github.com/PepperDash/epi-display-sony-bravia</projectUrl>
<copyright>Copyright 2022</copyright>
<!-- Update description-->
<description>Sony Bravia</description>
<tags>crestron 3series 4series</tags>
<!-- Update repository url with the actual URL of the plugin repo-->
<repository type="git" url="https://github.com/PepperDash/epi-display-sony-bravia"/>
</metadata>
<files>
<file src="**" target="lib\net35"/>
<file src="**" target="lib\net47"/>
</files>
</package>
20 changes: 20 additions & 0 deletions SonyBraviaEpi.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonyBraviaEpi", "src\SonyBraviaEpi.csproj", "{FAE0A18D-DE0F-467B-9F7F-4EA6A9EA8B32}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FAE0A18D-DE0F-467B-9F7F-4EA6A9EA8B32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FAE0A18D-DE0F-467B-9F7F-4EA6A9EA8B32}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAE0A18D-DE0F-467B-9F7F-4EA6A9EA8B32}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FAE0A18D-DE0F-467B-9F7F-4EA6A9EA8B32}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Loading

0 comments on commit 25c4d6e

Please sign in to comment.