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:

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:

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:

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 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:

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:

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:

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 ]