AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Comport und LED Lauflicht

Ein Thema von Pumba · begonnen am 23. Apr 2008 · letzter Beitrag vom 28. Apr 2008
Antwort Antwort
Seite 2 von 2     12   
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#11

Re: Comport und LED Lauflicht

  Alt 27. Apr 2008, 11:07
Hier nochmal:

Delphi-Quellcode:
Const
   LedHeader = '$CST-ES';
   Address = ?; '? = Integerwert
Version = ?;
'? = Integerwert
   SignW = ?; '? = Integerwert
SignH = ?;
'? = Integerwert
   SignC = ?; '? = Integerwert
Reserved :=
'00000';

function SchnuerePaket(Sendestring: String): String;
var
Laenge: Integer;
Highnibbel, Lownibbel: Byte;
HighAddress, LowAddress: Byte;
HighSignW, LowSignW: Byte;
Checksumme: Integer;
Check : String;
iIndex := Integer;
begin
Sendestring := chr($1) + chr($1) + chr($1) + chr($EF) + chr($A0) + chr($EF) + chr($B0) + Sendestring + chr($FF) + chr($FF);

Laenge := 2 + 1 + 2 + 1 + 1 + 5 + Length(Sendestring);

Highnibbel:= Laenge div 256;
Lownibbel:= Laenge mod 256;
HighAddress:= Address div 256;
LownAddress:= Address mod 256;
HighSignW:= SignW div 256;
LownSignW:= SignW mod 256;

Check := Chr(HighAddress) + Chr(LowAddress) + Chr(Version)
+ Chr(HighSignW) + Chr(LowSignW) + Chr(SignH) + Chr(SignC) + Reserved + Sendestring;
for iIndex := 1 to Length(Check) do
begin
Checksumme := Ord(MidStr(Check, iIndex ,1));
if Checksumme >= 256 then Checksumme := Checksumme - 256;
end;

result := LedHeader + Chr(Highnibbel) + Chr(Lownibbel) + Check + Chr(Checksumme);
end;

procedure Senden;
begin
ApdComPort1.PutString(SchnuerePacket(
'Hallo'));
end;
Wal
  Mit Zitat antworten Zitat
Pumba

Registriert seit: 28. Jun 2004
32 Beiträge
 
Delphi 2005 Enterprise
 
#12

Re: Comport und LED Lauflicht

  Alt 28. Apr 2008, 07:46
Hallo Wal

bekomme bei
 Checksumme := Ord(MidStr(Check, iIndex ,1)); die fehlermeldung: [DCC Fehler] Unit2.pas(63): E2008 Inkompatible Typen

LG Pumba
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Comport und LED Lauflicht

  Alt 28. Apr 2008, 08:26
Moin,

MidStr() würde ich nur dann verwenden, wenn ich mehr als ein einzelnes Zeichen abgreifen möchte. Bei einem einzelnen Zeichen kann ich den String wie ein Character Array benutzen. Muss die CheckSumme nicht vorher initialisiert werden?

Delphi-Quellcode:
begin
  // ...
    CheckSumme := 0;
    for iIndex := 1 to Length(Check) do
      Checksumme := (CheckSumme + Ord(Check[iIndex])) mod 256;
Freundliche Grüße
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#14

Re: Comport und LED Lauflicht

  Alt 28. Apr 2008, 15:11
Zitat von Pumba:
Hallo Wal

bekomme bei
 Checksumme := Ord(MidStr(Check, iIndex ,1)); die fehlermeldung: [DCC Fehler] Unit2.pas(63): E2008 Inkompatible Typen

LG Pumba
Hi Pumba,
wie gesagt habe es aus dem Kopf mal schnell gepostet.
Es ging mir aber auch nicht darum eine fertige Lösung bereitzustellen, sondern dir einen Ansatz zu geben wie es funktionieren könnte.
Die Zeile oben soll nur ein Char in den ASCII-Wert wandeln, das ein String mit einem Buchstaben jetzt kein Char ist, habe ich in der Eile nicht bedacht.
Evtl. stimmt die Zeile von Marabu ?
Gehe den Code Zeile für Zeile durch und finde heraus was er bezwegt, das hat hoffentlich ein Lerneffekt.
Als Hilfe das Protokoll zur Hand nehmen.
Die Zeilen sind auch so geproggt, damit es offensichtlich ist was sie bewirken. Das Ganze geht viel einfacher zu machen.

Wal

P.S. Progge auch erst seit kurzem mit Delphi, also bitte Fehler ignorieren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz