Grote lichtkrant: Difference between revisions
(Created page with " == Protocol == Alles is ontdekt door te observeren wat "WinSpec 5" via de seriele kabel stuurt en ontvangt. De informatie is daarom incompleet, en waarschijnlijk kloppen de be...") |
No edit summary |
||
Line 1: | Line 1: | ||
= Protocol = | |||
Alles is ontdekt door te observeren wat "WinSpec 5" via de seriele kabel stuurt en ontvangt. De informatie is daarom incompleet, en waarschijnlijk kloppen de beschrijvingen niet. In ieder geval is het onwaarschijnlijk dat de gebruikte terminologie overeenkomt met die van de fabrikant. | Alles is ontdekt door te observeren wat "WinSpec 5" via de seriele kabel stuurt en ontvangt. De informatie is daarom incompleet, en waarschijnlijk kloppen de beschrijvingen niet. In ieder geval is het onwaarschijnlijk dat de gebruikte terminologie overeenkomt met die van de fabrikant. | ||
Line 32: | Line 30: | ||
''Nog documenteren'' | ''Nog documenteren'' | ||
== Commando G (login) == | |||
De lichtkrant reageert pas op andere commando's na een login. Het standaardwachtwoord is leeg. | |||
{| | |||
! Aantal bytes !! Waarde !! Omschrijving | |||
|- | |||
| 8 || ascii || Wachtwoord, aangevuld met spaties (20h) | |||
|} | |||
== Commando P (enter programming mode) == | |||
Commando's A, B en C zijn alleen te gebruiken tussen P en H in. | |||
== Commando A (schedule) == | |||
Het apparaat gebruikt een cron-achtig schema. Dit is nog niet goed uitgezocht. | |||
{| | |||
! Aantal bytes !! Waarde !! Omschrijving | |||
|- | |||
| 2 || hex ascii || Programma (bijv. 01) | |||
|- | |||
| 8 || ascii || Naam van het programma, aangevuld met spaties. | |||
|- | |||
| 19 || 2ah 20h 2ah 20h 20h 20h 20h 20h 20h 20h 2ah 20h 20h 20h 20h 20h 20h 20h 30h || Cron-achtige definitie | |||
|} | |||
== Commando's C en B (set text) == | |||
Voor de eerste pagina wordt commando C gebruikt, voor alle opvolgende pagina's commando B. | |||
{| | |||
! Aantal bytes !! Waarde !! Omschrijving | |||
|- | |||
| 2 || hex ascii || Programma (bijv. 01) | |||
|- | |||
| 2 || hex ascii || Paginanummer; de eerste is 01. | |||
|- | |||
| 1 || decimal ascii 1-6 || Effect bij verschijnen | |||
|- | |||
| 1 || decimal ascii 1-6 || Effect bij verdwijnen | |||
|- | |||
| 2 || decimal ascii 01-99 || Aantal seconden | |||
|- | |||
| 282 || ascii || Tekst: steeds 6 regels van 45 tekens, elk voorafgegaan en gevolgd door een spatie (20h). Tussen de regels staat geen regeleinde. | |||
|} | |||
In de tekst kunnen de volgende speciale tekens worden gebruikt: | |||
{| | |||
! Teken !! Omschrijving | |||
|- | |||
| 5Fh (_) || Voorgaande teken dubbele breedte | |||
|- | |||
| B4h || Eerste cijfer van uurcomponent huidige tijd | |||
|- | |||
| B5h || Tweede cijfer van uurcomponent huidige tijd | |||
|- | |||
| B6h || Eerste cijfer van minuutcomponent huidige tijd | |||
|- | |||
| B7h || Tweede cijfer van minuutcomponent huidige tijd | |||
|- | |||
| B8h || Eerste cijfer van secondecomponent huidige tijd | |||
|- | |||
| B9h || Tweede cijfer van secondecomponent huidige tijd | |||
|- | |||
| BAh || Eerste cijfer van dagcomponent huidige datum | |||
|- | |||
| BBh || Tweede cijfer van dagcomponent huidige datum | |||
|- | |||
| BCh || Eerste cijfer van maandcomponent huidige datum | |||
|- | |||
| BDh || Tweede cijfer van maandcomponent huidige datum | |||
|- | |||
| BEh || ? | |||
|- | |||
| BFh || Eerste letter van maandcomponent huidige datum | |||
|- | |||
| C0h || Tweede letter van maandcomponent huidige datum | |||
|- | |||
| C1h || Derde letter van maandcomponent huidige datum | |||
|- | |||
| F6h || Dubbele punt, knipperend | |||
|} | |||
== Commando H (done programming) == | |||
Commando's A, B en C zijn alleen te gebruiken tussen P en H in. | |||
== Commando U (configure) == | |||
{| | |||
! Aantal bytes !! Waarde !! Omschrijving | |||
|- | |||
| 6 || SSMMHH dec ascii || Tijd, met minst significante cijfer eerst (17:50:01 wordt 100571) | |||
|- | |||
| 1 || 34h (4) || Betekenis onbekend; lijkt wel afhankelijk te zijn van datum | |||
|- | |||
| 4 || DDMM dec ascii || Datum, met minst significante cijfer eerst (2 januari wordt 1020) | |||
|- | |||
| 1 || 30h (0) of 31h (1) || Schrikkeljaaraanduiding, 0 is niet, 1 is wel | |||
|- | |||
| 2 || 33h 32h (32) || Onbekend | |||
|- | |||
| 8 || ascii || Nieuw wachtwoord, aangevuld met spaties | |||
|- | |||
| 20 || dec ascii? || "00000000000000003303", geen idee wat het betekent | |||
|- | |||
| 32 || hex ascii || Helderheid (voor egaal beeld, 32 dezelfde digits 0-F gebruiken) | |||
|- | |||
| 1 || 34h (4) || Onbekend | |||
|- | |||
| 25 || 3Fh, 25 maal || Onbekend | |||
|} | |||
== Commando I (info) == | |||
De lichtkrant geeft wat info over zichzelf. |
Revision as of 16:58, 13 January 2013
Protocol
Alles is ontdekt door te observeren wat "WinSpec 5" via de seriele kabel stuurt en ontvangt. De informatie is daarom incompleet, en waarschijnlijk kloppen de beschrijvingen niet. In ieder geval is het onwaarschijnlijk dat de gebruikte terminologie overeenkomt met die van de fabrikant.
De communicatie is eenvoudig: de computer stuurt een commando, de lichtkrant-controller geeft antwoord. De controllers hebben een adres (een nummer), en negeren commando's die voor andere adressen bedoeld zijn.
Per 6 regels is er een controller. Onze lichtkrant heeft 9 regels en dus 2 controllers. De tweede controller stuurt maar 3 regels aan.
Een veel gebruikte manier om waardes door te sturen is hex ascii, oftewel een geheel getal verstuurd als hexadecimaal getal, uitgedrukt in ASCII. De decimale waarde 10 is in A, wat in ascii 41h is. Als er 2 bytes nodig zijn, worden voorloopnullen gebruikt, ook weer in ascii: 30h 41h.
De structuur van een commando:
Aantal bytes | Waarde | Omschrijving |
---|---|---|
3 | 15h 15h 03h | Geen idee. Elk commando begint hiermee. |
2 | hex ascii | Adres |
2 | hex ascii | 255 - adres (e.g. 254 als adres = 1) |
3 | hex ascii | Lengte van commando (n) |
n | - | Commando: hoofdletter die het commando bepaalt, eventueel gevolgd door parameters. |
4 | hex ascii | CRC-CCITT (X-modem) van al het voorgaande, behalve de eerste drie bytes |
De structuur van het antwoord: Nog documenteren
Commando G (login)
De lichtkrant reageert pas op andere commando's na een login. Het standaardwachtwoord is leeg.
Aantal bytes | Waarde | Omschrijving |
---|---|---|
8 | ascii | Wachtwoord, aangevuld met spaties (20h) |
Commando P (enter programming mode)
Commando's A, B en C zijn alleen te gebruiken tussen P en H in.
Commando A (schedule)
Het apparaat gebruikt een cron-achtig schema. Dit is nog niet goed uitgezocht.
Aantal bytes | Waarde | Omschrijving |
---|---|---|
2 | hex ascii | Programma (bijv. 01) |
8 | ascii | Naam van het programma, aangevuld met spaties. |
19 | 2ah 20h 2ah 20h 20h 20h 20h 20h 20h 20h 2ah 20h 20h 20h 20h 20h 20h 20h 30h | Cron-achtige definitie |
Commando's C en B (set text)
Voor de eerste pagina wordt commando C gebruikt, voor alle opvolgende pagina's commando B.
Aantal bytes | Waarde | Omschrijving |
---|---|---|
2 | hex ascii | Programma (bijv. 01) |
2 | hex ascii | Paginanummer; de eerste is 01. |
1 | decimal ascii 1-6 | Effect bij verschijnen |
1 | decimal ascii 1-6 | Effect bij verdwijnen |
2 | decimal ascii 01-99 | Aantal seconden |
282 | ascii | Tekst: steeds 6 regels van 45 tekens, elk voorafgegaan en gevolgd door een spatie (20h). Tussen de regels staat geen regeleinde. |
In de tekst kunnen de volgende speciale tekens worden gebruikt:
Teken | Omschrijving |
---|---|
5Fh (_) | Voorgaande teken dubbele breedte |
B4h | Eerste cijfer van uurcomponent huidige tijd |
B5h | Tweede cijfer van uurcomponent huidige tijd |
B6h | Eerste cijfer van minuutcomponent huidige tijd |
B7h | Tweede cijfer van minuutcomponent huidige tijd |
B8h | Eerste cijfer van secondecomponent huidige tijd |
B9h | Tweede cijfer van secondecomponent huidige tijd |
BAh | Eerste cijfer van dagcomponent huidige datum |
BBh | Tweede cijfer van dagcomponent huidige datum |
BCh | Eerste cijfer van maandcomponent huidige datum |
BDh | Tweede cijfer van maandcomponent huidige datum |
BEh | ? |
BFh | Eerste letter van maandcomponent huidige datum |
C0h | Tweede letter van maandcomponent huidige datum |
C1h | Derde letter van maandcomponent huidige datum |
F6h | Dubbele punt, knipperend |
Commando H (done programming)
Commando's A, B en C zijn alleen te gebruiken tussen P en H in.
Commando U (configure)
Aantal bytes | Waarde | Omschrijving |
---|---|---|
6 | SSMMHH dec ascii | Tijd, met minst significante cijfer eerst (17:50:01 wordt 100571) |
1 | 34h (4) | Betekenis onbekend; lijkt wel afhankelijk te zijn van datum |
4 | DDMM dec ascii | Datum, met minst significante cijfer eerst (2 januari wordt 1020) |
1 | 30h (0) of 31h (1) | Schrikkeljaaraanduiding, 0 is niet, 1 is wel |
2 | 33h 32h (32) | Onbekend |
8 | ascii | Nieuw wachtwoord, aangevuld met spaties |
20 | dec ascii? | "00000000000000003303", geen idee wat het betekent |
32 | hex ascii | Helderheid (voor egaal beeld, 32 dezelfde digits 0-F gebruiken) |
1 | 34h (4) | Onbekend |
25 | 3Fh, 25 maal | Onbekend |
Commando I (info)
De lichtkrant geeft wat info over zichzelf.