Hilfe gesucht: JAVA zu BASCOM

OP #1428130
Hallo,
mein Problem ist, dass ein vorhandenes kurzes JAVA-Script in BASCOM 
umgesetzt werden soll.
Zur Erläuterung: Um auf der Empfangsseite ggf. entstandene 
Übertragungungsfehler feststellen zu können, werden via Funk übertragene 
ASCII-Strings mit einer Prüfsumme ( CRC ) ergänzt. Dazu ist ein 
Vergleich der Stringinhalte mit der Prüfsumme vorzunehmen. Nachdem eine 
dazu geeignete Routine nur in JAVA vorhanden ist, ich das Ganze aber in 
BASCOM-AVR realisieren möchte, suche ich nach einem freundlichen 
Menschen, der mich mangels JAVA-Kenntnissen bei der Umsetzung 
unterstützen kann.

Ein zu bearbeitender Musterstring sieht beispielsweise folgendermassen 
aus:

$$CRCCE3E,AE5PL-T>API282,DSTAR*:!3302.39N/09644.66W>/ <CR><LF>

Dabei ist "$$CRC" ein feststehender Header und "CE3E" die errechnete 
Prüfsumme in hexadezimalem Format.
Der zur Prüfsummenberechnung herangezogene Stringinhalt beginnt hinter 
dem folgenden Komma und schliesst die am Ende eingefügten Zeichen <CR> ( 
ASCII-Char.13 ) und <LF> ( ASCII-Char.10 ) mit ein.

Hier nun die an anderer Stelle zur Prüfsummenberechnung benutzte 
JAVA-Routine:

The CRC calculation is (Java):
'----------------------------------------------------------------------- 
--
public final static int calcCCITTCRC(byte[] buffer, int startpos, int 
length)
{
   int icomcrc = 0xffff;
   for (int j = startpos; j < startpos+length; j++)
     {
        int ch = buffer[j] & 0xff;
        for (int i = 0; i < 8; i++)
        {
          boolean xorflag = (((icomcrc ^ ch) & 0x01) == 0x01);
          icomcrc >>>= 1;
          if (xorflag)
             icomcrc ^= 0x8408;
             ch >>>= 1;
        }
     } return (~icomcrc) & 0xffff;
}
'----------------------------------------------------------------------- 
--

Wenn ich es richtig verstehe, dann trägt der zu verarbeitende 
Eingangsstring dabei den Namen: "icomcrc".

Über eine Unterstützung bei der Lösung meines Problems würde ich mich 
sehr freuen.

Klaus
Gast
>Wenn ich es richtig verstehe, dann trägt der zu verarbeitende
>Eingangsstring dabei den Namen: "icomcrc".

icomcrc ist ein internes Zwischenerebnis zu Berechnung der CRC.

"byte[] buffer" ist der Eingangsdatensatz,
"int startpos, int length" geben an, ab wo und für wieviele Bytes 
innerhalb des Eingangsdatensatzes die CRC berechnet werden soll.

Eine Erklärung der java-Operatoren gibt es z.B. hier:

http://www.programmersbase.net/Content/Java/Content/Tutorial/Java/Operator.htm

Oliver
Gast
>Wenn ich es richtig verstehe, dann trägt der zu verarbeitende
>Eingangsstring dabei den Namen: "icomcrc".

icomcrc ist ein internes Zwischenergebnis zu Berechnung der CRC.

"byte[] buffer" ist der Eingangsdatensatz,
"int startpos, int length" geben an, ab wo und für wieviele Bytes 
innerhalb des Eingangsdatensatzes die CRC berechnet werden soll.

Eine Erklärung der java-Operatoren gibt es z.B. hier:

http://www.programmersbase.net/Content/Java/Content/Tutorial/Java/Operator.htm

Oliver

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.