- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: Delphi Prob

  1. #1

    Frage Delphi Prob

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,
    ich hätte da ein problem mit delphi (borland d4)

    Ich möchte einen USB_IRTransceiver mit Delphi ansprechen um einen asuro fernzusteuern.
    Der Transceiver meldet sich als virtuelle ser.Schnittstelle (COM9) an.
    Das wär der Code:
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
    
    type
      TForm1 = class(TForm)
        GroupBox1: TGroupBox;
        Edit1: TEdit;
        ButOpenCOM: TButton;
        ButCloseCom: TButton;
        ButExit: TButton;
        Label1: TLabel;
        GroupBox2: TGroupBox;
        ButSend: TButton;
        procedure ButExitClick(Sender: TObject);
        procedure ButOpenCOMClick(Sender: TObject);
        procedure ButSendClick(Sender: TObject);
      private
        { Private-Deklarationen }
      public
        { Public-Deklarationen }
      end;
    
    var
      Form1: TForm1;
      Port: THandle;
    
    implementation
    
    {$R *.DFM}
    
    procedure TForm1.ButExitClick(Sender: TObject);
    begin
    CloseHandle(Port);
    Close;
    end;
    
    procedure TForm1.ButOpenCOMClick(Sender: TObject);
    begin
    Port := CreateFile(PChar('Edit1.Text'),GENERIC_WRITE,0,NIL,OPEN_EXISTING,0,0);
    end;
    
    procedure TForm1.ButSendClick(Sender: TObject);
    var
    befehl: Byte;
    Count: DWORD;
    
    begin
    befehl := 80;
    WriteFile(Port,befehl,1,Count,NIL);
    
    end;
    
    
    
    end.
    Das Problem: Der USB-IR-T reagiert nicht. MAn sieht weder die beim senden sonst flackernde gelbeLED noch (mit HandyCam) die IR_LED leuchten.
    Kann da jemand helfen?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Du musst die Parameter der seriellen Schnittstelle doch konfigurieren. Beim ASURO sind das 2400 Baud, 8 Bit, keine Parität, 1 Stoppbit (auch bekannt als 8N1). Ein Codebeispiel das ich auf die schnelle Gefunden habe: http://alexmogurenko.com/blog/progra...delphilazarus/

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    So?
    Code:
    procedure TForm1.ButConfigComClick(Sender: TObject);
    var
    DCB: TDCB;
    
    begin
    GetCommState(Port,DCB);
    DCB.BaudRate := 2400;
    DCB.ByteSize := 8;
    DCB.StopBits := ONESTOPBIT;
    DCB.Parity := NOPARITY;
    SetCommState(Port,DCB);
    end;
    vg malte

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Schaut plausibel aus. Ich habe aber schon Jahre nicht mehr mit Delphi gearbeitet und dabei noch nie eine seriellen Schnittstelle verwendet. Probiere das ganze doch Mal aus, kaputt gehen kann nichts dabei ...

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    Das ausprobieren hat ergeben: Will immer noch nicht. Normalerweise blinkt beim Senden eine gelbeLED und man sieht die IRLED mit der Handykammera leuchten.
    Hier keins von beidem.
    Kennt jemand einen anderen Weg die ser. anzusprechen als über CreateFile+Handle?
    vg malte

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.01.2009
    Alter
    33
    Beiträge
    104
    Ich habe bisher immer die TComPort Komponente verwendet. Zu finden z.B. hier: http://sourceforge.net/projects/comport/

    Ist wesentlich einfacher als über CreateFile, da man die Events nutzen kann um zum Beispiel auf eingehende Daten zu reagieren.
    Gruß
    Kevin

  7. #7
    Erfahrener Benutzer Begeisterter Techniker Avatar von Andre_S
    Registriert seit
    26.06.2005
    Beiträge
    360
    Hallo,

    ich schließe mich da Kevin an, habe diese Komponente, allerdings mit Delphi 7, viele Jahre genutzt.
    Und habe damit nie Probleme gehabt...


    Gruß andré

  8. #8
    Ich hab grad auf der Seite von arexx folgendes über das FlashTool (das wenn ich das richtig verstanden hab auch den Treiber für die virtuelle Schnittstelle beinhaltet) folgendes gefunden: Das neue ASURO Flash nutzt nicht mehr den VCP Treiber von FTDI, sondern die D2XX Version! Das bedeutet, dass Sie den USB IR Adapter nicht mehr wie einen normalen Comportanschluss benutzten können.
    Könnte es daran liegen das das mit dem öffnen via createfile so gar nicht klappt?
    vg malte

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    06.01.2009
    Alter
    33
    Beiträge
    104
    Wird den eine serielle Schnittstelle im Geräte-Manager angezeigt? Wenn ja muss diese eigentlich auch funktionieren. Wie gesagt, mit CreateFile würde ich mich nicht weiter beschäftigen, da die Komponente vieles einfacher macht.
    Wenn aber keine Schnittstelle angezeigt wird, nehme ich an das man das ganze via USB anspricht. Wie das dann im Detail funktioniert kann ich leider nicht sagen. Ich habe bisher nur mit dem Microchip USB Framework gearbeitet und dort ist eine dll mit den Funktionen zum ansprechen der USB Schnittstelle enthalten.

    edit: Ich hab grade gesehen das die TComPort erst ab Delphi 5 funktionieren soll. Von daher wird es mit dieser wahrscheinlich nicht klappen. Ich habe aber grad nochmal deinen Quelltext angeschaut.

    Probier es mal so:
    Code:
    procedure TForm1.ButOpenCOMClick(Sender: TObject); begin 
    Port := CreateFile(PChar(Edit1.Text),GENERIC_WRITE,0,NIL,OPEN_EXISTING,0,0); 
    end;
    Die Anführungszeichen bewirken, dass nicht dein eingegebener Text als Name der Schnittstelle genommen wird, sondern eben der String Edit1.Text. Diese Schnittstelle existiert natürlich nicht.
    Geändert von hagbart06 (26.10.2012 um 19:47 Uhr)
    Gruß
    Kevin

  10. #10
    Hallo,
    @ hagbart: stimmt, danke, ist korrigiert.
    Ich würde gerne ohne Komponente auskommen, auch weil das ganze ja eigentlich "nur" beim drücken verschiedener Tasten verschiedene chars senden soll.
    Ich vermute es liegt wirklich am Treiber: Für den USB->SER Chip der auf dem IR-Transceiver gibts so wie ich das zurzeit überblicke 2 möglickeiten: VCP (Virt.COM Port) und d2xx (Zugriff USB über ein DLL [??] ) Bisher hatte ich lezteres. Wie werd ich den jetzt los und wo gibts den VCP? wenn ich die alten Treiber über den Gerätemanager deinstalle und den USB-IR-T neu anschließe holt er sich automatisch die alten wieder.
    vg malte

    Nachtrag: Alternativer Ansatz:
    Kann ich mit Delphi so eine Art "virtuelle Eingabe" ins Hyperterminal machen. Also so tun als hätte man eine Tastaturtaste gedrückt? vg M.
    Geändert von Artemis_Simetra (28.10.2012 um 13:03 Uhr)

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. asuro prob bei pollswitch
    Von rockyyy im Forum Asuro
    Antworten: 1
    Letzter Beitrag: 01.02.2008, 14:46
  2. Prob mit servo timer und adc
    Von mki im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.10.2007, 22:54
  3. prob mit H-Brücke
    Von Omeg@ im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 23.04.2006, 21:21
  4. ATtiny2313 prob.
    Von Crocodile im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 18.12.2005, 01:24
  5. SRF08 prob mit usbinterface
    Von Perfect-Silence im Forum Sensoren / Sensorik
    Antworten: 10
    Letzter Beitrag: 08.03.2005, 14:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests