Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Datenaustausch mit eine Konsolenanwendung (https://www.delphipraxis.net/169441-datenaustausch-mit-eine-konsolenanwendung.html)

hedie 19. Jul 2012 18:37

Datenaustausch mit eine Konsolenanwendung
 
Guten Abend liebe Community...

Meine Aktiven Community Tage sind leider schon ein weilchen her, aber das könnte sich
ja bald wieder ändern :) Ich habe nämlich ein neues Projekt am laufen.

Und dazu gibts auch bereits die erste Frage von mir...

Folgendes Szenario:

Ich habe eine eigene Hardware entwickelt (einen RF-USB-Stick) diese wird als USB-Hid erkannt.
Somit Treiberlos installiert.

Die Stick-core-firmware (also den USB-Teil) habe ich übernommen. Zur Kommunikation werden Requests verwendet.
Zu dieser Firmware gabs auch ne Konsolenanwendung inkl. Sourcen in C.

Diese Konsolenanwendung benötigt das DDK (DriverDevelopmentKit) weswegen ich direkt MingW als Compiler verwendete
da dieser das DDK bereits enthält.

Da ich jedoch mehr ein Delphi Programmierer bin und C nur für Embedded Anwendungen verwende, möchte ich zur
Kommunikation ein Delphi Programm verwenden.

Nun gibt es meiner Meinung nach 2 Wege

1. Ich versuche die Hardware direkt mit Delphi anzusteuern.
Vorteil: nur ein Programm notwendig
Nachteil: ich kenne mit mit der HID Klasse nicht aus und habe auch keine Idee wie ich dies in Delphi schaffe.

2. Ich werde die Konsolenanwendung soweit anpassen das eine Komfortable kommunikation mit meinem Programm möglich ist.
Nachteil: mehrere Anwendungen notwendig.


Ich bin auch für weitere Vorschläge offen.

Was würdet ihr sagen was am einfachsten ist?

Danke schonmal.
Grüsse
Claudio

WM_CLOSE 19. Jul 2012 18:43

AW: Datenaustausch mit eine Konsolenanwendung
 
Kannst du die Konsolenanwendung nicht in eine DLL umwandeln? Das wäre doch die Sauberste Lösung.

hedie 19. Jul 2012 18:54

AW: Datenaustausch mit eine Konsolenanwendung
 
Zitat:

Zitat von WM_CLOSE (Beitrag 1175262)
Kannst du die Konsolenanwendung nicht in eine DLL umwandeln? Das wäre doch die Sauberste Lösung.

Danke für deine Antwort

Das wäre sicher eine gute Idee.
Doch leider kenne ich mich mit C-Programmierung unter Windows zu wenig aus um aus dieser Konsolenanwendung eine DLL zu erstellen.

Falls hier jemand etwas weiss, dann bite posten.

Wass ich noch sagen sollte,

es handelt sich bei den auszutauschenden Daten um Dantenblöcke a 128Bytes.

hedie 20. Jul 2012 16:14

AW: Datenaustausch mit eine Konsolenanwendung
 
So wies ausschaut, hat niemand sonst mehr eine Idee...

Demnach werde ich wohl die Konsolenanwendung aus meinem Delphiprogramm heraus mit Parametern aufrufen und die
Ausgabe entsprechend auswerten.


Gruss
Claudio

guinnes 20. Jul 2012 17:17

AW: Datenaustausch mit eine Konsolenanwendung
 
Die HID-Komponente aus den Jedies ist eigentlich recht einfach zu benutzen. Ich habe sie verwendet, um Daten aus meinem Ergometer auszulesen ( mit einer Zusatzhardware USB K8055 von Vellemann) Hier gibts das SDK, was du natürlich anpassen musst, aber die Komponente nimmt dir die Kommunikation mit dem HID-Gerät ab

Delphi-Fan-Friedrichsdorf 21. Jul 2012 01:24

AW: Datenaustausch mit eine Konsolenanwendung
 
Zitat:

Zitat von hedie (Beitrag 1175417)
So wies ausschaut, hat niemand sonst mehr eine Idee...

Hab ein bischen gedult, das Thema ist nicht besonders verbreitet, wer schreibt schon eigene Treiber in Delphi...

Ich hab mich schon mal mit einem "Human Interface Device" beschäftigt,
und kann ebenfalls nur empfehlen die JEDI HID Komponente zu benutzen(Und den Rest der JEDI-Sammlung kann ich auch empfehlen :wink:).

Du musst dann nur die Befehle aus der C-Anwendung nach fischen und in Delphi (Angepasst an die HID-Komponente) umsetzen, ist nicht so schwierig...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 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