![]() |
Neues Programm für NB-5100p
Hallo
ich habe diese Fernbedienung von Trust ![]() dazu das Programm mit der Beschreibung : Windows XP - 1.0 - application no driver needed Das Programm oder der Treiber besteht nur aus einer .exe. Das ist aber sehr schlecht. Man kann eigentlich nur Tasten auf die Fernbedienungsknöpfe legen. Wäre es nun eifach sich da ein neues Programm zu machen ? Also in die Richtung den IR Receiver zu finden und Daten von ihm zu bekommen ? Oder ist das ehr höhere Programmiererei ? Wie würde das ungefähr gehen ? MfG |
Re: Neues Programm für NB-5100p
Das duerfte ein USB-Geraet aus der Unterklasse der HID-Geraete sein. Besorg dir mal die HID-Komponente von
![]() Falls du schon die JVCL hast, dann nicht installieren, da die Komponente schon bei der JVCL dabei ist. Die Beispielprogamme, die beim Soft-Gems-Download dabei sind, uebersetzen (per Batch-Datei). Den Output von CollectionDemo und UsagesDemo an mich schicken oder hier posten. Danach kann ich sagen was genau die Fernbedienung kann. Mit der HID-Komponwente kann man dann ein Programm schreiben das die Fernbedienung auslesen kann. Welche Aktionen man dann implementiert ist dann dem Programmierer ueberlassen. Tastendruecke zu generieren ist allerdings schwerer als es aussieht. Was eine Tastatur ist, ist historisch gewachsen und ziemlich verwinkelt. |
Re: Neues Programm für NB-5100p
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo
also liegt das im Bereich des machbaren für einen unwissenden programmierer ? Hier das 1.
Delphi-Quellcode:
Ich hoffe das ist das richtige."Formosa21" "IR507 USB IR Receiver" VID=$147A PID=$E019 Input Report Size=4 Output Report Size=0 Feature Report Size=0 Value Input =========== 0) UsagePage: Consumer ($000C) ReportID: 0 IsAlias: False BitField: 6 LinkCollection: 0 LinkUsage: Consumer Control ($0001) LinkUsagePage: Consumer ($000C) IsRange: False IsStringRange: False IsDesignatorRange: False IsAbsolute: False HasNull: False BitSize: 8 ReportCount: 4 UnitsExp: 0 Units: 0 LogicalMin: 0 LogicalMax: 255 PhysicalMin: 0 PhysicalMax: 0 Usage: Consumer Control ($0001) StringIndex: 0 DesignatorIndex: 0 DataIndex: 0 Das andere habe ich angehängt. Ich will weniger Tastendrücke simulieren (habe ich aber scho ein wenig gemacht). Mehr so SendMessage an Winamp. MfG |
Re: Neues Programm für NB-5100p
Genau richtig.
Du hast da aber einen netten Haufen Hardware :-) Seh ich das richtig? Zwei Tastaturen davon eine ein einfaches Billigbrett und die andere eine kabellose Multimediatastatur mit allem Schnickschnack den es gibt? Dazu einen "SideWinder Force Feedback 2 Joystick". Nette Ausruestung. Der IR-Receiver ist besonders einfach gestrickt. Man kann nur Daten von ihm lesen (Output Report Size=0 und Feature Report Size=0). Die Daten sind als 4 Bytes deklariert (BitSize: 8 x ReportCount: 4). Leider gibt es daher keine Information was die Daten denn genau bedeuten. Im Gegensatz dazu sieh wie ausfuehrlich der FF Joystick seine Daten beschreibt. Setz mal SimpleHIDWrite auf die Fernbedienung an und drueck die Buttons. Bei Fernbedienungen ist es ungewohnlich wenn zwei oder mehr Tastendruecke gleichzeitig behandelt werden, aber ausprobieren schadet nicht. Poste die Daten hier. Such mal im Internet nach dem RC5-Format, denn es ist zu erwarten das die Prinzipien dieses Formats auftauchen. |
Re: Neues Programm für NB-5100p
Hallo
ich habe mal jede Taste gedrückt. Wenn man 2 drückt passiert nichts oder es wird nur eine davon erkannt.
Delphi-Quellcode:
MfGRD 00 00 F7 00 FF RD 00 00 F7 01 FE RD 00 00 F7 02 FD RD 00 00 F7 03 FC RD 00 00 F7 04 FB RD 00 00 F7 05 FA RD 00 00 F7 06 F9 RD 00 00 F7 07 F8 RD 00 00 F7 08 F7 RD 00 00 F7 09 F6 RD 00 00 F7 0A F5 RD 00 00 F7 0B F4 RD 00 00 F7 0C F3 RD 00 00 F7 0D F2 |
Re: Neues Programm für NB-5100p
Das fuenfte Byte am Anfang nennt sich ReportID und kann hier ignoriert werden, da es fuer dieses Geraet immer 0 ist.
Na da kann man direkt sehen das die ersten beiden Bytes recht unwichtig sind. Schwer zu sagen was sie bedeuten, da sie sich nicht aendern. Bietet da das Originalprogramm irgendwelche Infos an? Batteriestand, Empfangsqualitaet oder sonst irgendwas was angezeigt wird? Die beiden anderen Bytes sind natuerlich leicht zu dekodieren. Eine Tastennummer und $FF - Tastennummer. Mit diesen Infos kann ich dir schnell ein Skelettprogramm schnitzen. Heute aber nicht mehr. |
Re: Neues Programm für NB-5100p
Hallo
das Programm kann überhaupt nix außer den Tasten auf der Fernbedienung Tasten vom PC zuzuweisen. Und das Funktionier komischerweise auch nicht immer richig. Wenn du mir so ein kleines Skelettprogramm schnitzen könntest wäre ich dir sehr dankbar. Es muss eigentlich nur die Fernbedienung auswählen und mir die Tasten herausgeben, den Rest würde ich alleine schaffen. MfG |
Re: Neues Programm für NB-5100p
Genau an so ein Skelettprogramm dachte ich. Es ist keine Auswahl noetig. Das Geraet laesst sich ueber VID und PID eindeutig erkennen und man verwendet einfach das erste gefundene Geraet. Es ist doch unwahrscheinlich das mehr als eine Fernbedienung verwendet wird.
Besorg dir mal eine Komponente um ein Trayprogramm zu erstellen. Ich bevorzuge CoolTrayIcon. Das Programm sollte im Tray residieren, denn es darf ja nicht den Fokus haben wenn es Tasten simuliert. |
Re: Neues Programm für NB-5100p
Liste der Anhänge anzeigen (Anzahl: 1)
Ein sehr simples Programm, aber es sollte die Daten empfangen und anzeigen. Die Geraeteseite sollte damit erschlagen sein. Der Anhang ist das komplette D6 Projekt.
Delphi-Quellcode:
Doof bleibt doof. Copy & Paste Error beseitigt.
unit NB5100PMain;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, JvHidControllerClass, StdCtrls; type TForm1 = class(TForm) HidCtl: TJvHidDeviceController; Label1: TLabel; ListBox1: TListBox; procedure HidCtlDeviceChange(Sender: TObject); procedure HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte; const Data: Pointer; Size: Word); public Dev: TJvHidDevice; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.HidCtlDeviceChange(Sender: TObject); begin // pruefen ob das bereits benutzte Geraet ausgesteckt wurde if Assigned(Dev) and not Dev.IsPluggedIn then begin // das Geraet zurueckgeben HidCtl.CheckIn(Dev); Label1.Caption := 'No device'; end; // noch kein Geraet in Benutzung if not Assigned(Dev) then // pruefen ob die Fernbedienung angesteckt wurde, wenn ja in Benutzung nehmen if HidCtl.CheckOutByID(Dev, $147A, $E019) then begin Label1.Caption := 'Device connected'; Listbox1.Items.Clear; end; end; procedure TForm1.HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte; const Data: Pointer; Size: Word); var I: Word; P: PChar; S: string; begin P := Data; S := ''; for I := 0 to Size - 1 do S := S + Format('%.2x ', [Cardinal(P[I])]); ListBox1.Items.Add(S); end; end. |
Re: Neues Programm für NB-5100p
Hallo
Danke. Genau sowas habe ich gesucht und es funktioniert Perfekt. Danke. :thumb: MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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