Stage Lighting and Laser Control Protocol

Írta: Fodor Attila - Szteradián.hu

Bevezető

Terveztem egy protokollkészletet színpadtechnikai fényvezérlésre. A tervezésekor a főbb szempontok közé a könnyű használhatóság, a kisméretű adatforgalom tartozott. Kizárólag LAN felhasználásra. Támogatni fogja az ILDA lézerekhez használt IDTF formátumot. Már most támogatja a DMX-256, DMX-512, DMX-1024, DMX-2048 adatcsomagokat, továbbá terveztem még RGBWAU LED szalagok színezésére és villogtatására alkalmas csomagot is.

A fejlesztésről TDK dolgozat is készült, mely hamarosan feltöltésre kerül a weboldalra.

A pályamunka az Országos Tudományos Diákköri Konferencián (OTDK) III. helyezést ért el.

Az előadás online zajlott a COVID-19 járvány miatt, ezért a gyakorlati bemutatót csak egy előre összevágott videó formájában tudtam megtartani, melyre mindössze 3 perc állt rendelkezésre, ezért az anyag kissé sűrített, hadarós lett annak érdekében, hogy minél több irányból bemutatható legyen ezen rövid idő alatt. Megtekinthető az alábbi videón:

GitHub repo

https://github.com/SLLCP/SLLCP

Csomagtípusok

SLLCP.TestMsg
SllcpOpTestMsg = 0x00
SLLCP.Restart
SllcpOpRestart = 0x01
SLLCP.Shutdown
SllcpOpShutdown = 0x02
SLLCP.Disconnect
SllcpOpDisconn = 0x03
SLLCP.Poll
SllcpOpPoll = 0x10
SLLCP.PollReply
SllcpOpPollReply = 0x11
SLLCP.PollResults
SllcpOpPollResults = 0x12
SLLCP.OutLaser
SllcpOpOutLaser = 0x21
SLLCP.OutClose
SllcpOpOutClose = 0x20
SLLCP.OutStrip
SllcpOpOutStrip = 0x22
SLLCP.ProjectedSurface
SllcpOpProjectedSurface = 0x23
SLLCP.OutAck
SllcpOpOutAck = 0x2f
SLLCP.GetIpConfiguration
SllcpOpGetIpConf = 0x30
SLLCP.GetAccessPointList
SllcpOpGetApList = 0x31
SLLCP.SetMode
SllcpOpSetMode = 0x40
SLLCP.SetIpAddress
SllcpOpSetIpAdd = 0x41
SLLCP.SetWiFiAccessPoint
SllcpOpSetWiFiAP = 0x42
SLLCP.SetAck
SllcpOpSetAck = 0x4f
SLLCP.AccessPointReply
SllcpOpAPReply = 0x52
SLLCP.OutDMX-256
SllcpOpOutDMX256 = 0xc0
SLLCP.OutDMX-512
SllcpOpOutDMX512 = 0xd0
SLLCP.OutDMX-1024
SllcpOpOutDMX1k = 0xe0
SLLCP.OutDMX-2048
SllcpOpOutDMX2k = 0xf0
SLLCP.OptInEcho
SllcpOpOptInEcho = 0x04

Requests the receiver to return or not return the following packages.

SLLCP.OptOutEcho
SllcpOpOptOutEcho = 0x05
SLLCP.RequestForPollResults
SllcpOpReqPollRes = 0x13
SLLCP.RequestForCapabilities
SllcpOpReqCapab = 0x14
SLLCP.Capabilities
SllcpOpCapability = 0x15

Answer for ReqCapab with a list of the available OpCodes and the used protocol version and let's make the system chinese-proof: if the node doesn't answer, the server should mark the Node with UNRELIABLE tag.

SLLCP.RDMEncapsulation
SllcpOpRDM = 0xa0
SLLCP.OutDMXCompressedWithRun-LengthEncoding
SllcpOpOutDMXcRLE = 0xb0

DMX packet compressed with Run-length encoding for low-end hardware. Bits [3..0] are interface selectors.