Make test patterns fire to all ports

This commit is contained in:
2021-12-09 16:01:36 -06:00
parent b33d00125b
commit 5b5742090d
+157 -92
View File
@@ -43,7 +43,14 @@ function GetProperties()
Type = 'enum', Type = 'enum',
Choices = { 'VX4S', 'VX4S_N', 'VX6S', 'PROHD', 'PROUHDJR', 'MCTRL4K' }, Choices = { 'VX4S', 'VX4S_N', 'VX6S', 'PROHD', 'PROUHDJR', 'MCTRL4K' },
Value = 'VX4S' Value = 'VX4S'
} },
{
Name = "Default Brightness",
Type = "integer",
Min = 0,
Max = 255,
Value = 128
},
} }
return props return props
end end
@@ -122,48 +129,48 @@ function GetControls(props)
-- Test Pattern Buttons -- Test Pattern Buttons
{ {
Name = "TEST1", Name = "TEST_RED",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST2", Name = "TEST_GREEN",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST3", Name = "TEST_BLUE",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST4", Name = "TEST_WHITE",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST5", Name = "TEST_HORIZ",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST6", Name = "TEST_VERT",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST7", Name = "TEST_DIAG",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST8", Name = "TEST_GRAY",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
{ {
Name = "TEST9", Name = "TEST_AGING",
ControlType = "Button", ControlType = "Button",
ButtonType = "Trigger" ButtonType = "Trigger"
}, },
@@ -387,7 +394,7 @@ function GetControlLayout(props)
} }
--First row of test buttons --First row of test buttons
controls['TEST1'] = { controls['TEST_RED'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[1] ~= nil and TestLabels[1] or "1" , Legend = TestLabels[1] ~= nil and TestLabels[1] or "1" ,
@@ -398,7 +405,7 @@ function GetControlLayout(props)
Size = TestButton.Size Size = TestButton.Size
} }
controls['TEST2'] = { controls['TEST_GREEN'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[2] ~= nil and TestLabels[2] or "2" , Legend = TestLabels[2] ~= nil and TestLabels[2] or "2" ,
@@ -409,7 +416,7 @@ function GetControlLayout(props)
Size = TestButton.Size Size = TestButton.Size
} }
controls['TEST3'] = { controls['TEST_BLUE'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[3] ~= nil and TestLabels[3] or "3" , Legend = TestLabels[3] ~= nil and TestLabels[3] or "3" ,
@@ -420,7 +427,7 @@ function GetControlLayout(props)
Size = TestButton.Size Size = TestButton.Size
} }
controls['TEST4'] = { controls['TEST_WHITE'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[4] ~= nil and TestLabels[4] or "4", Legend = TestLabels[4] ~= nil and TestLabels[4] or "4",
@@ -432,7 +439,7 @@ function GetControlLayout(props)
} }
controls['TEST5'] = { controls['TEST_HORIZ'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[5] ~= nil and TestLabels[5] or "5", Legend = TestLabels[5] ~= nil and TestLabels[5] or "5",
@@ -506,7 +513,7 @@ function GetControlLayout(props)
} }
--Second row of test buttons --Second row of test buttons
controls['TEST6'] = { controls['TEST_VERT'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[6] ~= nil and TestLabels[6] or "6", Legend = TestLabels[6] ~= nil and TestLabels[6] or "6",
@@ -517,7 +524,7 @@ function GetControlLayout(props)
Size = TestButton.Size Size = TestButton.Size
} }
controls['TEST7'] = { controls['TEST_DIAG'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[7] ~= nil and TestLabels[7] or "7", Legend = TestLabels[7] ~= nil and TestLabels[7] or "7",
@@ -529,7 +536,7 @@ function GetControlLayout(props)
} }
controls['TEST8'] = { controls['TEST_GRAY'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[8] ~= nil and TestLabels[8] or "8", Legend = TestLabels[8] ~= nil and TestLabels[8] or "8",
@@ -540,7 +547,7 @@ function GetControlLayout(props)
Size = TestButton.Size Size = TestButton.Size
} }
controls['TEST9'] = { controls['TEST_AGING'] = {
Style = "Button", Style = "Button",
ButtonType = "Trigger", ButtonType = "Trigger",
Legend = TestLabels[9] ~= nil and TestLabels[9] or "9", Legend = TestLabels[9] ~= nil and TestLabels[9] or "9",
@@ -564,8 +571,11 @@ function GetControlLayout(props)
return controls, graphics return controls, graphics
end end
if (Controls) then if (Controls) then
local NovaStar = { local NovaStar = {
IP = '',
socket = TcpSocket.New(), socket = TcpSocket.New(),
setStatus = function (value, msg) setStatus = function (value, msg)
-- 0 = OK -- 0 = OK
@@ -578,79 +588,122 @@ if (Controls) then
Controls['Status'].Value = value; Controls['Status'].Value = value;
Controls['Status'].String = msg; Controls['Status'].String = msg;
end, end,
Commands = { Commands = {
Preamble = {0x55, 0xAA}, Preamble = {0x55, 0xAA},
Connect = {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x57,0x56}, Connect = {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00},
Brightness = {0x00,0x00,0xFE,0xFF,0x01,0xFF,0xFF,0xFF,0x01,0x00,0x01,0x00,0x00,0x02,0x01,0x00}, Brightness = {0x00,0x00,0xFE,0xFF,0x01,0xFF,0xFF,0xFF,0x01,0x00,0x01,0x00,0x00,0x02,0x01,0x00},
TestPatterns = { TestPatterns = {
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x02,0x43,0x59}, --Red RED = {
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x03,0xDB,0x58}, --Green {0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x02},
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x04,0xDC,0x58}, --Blue {0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x02},
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x05,0xDD,0x58}, --White {0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x02},
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x06,0xDE,0x58}, --Horizontal {0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x02},
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x07,0xDF,0x58}, --Vertical },
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x08,0xE0,0x58}, --Diagaonal GREEN = {
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x09,0xE1,0x58}, --Grayscale {0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x03},
{0x00,0x80,0xFE,0x00,0x01,0x00,0xFF,0xFF,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x0A,0xE2,0x58} --Aging-All {0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x03},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x03},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x03},
},
BLUE = {
{0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x04},
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x04},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x04},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x04},
},
WHITE = {
{0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x05},
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x05},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x05},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x05},
},
HORIZ = {
{0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x06},
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x06},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x06},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x06},
},
VERT = {
{0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x07},
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x07},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x07},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x07},
},
DIAG = {
{0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x08},
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x08},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x08},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x08},
},
GRAY = {
{0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x09},
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x09},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x09},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x09},
},
AGING = {
{0x00,0xe7,0xfe,0x00,0x01,0x00,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x0A},
{0x00,0xe8,0xfe,0x00,0x01,0x01,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x0A},
{0x00,0xe9,0xfe,0x00,0x01,0x02,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x0A},
{0x00,0xea,0xfe,0x00,0x01,0x03,0xff,0xff,0x01,0x00,0x01,0x01,0x00,0x02,0x01,0x00,0x0A},
}
}, },
DisplayNormal = { 0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x20,0x02,0x01,0x00,0x00,0xC7,0x56 }, DisplayNormal = { 0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x20,0x02,0x01,0x00,0x00 },
DisplayNormalAlt = { 0x00,0x38,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x13,0x01,0x00,0x03,0xA7,0x56 }, DisplayNormalAlt = { 0x00,0x38,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x13,0x01,0x00,0x03 },
Inputs = { Inputs = {
VX4S = { VX4S = {
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x10,0xB4,0x56}, --DVI {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x10}, --DVI
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0xA0,0x44,0x57}, --HDMI {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0xA0}, --HDMI
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x01,0xA5,0x56}, --VGA1 {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x01}, --VGA1
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x02,0xA6,0x56}, --VGA2 {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x02}, --VGA2
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x71,0x15,0x57}, --CVBS1 {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x71}, --CVBS1
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x72,0x16,0x57}, --CVBS2 {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x72}, --CVBS2
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x40,0xE4,0x56}, --SDI {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x40}, --SDI
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x90,0x34,0x57}, --DP {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x90}, --DP
{}, {},
{}, {},
}, },
VX4S_N = { VX4S_N = {
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0xA0,0x44,0x57}, --HDMI {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0xA0}, --HDMI
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x10,0xB4,0x56}, --DVI {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x10}, --DVI
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x01,0xA5,0x56}, --VGA {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x01}, --VGA
{}, {},
{}, {},
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x71,0x15,0x57}, --CVBS {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x71}, --CVBS
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x90,0x34,0x57}, --DP {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x90}, --DP
{0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x40,0xE4,0x56}, --SDI {0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x2D,0x00,0x20,0x02,0x01,0x00,0x40}, --SDI
{}, {},
{}, {},
}, },
VX6S = { VX6S = {
{0x00,0x88,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x00,0x00,0x11,0x17,0x57}, --HDMI1 {0x00,0x88,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x00,0x00,0x11}, --HDMI1
{0x00,0xA8,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x01,0x00,0x12,0x39,0x57}, --HDMI2 {0x00,0xA8,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x01,0x00,0x12}, --HDMI2
{0x00,0xC4,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x02,0x00,0x31,0x75,0x57}, --SDI1 {0x00,0xC4,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x02,0x00,0x31}, --SDI1
{0x00,0xD4,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x03,0x00,0x32,0x87,0x57}, --SDI2 {0x00,0xD4,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x03,0x00,0x32}, --SDI2
{0x00,0xD6,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x04,0x00,0x01,0x59,0x57}, --DVI1 {0x00,0xD6,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x04,0x00,0x01}, --DVI1
{0x00,0xD7,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x06,0x00,0x02,0x5D,0x57}, --DVI2 {0x00,0xD7,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x06,0x00,0x02}, --DVI2
{0x00,0xD9,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x07,0x00,0xA0,0xFE,0x57}, --USB {0x00,0xD9,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x02,0x13,0x03,0x00,0x07,0x00,0xA0}, --USB
{}, {},
{}, {},
{}, {},
}, },
PROHD = { PROHD = {
{0x00,0x2B,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1A,0xDE,0x56}, --SDI {0x00,0x2B,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1A}, --SDI
{0x00,0x34,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1C,0xE9,0x56}, --DVI {0x00,0x34,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1C}, --DVI
{0x00,0x3F,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1B,0xF3,0x56}, --HDMI {0x00,0x3F,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1B}, --HDMI
{0x00,0x51,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1E,0x08,0x57}, --DP {0x00,0x51,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1E}, --DP
{0x00,0x48,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x17,0xF8,0x56}, --VGA {0x00,0x48,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x17}, --VGA
{0x00,0x5A,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x02,0xF5,0x56}, --CVBS {0x00,0x5A,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x02}, --CVBS
{}, {},
{}, {},
{}, {},
{}, {},
}, },
PROUHDJR = { PROUHDJR = {
{0x00,0x2B,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1A,0xDE,0x56}, --SDI {0x00,0x2B,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1A}, --SDI
{0x00,0x34,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1C,0xE9,0x56}, --DVI {0x00,0x34,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1C}, --DVI
{0x00,0x3F,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1B,0xF3,0x56}, --HDMI {0x00,0x3F,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1B}, --HDMI
{0x00,0x51,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1E,0x08,0x57}, --DP {0x00,0x51,0xFE,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x00,0x20,0x02,0x01,0x00,0x1E}, --DP
{}, {},
{}, {},
{}, {},
@@ -659,9 +712,9 @@ if (Controls) then
{}, {},
}, },
MCTRL4K = { MCTRL4K = {
{0x00,0x3E,0xFE,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x01,0x00,0x61,0x18,0x58}, --DVI {0x00,0x3E,0xFE,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x01,0x00,0x61}, --DVI
{0x00,0x8A,0xFE,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x01,0x00,0x05,0x08,0x58}, --HDMI {0x00,0x8A,0xFE,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x01,0x00,0x05}, --HDMI
{0x00,0x9D,0xFE,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x01,0x00,0x5F,0x75,0x58}, --DP {0x00,0x9D,0xFE,0xFF,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x01,0x00,0x5F}, --DP
{}, {},
{}, {},
{}, {},
@@ -675,11 +728,13 @@ if (Controls) then
}, },
Response = { Response = {
Connected = {0xAA,0x55,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x06,0x61,0xBE,0x56}, Connected = {0xAA,0x55,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x06,0x61,0xBE,0x56},
ConnectedAlt = {0xAA,0x55,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x2a,0x61,0xe2,0x56} ConnectedAlt = {0xAA,0x55,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x2a,0x61,0xE2,0x56}
}, },
} }
-- NovaStar.socket.ReadTimeout = 0.5 NovaStar.socket.ReadTimeout = 0
NovaStar.socket.WriteTimeout = 0
NovaStar.socket.ReconnectTimeout = 0
function computeChecksum(bytes) function computeChecksum(bytes)
local sum = 0 local sum = 0
@@ -704,15 +759,21 @@ if (Controls) then
return cmd return cmd
end end
function sendTestPattern(pattern)
for k,v in pairs(pattern) do
sendCommand(v)
end
end
function sendCommand(cmd) function sendCommand(cmd)
if NovaStar.socket.IsConnected then if NovaStar.socket.IsConnected then
print("Sending packet to connected NovaStar") print("Sending packet to connected NovaStar")
else else
print("Following would have been sent if NovaStar was connected") print("Disconnected for some reason?")
end; end;
print(hex_dump(getCmdString(cmd))) print(hex_dump(getCmdString(NovaStar.Commands.Preamble) .. getCmdString(cmd) .. getCmdString(computeChecksum(cmd))))
if NovaStar.socket.IsConnected then if NovaStar.socket.IsConnected then
NovaStar.socket:Write(getCmdString(NovaStar.Commands.Preamble) .. getCmdString(cmd)) NovaStar.socket:Write(getCmdString(NovaStar.Commands.Preamble) .. getCmdString(cmd) .. getCmdString(computeChecksum(cmd)))
end end
end end
@@ -724,13 +785,6 @@ if (Controls) then
end end
end end
function sendKeepAlive(timer)
print("Sending Keep Alive")
sendCommand(NovaStar.Commands.Connect)
end
function hex_dump (str) function hex_dump (str)
local len = string.len( str ) local len = string.len( str )
local dump = "" local dump = ""
@@ -755,18 +809,13 @@ if (Controls) then
return dump .. hex .. string.rep( " ", 8 - len % 8 ) .. asc return dump .. hex .. string.rep( " ", 8 - len % 8 ) .. asc
end end
keepAliveTimer = Timer.New()
keepAliveTimer.EventHandler = sendKeepAlive
NovaStar.socket.Connected = function() NovaStar.socket.Connected = function()
print("TCP Connection Established to NovaStar @ " .. Properties['IP Address'].Value) print("TCP Connection Established to NovaStar @ " .. Properties['IP Address'].Value)
sendCommand(NovaStar.Commands.Connect) sendCommand(NovaStar.Commands.Connect)
keepAliveTimer:Start(2)
end end
NovaStar.socket.Reconnect = function() NovaStar.socket.Reconnect = function()
print("TCP Socket Reconnecting?")
NovaStar.setStatus(5,"Attempting to reconnect") NovaStar.setStatus(5,"Attempting to reconnect")
end end
@@ -774,30 +823,40 @@ if (Controls) then
print("Reading " .. NovaStar.socket.BufferLength .. " Bytes") print("Reading " .. NovaStar.socket.BufferLength .. " Bytes")
local data = NovaStar.socket:Read(NovaStar.socket.BufferLength); local data = NovaStar.socket:Read(NovaStar.socket.BufferLength);
print(hex_dump(data)) print(hex_dump(data))
if data == getCmdString(NovaStar.Response.Connected) then if data == getCmdString(NovaStar.Response.Connected) then
print("Successful Connection Response Received") print("Successful Connection Response Received")
NovaStar.setStatus(0,"Connected - " .. Properties['IP Address'].Value) NovaStar.setStatus(0,"Connected - " .. Properties['IP Address'].Value)
if(Properties['Default Brightness'].Value ~= '' and Controls['Brightness'].Value == Properties['Default Brightness'].Value ) then
print('Sending default brightness value of ' .. Properties['Default Brightness'].Value)
Controls['Brightness'].Value = Properties['Default Brightness'].Value
sendBrightness(Properties['Default Brightness'].Value)
end;
elseif data == getCmdString(NovaStar.Response.ConnectedAlt) then elseif data == getCmdString(NovaStar.Response.ConnectedAlt) then
print("Successful Connection Response Received") print("Successful Connection Response Received")
NovaStar.setStatus(0,"Connected - " .. Properties['IP Address'].Value) NovaStar.setStatus(0,"Connected - " .. Properties['IP Address'].Value)
if(Properties['Default Brightness'].Value ~= '' and Controls['Brightness'].Value == Properties['Default Brightness'].Value ) then
print('Sending default brightness value of ' .. Properties['Default Brightness'].Value)
Controls['Brightness'].Value = Properties['Default Brightness'].Value
sendBrightness(Properties['Default Brightness'].Value)
end;
end end
end end
NovaStar.socket.Closed = function() NovaStar.socket.Closed = function()
print("TCP Socket Closed?")
NovaStar.setStatus(2,"Connection closed by NovaStar") NovaStar.setStatus(2,"Connection closed by NovaStar")
keepAliveTimer:Stop()
end end
NovaStar.socket.Error = function(sock, err) NovaStar.socket.Error = function(sock, err)
print("TCP Socket Error: ", err) print("TCP Socket Error: ", err)
NovaStar.setStatus(2,"Communication error with NovaStar") NovaStar.setStatus(2,"Communication error with NovaStar")
keepAliveTimer:Stop() NovaStar.socket:Connect(NovaStar.IP, 5200);
end end
NovaStar.socket.Timeout = function(sock, err) NovaStar.socket.Timeout = function(sock, err)
print("TCP Socket Timeout" )
NovaStar.setStatus(2,"Timeout in connection to NovaStar") NovaStar.setStatus(2,"Timeout in connection to NovaStar")
keepAliveTimer:Stop() NovaStar.socket:Connect(NovaStar.IP, 5200);
end end
if Properties['Model'].Value ~= '' then if Properties['Model'].Value ~= '' then
@@ -824,8 +883,8 @@ if (Controls) then
end end
for k,v in pairs(NovaStar.Commands.TestPatterns) do for k,v in pairs(NovaStar.Commands.TestPatterns) do
Controls['TEST'..k].EventHandler = function() Controls['TEST_'..k].EventHandler = function()
sendCommand(v) sendTestPattern(v)
end end
end end
end end
@@ -836,8 +895,9 @@ if (Controls) then
end end
if(Properties['IP Address'].Value ~= '') then if(Properties['IP Address'].Value ~= '') then
NovaStar.IP = Properties['IP Address'].Value
NovaStar.setStatus(5, 'Connecting to NovaStar'); NovaStar.setStatus(5, 'Connecting to NovaStar');
NovaStar.socket:Connect(Properties['IP Address'].Value, 5200); NovaStar.socket:Connect(NovaStar.IP, 5200);
else else
NovaStar.setStatus(3, '\nPlease set IP address.'); NovaStar.setStatus(3, '\nPlease set IP address.');
Controls['IN1'].IsDisabled = true; Controls['IN1'].IsDisabled = true;
@@ -853,4 +913,9 @@ if (Controls) then
Controls['Brightness'].IsDisabled = true; Controls['Brightness'].IsDisabled = true;
end; end;
if(Properties['Default Brightness'].Value ~= '') then
Controls['Brightness'].Value = Properties['Default Brightness'].Value
sendBrightness(Properties['Default Brightness'].Value)
end;
end end