Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit dem IO-Warrior und IR (https://www.delphipraxis.net/44225-problem-mit-dem-io-warrior-und-ir.html)

rage2001 15. Apr 2005 16:36


Problem mit dem IO-Warrior und IR
 
Ich habe eine Platine entwickelt mit einem grafischem USB-Display und dem IO Warriror 24. Das funktioniert alles auch wunderbar. Nun wollte ich ein Plugin für Winamp schreiben, was auch ohne Probleme funktioniert. Nur leider habe ich keinen Plan wie man die IR Funktion im IO-Warrior in einer DLL benutzt. In einem normalen Programm ist das alles kein Problem, nur halt in einer DLL ebend dann doch. In den Sourcebeispielen ist ein Beispiel wie man den IO-Warrior halt benutzt. Wenn ich dieses Beispiel als Grundlage nehme und dann I2C, LCD und IR aktiviere, kann ich auf dem I2C Bus arbeiten, ich kann auf das Display schreibn. Aber kein IR-Signal kommt an. Vieleicht hat jemand ja eine Idee, mein Hilferuf im CodeMercs Forum war vieleich ein wenig ungeschickt formuliert. Im Stillen hoffen ich ja das Robert den Beitrag liest, denn wer könnte besser helfen
:-))


CU rage

Robert Marquardt 15. Apr 2005 18:39

Re: Problem mit dem IO-Warrior und IR
 
Frag doch zur Sicherheit nochmal im CodeMercs Forum http://www.codemercs.com/phpBB2/ , damit ich nicht vergesse zu antworten.
Da ich die HID Komponente gemacht habe und jetzt bei Code Mercenaries arbeite werde ich spaetestens Montag antworten.
Ansonsten hole dir die HID Komponente von http://www.soft-gems.net falls das DLL Beispiel im SDK nicht dabei ist.

rage2001 19. Apr 2005 15:06

Re: Problem mit dem IO-Warrior und IR
 
Hi Robert

Ich wollte Dich nur mal an die Antwort (sofern möglich) erinnern. Im IO-Warrior Forum gabs leider auch keine. Sorry, das ich drängle, aber mir sitz das Problem im Nacken, oder besser am Telefon .-).

cu und Danke rage

Robert Marquardt 19. Apr 2005 17:53

Re: Problem mit dem IO-Warrior und IR
 
Sorry, ich habe deine Frage im CodeMercs Forum nicht gesehen.
Hier eine Beispiel DLL in Delphi:
Delphi-Quellcode:
library HIDinDLL;

uses
  Windows, Messages, SysUtils, Classes, Dialogs, Forms,
  DBT, JvHidControllerClass;

{$R *.res}

type
  // just an object to carry the methods
  TMethodObject = class(TObject)
  public
    procedure DLLDeviceChange(Sender: TObject);
    function EventPipe(var Msg: TMessage): Boolean;
  end;

var
  // the HID controller in a DLL
  HidCtl: TJvHidDeviceController;
  // an object to carry methods
  DLLHelperObject: TMethodObject;

// assigned to HidCtl.OnDeviceChange

procedure TMethodObject.DLLDeviceChange(Sender: TObject);
begin
  // just show that it works
  ShowMessage('DeviceChange happened');
end;

// this method is registered with Application.HookMainWindow and
// drives HidCtl externally

function TMethodObject.EventPipe(var Msg: TMessage): Boolean;
begin
  Result := False;
  // sort out WM_DEVICECHANGE : DBT_DEVNODES_CHANGED
  if (Msg.Msg = WM_DEVICECHANGE) and (TWMDeviceChange(Msg).Event = DBT_DEVNODES_CHANGED) then
    HidCtl.DeviceChange;
end;

procedure StartHID(hWnd: HWND); stdcall;
begin
  // assigns the Application object of the *DLL* a window to get messages from
  Application.Handle := hWnd;
  // create the HID controller
  HidCtl := TJvHidDeviceController.Create(nil);
  // create the helper object
  DLLHelperObject := TMethodObject.Create;
  // hook in the DLL
  Application.HookMainWindow(DLLHelperObject.EventPipe);
  // now the HID component works and can be used
  HidCtl.OnDeviceChange := DLLHelperObject.DLLDeviceChange;
end;

procedure StopHID; stdcall;
begin
  // clean up
  Application.UnhookMainWindow(DLLHelperObject.EventPipe);
  HidCtl.Free;
  DLLHelperObject.Free;
end;

exports
  StartHID,
  StopHID;

begin
end.
Das haengt wahrscheinlich damit zusammen das die DLL einen eigenen Memory-Manager hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz