Hi Leute,

hab mal wieder was zusammengeschustert und wollte euch mal fragen ob man das so gut gehn lassen kann oder ob ich da was verbessern kann.
Es soll so eine Art Telegramm für die RS232 werden, ich möchte es dazu verwenden, um Daten von meinem Rechner zum Bot zuschicken und umgekehrt. ich hoffe ich habs gut genug beschrieben
Hier mal der Code

Code:
'
'Befehle über RS232 / RS485
'Erstellt 10.04.2008 By Kalle
'
'Befehlszusammensetzung:
'  se06255xxx
'  ^ ^ ^  ^
'  | | |  |
'  | | |  Checksumme
'  | | Aktion z.B bei Servos Position (hier 255)
'  | Bei mehreren Geräten gleichen Typs z.B se06... für Servo 6
'  Belehlstyp z.B. se für Servo

$regfile = "m32def.dat"
$crystal = 16000000


Declare Sub Notaus()

Enable Interrupts



'*** Variablendeklaration ***
Dim Befehl As String * 10
Dim Befehllaenge As Byte
Dim Typ As String * 2
Dim Nummer As String * 2
Dim Aktion As String * 3
Dim Fehler As String * 10
Dim Checksumme As String * 3


Dim Nummerbyte As Byte
Dim Kanal(16) As Byte
Dim Aktionbyte(4) As Byte

Dim Fehlerlaenge As Byte
Dim Adrbyte As Byte
Dim Varcrc As Byte
Dim Checkbyte As Byte

'*** Hauptprogramm ***

Do

   Input Befehl

   Varcrc = Crc8(befehl , 7)                                'Checksumme berechnen
   Checksumme = Right(befehl , 3)                           'Checksumme aus Zeichenkette auslesen
   Checkbyte = Val(checksumme)
   If Varcrc = Checkbyte Then                               'Wenn Checksummen gleich ...
      Befehllaenge = Len(befehl)
      If Befehllaenge > 0 Then
         Gosub Befehlserkennung                             '... Zeichenkette auswerten
      End If
   Else
      Fehler = "ERRChec"
      Call Notaus()
   End If

   Fehlerlaenge = Len(fehler)
   If Fehlerlaenge > 0 Then
      Print Fehler
      Fehler = ""
   End If
Loop




'*** Unterprogramme ***

Sub Notaus()
'Befehle für NotAus hier einfügen
End Sub


'*** Zeichenkette asuwerten ***

Befehlserkennung:

   Typ = Left(befehl , 2)                                   'sucht 1. und 2. Zeichen von links (Typ)
   Nummer = Mid(befehl , 3 , 2)                             'sucht 3. und 4. Zeichen von links (Nummer)
   Aktion = Mid(befehl , 5 , 3)                             'sucht 5., 6. und 7. Zeichen Zeichen (Aktion)
   If Befehllaenge <> 10 Then Fehler = "ERRLang"

Return

'*** Aktion Ausführen ***

Ausfuehrung:

Return

Freue mich schon auf Kritik

Gruß Kalle