Digging through the code to find what is needed

The window we’re looking for in code… the original software wasn’t quite so well translated, but the translation file was easy to update.

When setting up these particular monitors, the first has direct Ethernet control- the rest link through with RS232 (serial) connection.

Each individual monitor takes an identical video input, and then displays only the part of the video image relevant to where it is on the wall- in this way, one video signal can be spanned across multiple monitors.

An example of a 4x4 Video Wall setup taken from Google Image Search.

Initially, none of the panels knows where it is located on the wall, and therefore they don’t know which part of the image they are supposed to display.

The software has a “Set ID” function that, according to the manual, takes a four-digit temporary code displayed on the screen and allows you to use that to tell the monitors where they are physically positioned in that grid.

The software splits the four-digit code on the TV in to two parts (Code1 and Code2), and then asks you for an LcdId- which is a two digit number consisting of the column followed by the row that you want to move that display to.

The code for this popup is found under EditLCDViewModel

This code sets up a six-byte array with some values, and then runs it through a SendMsg method which eventually send the command to the monitor.

Initially the byte array looks like:

213, byte.MaxValue, 0, 0, 0, 170

byte.MaxValue is always 255, so it can be written as:

215, 255, 0, 0, 0, 170

The code then proceeds to update the three zeros with the contents of Code1, Code2 and LcdId such that you get:

215, 255, Code1, Code2, LcdId, 170

So for example, if the screen is displaying code 1234, and you want it to be in column 2, row 5, you should send:

215, 255, 12, 34, 25, 170

So let’s test that out in a small program to check that it works!