GithubHelp home page GithubHelp logo

cjcox909 / epi-samsung-mdc-dispaly Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pepperdash/epi-samsung-mdc-dispaly

0.0 0.0 0.0 26.55 MB

Essentials Plugin for Samsung MDC Displays

C++ 0.87% C# 99.13%

epi-samsung-mdc-dispaly's Introduction

PepperDash Logo

Samsung MDC Display Plugin

This is a plugin repo for Samsung MDC displays and adds features needed that are not currently part of the Essentials Samsung MDC implementation. To use the plugin follow the steps below.

  1. Clone the repo
    • References are managed by nuget. To install the correct references, enter the command below: nuget install .\packages.config -ExcludeVersion -OutputDirectory .\packages
    • Check the slash direction: if installing from Git Bash, the slashes should be / instead of \
  2. Copy the *.cplz to th plugin folder created by Essentials
    • ex. \USER\program[X]\plugins*.cplz
  3. Update the Essentials configuration file to include the display objects and display bridge (see examples below)
    • The plugin "type" is set C# to "samsungmdcplugin"
  4. Load the Essentials configuration file to the program folder created by Essentials
    • ex. \USER\program[x]*configurationFile*.json)
  5. Restart Essentials to load the plugin

Device Specifc Information

This plugin was built using the Samsung SEC-VD-DSW Multiple Display Control document, Ver. 14.4, 2018-4-4.

RS232 Specification

Property Value
Baudrate 9600
Data Bits 8
Parity None
Stop Bits 1
Flow Control None

Network Specification

Property Value
Default IP 192.168.0.10
Port 1515

Example Configuration Object

Display Object using RS-232

{
	"key": "Display01",
	"uid": 1,
	"name": "Front Display",
	"type": "samsungmdcplugin",
	"group": "display",
	"properties": {
		"id": "01",
		"control": {
			"method": "com",
			"controlPortDevKey": "processor",
			"controlPortNumber": 1,
			"comParams": {
				"hardwareHandshake": "None",
				"parity": "None",
				"protocol": "RS232",
				"baudRate": 9600,
				"dataBits": 8,
				"softwareHandshake": "None",
				"stopBits": 1
			}
		},
		"pollIntervalMs": 4500,
		"pollLedTemps": false,
		"coolingTimeMs": 1500,
		"warmingTimeMs": 1500,
		"showVolumeControls": false,
		"volumeUpperLimit": 100,
		"volumeLowerLimit": 0,
		"friendlyNames": [
			{
				"inputKey": "hdmiIn1",
				"name": "HDMI 1"
			},
			{
				"inputKey": "hdmiIn2",
				"name": "HDMI 2"
			},
			{
				"inputKey": "hdmiIn3",
				"name": "HDMI 3"
			},
			{
				"inputKey": "hdmiIn4",
				"name": "HDMI 4"
			},
			{
				"inputKey": "displayPortIn1",
				"name": "Display Port 1"
			},
			{
				"inputKey": "displayPortIn2",
				"name": "Display Port 2"
			},
			{
				"inputKey": "dviIn",
				"name": "DVI"
			}
		]
	}
},

Display Object using TCP/IP

{
	"key": "Display01",
	"uid": 1,
	"name": "Front Display",
	"type": "samsungmdcplugin",
	"group": "display",
	"properties": {
		"id": "01",
		"control": {
			"method": "tcpIp",
			"tcpSshProperties": {
				"address": "10.0.0.200",
				"port": 1515,
				"username": "",
				"password": "",
				"autoReconnect": true,
				"autoReconnectIntervalMs": 10000
			}
		},
		"pollIntervalMs": 4500,
		"pollLedTemps": false,
		"coolingTimeMs": 1500,
		"warmingTimeMs": 1500,
		"showVolumeControls": false,
		"volumeUpperLimit": 100,
		"volumeLowerLimit": 0,
		"friendlyNames": [
			{
				"inputKey": "hdmiIn1",
				"name": "HDMI 1"
			},
			{
				"inputKey": "hdmiIn2",
				"name": "HDMI 2"
			},
			{
				"inputKey": "hdmiIn3",
				"name": "HDMI 3"
			},
			{
				"inputKey": "hdmiIn4",
				"name": "HDMI 4"
			},
			{
				"inputKey": "displayPortIn1",
				"name": "Display Port 1"
			},
			{
				"inputKey": "displayPortIn2",
				"name": "Display Port 2"
			},
			{
				"inputKey": "dviIn",
				"name": "DVI"
			}
		]
	}
},

Display Plugin Bridge Object

{
	"key": "eiscBridge-Displays",
	"uid": 4,
	"name": "eiscBridge Displays",
	"group": "api",
	"type": "eiscApi",
	"properties": {
		"control": {
			"method": "ipidTcp",
			"ipid": "B0",
			"tcpSshProperties": {
				"address": "127.0.0.2",
				"port": 0
			}
		},
		"devices": [
			{
				"deviceKey": "Display01",
				"joinStart": 1
			},
			{
				"deviceKey": "Display02",
				"joinStart": 51
			},
			{
				"deviceKey": "Display03",
				"joinStart": 101
			}
		]
	}
}

Bridge Join Map

  • Each display has 50 buttons available
  • The I/O number will depend on the joinStart defined in the configuration file
    • Add the defined joinStart to the I/O number if not starting at 1

Digitals

Input I/O Output
Power Off 1 Power Off Fb
Power On 2 Power On Fb
3 Is Two Display Fb
Volume Up 5
Volume Down 6
Volume Mute Toggle 7 Volume Mute On 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 [DisplayPort 1] 15 Input 5 Fb [DisplayPort 1]
Input 6 Select [DisplayPort 2] 16 Input 6 Fb [DisplayPort 2]
Input 7 Select [DVI 1] 17 Input 7 Fb [DVI 1]
Input 8 Select [FUTURE] 18 Input 8 Fb [FUTURE]
Input 9 Select [FUTURE] 19 Input 9 Fb [FUTURE]
Input 10 Select [FUTURE] 20 Input 10 Fb [FUTURE]
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
Volume Level Set 5 Volume Level Fb
Input Number Select [1-10] 11 Input Number Fb [1-10]
LED Temperature Celsius
LED Temperature Fahrenheit

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 [DisplayPort 1]
16 Input 6 Name [DisplayPort 2]
17 Input 7 Name [DVI 1]
18 Input 8 Name [FUTURE]
19 Input 9 Name [FUTURE]
20 Input 10 Name [FUTURE]

epi-samsung-mdc-dispaly's People

Contributors

andrew-welker avatar jkdevito avatar trevorpayne avatar ediablo80 avatar jtalborough avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.