[JAVA/Checksum] Versturen van data naar externe seriële hw

Pagina: 1
Acties:

  • Kokkers
  • Registratie: Oktober 2000
  • Laatst online: 24-05 13:23
Beste mensen,

Voor een projectje ben ik bezig met het schrijven van een programma in JAVA dat textberichten moet kunnen versturen naar een seriële poort. Achter deze seriële poort hangt een textdisplay (lichtkrant).

Ter illustratie:
Afbeeldingslocatie: http://www.bti.be/foto%27s/qlsi/Generale%20Bank.jpg

Bij het display is een applicatie geleverd waarmee texten en configuratie verstuurd kunnen worden. Nu wil ik dit dus vanuit mijn eigen applicatie laten doen.

Met behulp van het programma 'Advanced Serial Port monitor' luister ik COM1 af om te kijken wat de meegeleverde applicatie aan data naar de poort stuurt.

Gelukkig steekt dit vrij eenvoudig in elkaar. Er wordt een initialisatie string verstuurd en na een echo van het display wordt het betreffende bericht doorgestuurd.

Hieronder de data (HEX waarden, met als seperator een #) als ik 42 willekeurige karakters verstuur en 16 spaties:

Afbeeldingslocatie: http://www.conveledge.com/tmp/data1.jpg

De groene text bevat de 42 karakters, de gele text de 16 spaties.

Als ik vervolgens 42 keer het karakter 's' verstuur en 16 spaties ziet de data er als volgt uit:

Afbeeldingslocatie: http://www.conveledge.com/tmp/data2.jpg

Niets spannends behalve dat de rode karakters elke keer anders zijn afhankelijk van de verstuurde text.

Ik vermoed dat dit een checksum (byte?) is om de verzonden data te valideren.

Het lukt inmiddels om vanuit JAVA de data te versturen en dit weer te laten geven op het display aan de hand van afgeluisterde data.

Wil ik m'n eigen berichten gaan versturen dan zal ik dus vanuit JAVA het betreffende checksum karakter moeten berekenen.

Nu ben ik via google inmiddels aardig bijgelezen omtrent CRC-8, CRC-16, CRC-32 en dergelijken maar toch kom ik er maar niet uit.

Heeft iemand een idee welk type checksum dit is?
Heeft iemand tips om deze te berekenen vanuit JAVA?

[ Voor 3% gewijzigd door Kokkers op 28-05-2004 17:37 . Reden: JPG's gefixed ]


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ik moet je helaas teleurstellen, ik zie zo aan het uiterlijk niet welke checksum het is.

Is het misschien een idee om eens te kijken naar het apparaat dat je probeert aan te sturen en daarmee te zoeken op internet? Wie weet vindt je de specificaties wel en staat daar ook bij wat je op die plek moet neerzetten / hoe je het moet berekenen.

Tis maar een suggestie.

Succes!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Aangezien bij een textdisplay van dit type het niet van levensbelang is dat de data er absoluut correct op moet komen, denk ik eerder aan een simpele XOR oid.

WIe is de fabrikant van het display ?

[ Voor 12% gewijzigd door farlane op 28-05-2004 20:40 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 04:19
Als je het uit wil zoeken, moet je toch wat gestructureerder te werk gaan. De beschikbare informatie is wel erg beperkt. Moet je per se 42 karakters oversturen, of kunnen kortere strings ook? In dat geval zou ik beginnen met een lege string, en dan A, B, AA, AB, BA, enzovoorts proberen. Als 42 karakters moet doen, kun je beginnen bij 42 keer A, en dan kijken wat er gebeurt als je het eerste karakter 1 ophoogt, en wat als je het tweede karakter ophoogt, enzovoorts. Met een beetje mazzel is er dan wel een patroon te achterhalgen.