Einzelnen Beitrag anzeigen

Wal

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

Re: Comport und LED Lauflicht

  Alt 27. Apr 2008, 10:47
Zitat von Pumba:
Hallo,

Habe ein problem einen string auf ein LED Display auszugeben, benutze die Async Pro komponenten
das senden über den comport ist nicht das problem sondern wie spreche ich so in Display an
mit diesen code wird ein text gesendet
Delphi-Quellcode:
procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var i : WORD;
    c: char;
begin
for i := 1 to count do
 begin
   c := ApdComPort1.GetChar;
   Memo1.Lines.Add('=> '+c);
   if c = #7 then MessageBeep(0)
     else if c in [#32..#126] then
      begin
       Buffer := Buffer + c;
      end;
 end;
end;
Das Protokol für das Display befindet sich im Anhang
Ich bekomme nicht einmal einen refresh auf das Display,
könntet ihr mir bitte weiterhelfen

vielen dank im vorraus
Pumba
Entweder steh ich auf dem Schlauch oder...

Mit diesem Code empfängst du Daten vom Comport.
Habe hier Code um ein Radio anzusteuern zum vergleichen:

Sendeprocedure
Delphi-Quellcode:
procedure Datenausgeben(Byte0: Byte; Byte1: Byte; Byte2: Byte; Byte3: Byte; Byte4: Byte; Byte5: Byte; Byte6: Byte; Byte7: Byte);
var
  Pruefsumme: Integer;
begin
  if RadioOn then
  begin
    Pruefsumme:= Byte0;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Pruefsumme:= Pruefsumme + Byte1;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Pruefsumme:= Pruefsumme + Byte2;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Pruefsumme:= Pruefsumme + Byte3;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Pruefsumme:= Pruefsumme + Byte4;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Pruefsumme:= Pruefsumme + Byte5;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Pruefsumme:= Pruefsumme + Byte6;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Pruefsumme:= Pruefsumme + Byte7;
    If Pruefsumme >= 256 Then Pruefsumme:= Pruefsumme - 256;

    Form1.RadioComPort.PutString(chr(Byte0)+ chr(Byte1)+chr(Byte2)+chr(Byte3)+chr(Byte4)+chr(Byte5)+chr(Byte6)+chr(Pruefsumme));
  end;
end;
Aufruf:
Delphi-Quellcode:
if (RadioDatenArray[16] and 32) = 32 then
    begin
      RadioDatenArray[16] := RadioDatenArray[16] and $DF; // bit wieder zurueck setzen
      Datenausgeben($84, 3, $FA, 1, 0, 0, 0, 0);
      // neue Audiodaten abfragen
      goto ende;
    end;

    if (RadioDatenArray[16] and 1) = 1 then
    begin
      RadioDatenArray[16] := RadioDatenArray[16] and $FE;
      Datenausgeben($84, 3, $F0, 1, 0, 0, 0, 0);
      // neuen Sendername abfragen
      goto ende;
    end;

    if (RadioDatenArray[16] and 2) = 2 then
    begin
      RadioDatenArray[16] := RadioDatenArray[16] and $FD;
      Datenausgeben($84, 3, $F0, 2, 0, 0, 0, 0);
      // neuen Sender Text abfragen
      goto ende;
    end;

    if (RadioDatenArray[16] and 4) = 4 then
    begin
      RadioDatenArray[16] := RadioDatenArray[16] and $FB;
      Datenausgeben($84, 3, $F0, 7, 0, 0, 0, 0);
      // neuen Sendername tmc abfragen
      goto ende;
    end;
Wal
  Mit Zitat antworten Zitat