Stap 16: derde partij Interface (TPI) Programmer's Document
De derde partij Interface (TPI) is een set van commando's, reacties en foutcodes laat zien dat third-party applicaties aan interface met de EnvisaLink 3 in een TCP/IP verbinding. Ik vond dit document erg verwarrend. Ik hoop dat deze uitleg helpt verklaren van het document een beetje beter.
In het algemeen, zijn alle TPI opdrachten, reacties en foutcodes drie cijfers:
- Opdrachten zijn groter dan of gelijk aan 500
- Reacties zijn minder dan of gelijk aan 200
- Foutcodes zijn 000 à 027, maar reacties zijn ook in dit bereik
Gegevens worden toegevoegd aan het einde van een opdracht of reactie. Bijvoorbeeld, kan een login commando worden:
- 005pswdCS\n\r
waar,
- Pswd = gegevens, in dit geval, uw wachtwoord is
Het volgende is vereist:
- CS = controlesom
- \n = newline karakter
- \r = return-teken
Op het web vond ik veel implementaties voor de berekening van de controlesom. De controlesom is vereist, en vele implementaties werkte niet. Ik ben niet zeker waarom zo velen werkte niet voor me. Het kan zijn slechte code kan, of het verschillende versies van de Raad van bestuur of firmware versies uitgevoerd op het bord. Mijn controlesom code werkt voor mijn bord en firmware.
De EnvisaLink fungeert als een server voor een TCP-verbinding naar een clienttoepassing. De Client moet alleen worden uitgevoerd op een beveiligde server, die met de EnvisaLink-3 communiceren kan. Van de Client-server op uw particuliere netwerk moet, maar mag niet zijn geopend met internet. Een zelfondertekend cert is vereist (zie mijn andere instructable voor een Garage deuropener).
De EnvisaLink luistert op poort 4025 en accepteert alleen een clientverbinding. Volgende verbindingen zal worden ontzegd. De EnvisaLink zal de verbinding verbroken als de client zijn kant sluit.
Om een verbinding te maken:
- Client wordt een TCP-sessie gestart door de oprichting van een TCP-socket.
- Client stuurt een login commando [005]
- EnvisaLink reageert met één of meerdere [505]
- Als [505] commando's gegevens een 3 is, vervolgens binnen 10 seconden reageren met een login commando [005]
- Als [505] gegevens bevat een 1, dan is inloggen succesvol
Van de opdracht van de login gegevens is een wachtwoord maximaal zes tekens in lengte, die hetzelfde wachtwoord is inloggen op de EnvisaLink van lokale web pagina.
Zie 505 opdracht beschrijving in de handleiding van de TPI voor een beschrijving van alle gegevens.
Nadat het wachtwoord is geaccepteerd, wordt de sessie is gemaakt en zal doorgaan tot de TCP-verbinding wordt verbroken.