Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi usb raketenwerfer software suckt... (https://www.delphipraxis.net/89562-usb-raketenwerfer-software-suckt.html)

agm65 2. Apr 2007 13:25


usb raketenwerfer software suckt...
 
hi leute, ich hab mal ne frage ...vll kennt ihr diesen usb raketenwerfen, wir haben uns den alle bestellt...die software dafür ist mehr als scheiße...wollte fragen ob und wie man da selber eine für machen kann ?

http://www.thinkgeek.com/images/products/zoom/usb_rocket_launcher.jpg]USB Raketenwerfer[/url]

Luckie 2. Apr 2007 13:35

Re: usb raketenwerfer software suckt...
 
Frag den Hersteller nach einer API. Ohne bleibt dir wohl nur das Disassemblieren der vorhandenen Software.

agm65 2. Apr 2007 13:41

Re: usb raketenwerfer software suckt...
 
hey weisst du was...das mache ich ...ich frag den hersteller ;) danke dir
p.s. wenn man die federn austauscht dann ist das ding eigentlich richtig gut !

CK_CK 2. Apr 2007 13:42

Re: usb raketenwerfer software suckt...
 
Mal 'ne Frage:
Wo habt ihr den her? Ebay?

Chris

agm65 2. Apr 2007 13:45

Re: usb raketenwerfer software suckt...
 
nope den gibts für 20€ bei pearl -> Pearl

Robert Marquardt 2. Apr 2007 13:48

Re: usb raketenwerfer software suckt...
 
Pearl verramscht die Kiste. In der c't hinten in der Werbeabteilung.
Soweit ich weiss meldet sich das Mistding als Tastatur an und reagiert auf die Umschaltung der LEDs.

Kannst du mal meine HID-Komponente von http://www.soft-gems.net/HID.php holen und die Beispiele uebersetzen?
Ich waere an der Ausgabe der Programme UsageDemo und CollectionDemo interessiert.

agm65 2. Apr 2007 13:54

Re: usb raketenwerfer software suckt...
 
?? sorry nochmal, ?

DGL-luke 2. Apr 2007 13:55

Re: usb raketenwerfer software suckt...
 
runterladen, entpacken/installieren, die zwei programme starten, die ausgabe posten - was ist da so schwierig zu verstehen?

agm65 2. Apr 2007 13:57

Re: usb raketenwerfer software suckt...
 
sorry kann ich nicht...ich darf nichts auf dem rechner installieren ( firmrechner)..

DGL-luke 2. Apr 2007 13:59

Re: usb raketenwerfer software suckt...
 
sollte mit entpacken getan sein... und warum zur hölle hast du den usb-raketenwerfer im büro?!

agm65 2. Apr 2007 14:00

Re: usb raketenwerfer software suckt...
 
^weil einer auf die idee kam ..mal 5 so dinger zu bestellen

Sergej 2. Apr 2007 14:01

Re: usb raketenwerfer software suckt...
 
Zitat:

Zitat von agm65
sorry kann ich nicht...ich darf nichts auf dem rechner installieren ( firmrechner)..

Cool, aber Raketenwerfer (mit Software die "scheiße" ist) darfst du installieren... ;-)

CK_CK 2. Apr 2007 14:01

Re: usb raketenwerfer software suckt...
 
Liste der Anhänge anzeigen (Anzahl: 3)
Ich hab' dir die exe-Dateien mal kompiliert...

Siehe Anhang...

Chris

agm65 2. Apr 2007 14:02

Re: usb raketenwerfer software suckt...
 
ne wir haben nen trick angewand ..einfach die exe kopiert

agm65 2. Apr 2007 14:06

Re: usb raketenwerfer software suckt...
 
usage:
Tenx Nonstandard Devic
Tenx Nonstandard Devic
Dell USB keyboard

collection:

HID-Devices
"Optical USB Mouse" VID=$046D PID=$C016
UsagePage=Generic Desktop ($0001) Usage=Mouse ($0002) CollectionType=Application ($01)
UsagePage=Generic Desktop ($0001) Usage=Pointing Device ($0001) CollectionType=Physical ($00)
Button Input Range: UsagePage=Button ($0009) 1..3
Value Input: UsagePage=Generic Desktop ($0001) Usage=Wheel ($0038)
Value Input: UsagePage=Generic Desktop ($0001) Usage=Y Axis ($0031)
Value Input: UsagePage=Generic Desktop ($0001) Usage=X Axis ($0030)
"Tenx Nonstandard Devic" VID=$1130 PID=$0202
UsagePage=Generic Desktop ($0001) Usage=Undefined ($0000) CollectionType=Application ($01)
Button Output Range: UsagePage=Keyboard ($0007) 0..255
Button Feature Range: UsagePage=Keyboard ($0007) 0..255
"Tenx Nonstandard Devic" VID=$1130 PID=$0202
UsagePage=Generic Desktop ($0001) Usage=Reserved ($0003) CollectionType=Application ($01)
Button Output Range: UsagePage=LED ($0008) 1..64
"Dell USB Keyboard" VID=$413C PID=$2003
UsagePage=Generic Desktop ($0001) Usage=Keyboard ($0006) CollectionType=Application ($01)
Button Input Range: UsagePage=Keyboard ($0007) 224..231
Button Input Range: UsagePage=Keyboard ($0007) 0..255
Button Output Range: UsagePage=LED ($0008) 1..3

Robert Marquardt 2. Apr 2007 14:23

Re: usb raketenwerfer software suckt...
 
Bitte in code Tags, damit die Einrueckung nicht verlorengeht.
Das sieht aus als ob es sich nicht als Tastatur meldet. Bitte noch das SimpleHIDWrite bereitstellen, dann kann er mal versuchen an die beiden Tenx Devices zu schreiben. Der Deskriptor sieht ziemlich wuest aus. Definitiv von einem Schwachkopf ohne USB-Wissen entworfen. Da ist experimentieren angesagt.
Die Ausgabe von UsageDemo fuer beide Tenx Devices ware auch hifreich.

CK_CK 2. Apr 2007 14:31

Re: usb raketenwerfer software suckt...
 
"SimpleHIDWrite" hab' ich hinzugefügt ;)

Viele Grüße,
Chris

agm65 2. Apr 2007 14:44

Re: usb raketenwerfer software suckt...
 
Delphi-Quellcode:
"?" "Tenx Nonstandard Devic" VID=$1130 PID=$0202
Input Report Size=0
Output Report Size=64
Feature Report Size=8

Button Output
=============

0)
UsagePage:        Keyboard ($0007)
ReportID:         0
IsAlias:          False
BitField:         0
LinkCollection:   0
LinkUsage:        Undefined ($0000)
LinkUsagePage:    Generic Desktop ($0001)
IsRange:          True
IsStringRange:    False
IsDesignatorRange: False
IsAbsolute:       True
UsageMin:     0 UsageMax:     255
StringMin:    0 StringMax:    0
DesignatorMin: 0 DesignatorMax: 0
DataIndexMin: 0 DataIndexMax: 255

Button Feature
==============

0)
UsagePage:        Keyboard ($0007)
ReportID:         0
IsAlias:          False
BitField:         0
LinkCollection:   0
LinkUsage:        Undefined ($0000)
LinkUsagePage:    Generic Desktop ($0001)
IsRange:          True
IsStringRange:    False
IsDesignatorRange: False
IsAbsolute:       True
UsageMin:     0 UsageMax:     255
StringMin:    0 StringMax:    0
DesignatorMin: 0 DesignatorMax: 0
DataIndexMin: 0 DataIndexMax: 255
Delphi-Quellcode:
"?" "Tenx Nonstandard Devic" VID=$1130 PID=$0202
Input Report Size=0
Output Report Size=8
Feature Report Size=0

Button Output
=============

0)
UsagePage:        LED ($0008)
ReportID:         0
IsAlias:          False
BitField:         2
LinkCollection:   0
LinkUsage:        Reserved ($0003)
LinkUsagePage:    Generic Desktop ($0001)
IsRange:          True
IsStringRange:    False
IsDesignatorRange: False
IsAbsolute:       True
UsageMin:     1 UsageMax:     64
StringMin:    0 StringMax:    0
DesignatorMin: 0 DesignatorMax: 0
DataIndexMin: 0 DataIndexMax: 63

agm65 2. Apr 2007 14:46

Re: usb raketenwerfer software suckt...
 
mit dem SimpleHIDWrite kann ich nichts anfangen bzw ich bekomme keine werte

MaBuSE 2. Apr 2007 15:08

Re: usb raketenwerfer software suckt...
 
Zitat:

Zitat von agm65
vll kennt ihr diesen usb raketenwerfen, wir haben uns den alle bestellt

Ich habe mal eine Frage zu dem Ding.
Ich sah die Webung auch, aber ich konnte der Werbung nicht entnehmen, ob der PC den Raketenwerfer auch steuen (drehen) oder nur abfeuern kann.

Meine Frage: Was kann das Ding?

Robert Marquardt 2. Apr 2007 15:09

Re: usb raketenwerfer software suckt...
 
Das Ding meldet sich als zwei Geraete. In SimpleHIDWrite eines der Geraete auswaehlen und man kann an es schreiben. Lesen geht nicht, da es "Input Report Size=0" meldet.
Bei der ReportID muss man 0 eintragen. Beim ersten Geraet kann man 64 Byte mit "Write" schreiben und 8 Byte mit "Set Report". Beim zweiten nur 8 Byte mit "Write".
Der Output von UsagesDemo besagt das dieses Geraet so schlecht designt ist das man mehr nicht herausbekommen kann.
Man kann also nur ausprobieren. Mal 0 und FF in den Datenbytes probieren. Das Geraet muss irgendwann reagieren, da es anders ja gar nicht ansprechbar ist.
Ich bezweifele das mehr als die ersten 8 Bytes relevant sind. Wahrscheinlich nur das erste Byte ueberhaupt.

Ich hoffe SimpleHIDWrite hat keine Macke. Ich habenoch nie Geraete mit "Input Report Size=0" gesehen. Windows mag sie auch nicht sonderlich.

Auf jeden Fall sollten wir das Ding zum Laufen kriegen. Wenn es naemlich mit SimpleHIDWrite erst mal geht, kann ein schoenes Programm dazu geschnitzt werden. SimpleHIDWrite ist ja nichts anderes als ein Demoprogramm zur vollen Ausnutzung der HID-Komponente.

MrKnogge 2. Apr 2007 15:11

Re: usb raketenwerfer software suckt...
 
Moin Babuse,
  • drehen um die Achse (links, rechts)
  • hoch, runter
  • abfeuern

auf pearl.de siehst du auch einen Screenshot der Software.

Gruß

agm65 2. Apr 2007 15:22

Re: usb raketenwerfer software suckt...
 
Zitat:

Zitat von Robert Marquardt
Das Ding meldet sich als zwei Geraete. In SimpleHIDWrite eines der Geraete auswaehlen und man kann an es schreiben. Lesen geht nicht, da es "Input Report Size=0" meldet.
Bei der ReportID muss man 0 eintragen. Beim ersten Geraet kann man 64 Byte mit "Write" schreiben und 8 Byte mit "Set Report". Beim zweiten nur 8 Byte mit "Write".
Der Output von UsagesDemo besagt das dieses Geraet so schlecht designt ist das man mehr nicht herausbekommen kann.
Man kann also nur ausprobieren. Mal 0 und FF in den Datenbytes probieren. Das Geraet muss irgendwann reagieren, da es anders ja gar nicht ansprechbar ist.
Ich bezweifele das mehr als die ersten 8 Bytes relevant sind. Wahrscheinlich nur das erste Byte ueberhaupt.

Ich hoffe SimpleHIDWrite hat keine Macke. Ich habenoch nie Geraete mit "Input Report Size=0" gesehen. Windows mag sie auch nicht sonderlich.

Auf jeden Fall sollten wir das Ding zum Laufen kriegen. Wenn es naemlich mit SimpleHIDWrite erst mal geht, kann ein schoenes Programm dazu geschnitzt werden. SimpleHIDWrite ist ja nichts anderes als ein Demoprogramm zur vollen Ausnutzung der HID-Komponente.


wenn ich auf write klicke bekomme ich einen zugriffs verletzungsfehler und set oder getreport kann ich nicht anklicken

MaBuSE 2. Apr 2007 15:26

Re: usb raketenwerfer software suckt...
 
Zitat:

Zitat von MrKnogge
Moin Babuse,
  • drehen um die Achse (links, rechts)
  • hoch, runter
  • abfeuern

Danke für die Info.

Ich habe gerade dank der USB Gerätekennung ein Video gefunden ;-)

Hier hat jemand ein Web interface für das Ding gebaut. (unter Linux)
http://www.justuber.com/blog/2007/01...face-for-linux

hier sind Videos zu sehen. Da steuert einer 5 Raketenwerfer Syncron mit selbstgeschriebener Software.

Es sieht so aus, als hätten ein paar Jungs ein SDK für Linux geschrieben :-)

-> OpenSource -> Kann man ja auch nach Windows portieren :mrgreen:

hier die Videos:
http://scott.weston.id.au/software/pymissile/
(Das 1. ist gut :-) )

have fun...

Robert Marquardt 2. Apr 2007 15:26

Re: usb raketenwerfer software suckt...
 
Sicherheitshalber Programm neu starten und dann Set Feature probieren. Get Feature auch, da sollte man maximal einen Fehler bekommen.
Ich schau mir SimpleHIDWrite nochmal an. Get Feature und Set Feature sollten beim ersten Device aktiv sein. Was fuer ein Fehler ist das genau?

Robert Marquardt 2. Apr 2007 15:30

Re: usb raketenwerfer software suckt...
 
Die Videos deuten an das da jemand noch eine Zielerfassung via Webcam vor hat :->

agm65 2. Apr 2007 15:31

Re: usb raketenwerfer software suckt...
 
wie geil, es geht !
wenn ich das erste auswähle und set feature clicke, dann feuert es ;) geil !

okay also feuern geht, aber wie kann ich jetzt auf die bewegung zugreifen ? soll ich alles mal mit 00 und ff durchtesten ?

ist egal was ich da eintrage, bei dem ersten ist set features immer feuern !

Robert Marquardt 2. Apr 2007 15:36

Re: usb raketenwerfer software suckt...
 
Ja. Ich wette mal die ersten drei Bits im ersten Byte sind zum abschiessen. Danach folgen bestimmt die beiden Achsen.
Die Werte sind entweder vorzeichenbehaftete Relativwerte (1 und FF = -1 ausprobieren) oder Absolutwerte.

Na da sollte es sich lohnen das Internet abzusuchen. Ich bin sicher da ist eine Formatbeschreibung zu erbeuten. Zur Not eben beim verlinkten C-Projekt die Sourcen durchlesen.

agm65 2. Apr 2007 15:38

Re: usb raketenwerfer software suckt...
 
wie sollte das dann ausehen ? also die ganzen 8 byte ?

00 00 0-1 ?


achja, bei dem 2ten auswählbaren , geht set und getfeatures ganricht

Robert Marquardt 2. Apr 2007 15:42

Re: usb raketenwerfer software suckt...
 
ReportID immer 00 oder Windows weigert sich die Daten zu schreiben.
00 01 bzw
00 FF
Die restlichen Bytes mal auf 00 lassen.
UsagesDemo sagt ja auch klar an das das zweite Device keine Feature Reports unterstuetzt. Laesst sich auf das zweite Device per "Write" schreiben?

http://scott.weston.id.au/software/pymissile/missile.py ist durchaus informativ.
Ich muss jetzt aber nach hause fahren. Weiteres heute abend nach 19:00.

agm65 2. Apr 2007 15:44

Re: usb raketenwerfer software suckt...
 
also write lässt sich klicken...ob es schreibt weiss ich nicht...jetzt geht auch das ballern nicht mehr ? hab ich was zerstört ?
ahh jetzt gehts wieder ...aber nur schießen ..das ding bewegt sich nicht ...aber ich weiss, es muss gehen :) !

hab jetzt mal die ersten 3 felder jeweils mit 01 oder und ff gefüllt...es passiert nicht ;(

kann es sein , das das erste zum schießen ist und das 2te zum bewegen ?

agm65 2. Apr 2007 15:58

Re: usb raketenwerfer software suckt...
 
Zitat:

Zitat von Robert Marquardt
ReportID immer 00 oder Windows weigert sich die Daten zu schreiben.
00 01 bzw
00 FF
Die restlichen Bytes mal auf 00 lassen.
UsagesDemo sagt ja auch klar an das das zweite Device keine Feature Reports unterstuetzt. Laesst sich auf das zweite Device per "Write" schreiben?

http://scott.weston.id.au/software/pymissile/missile.py ist durchaus informativ.
Ich muss jetzt aber nach hause fahren. Weiteres heute abend nach 19:00.

hab den post nicht gelesen ..vielen dank , das du mir hilfst ich wette mit deiner hilfe machen wir da eine richtig gute software draus ;)


lol in dem code sieht das so aus als hätte seine software mehr features als die die dabei war ..von wegen alle auf einmal feuern usw ;)

SirTwist 2. Apr 2007 20:56

Re: usb raketenwerfer software suckt...
 
Also in dem Python-Source werden drei Nachrichten an das Device geschrieben. Die ersten beiden Nachrichten sind jeweils 8 Bytes lang und immer gleich, die dritte Nachricht 64 Bytes und enthält die eigentlichen Steuerbefehle.

Nachricht 1: 85, 83, 66, 67, 0, 0, 4, 0
Nachricht 2: 85, 83, 66, 67, 0, 64, 2, 0
Nachricht 3:
Byte #1 ist immer 0
Byte #2 = 1 heißt Bewegung nach links, sonst 0
Byte #3 = 1 heißt Bewegung nach rechts
Byte #4 = 1 heißt Bewegung nach oben
Byte #5 = 1 heißt Bewegung nach unten
Byte #6 = 1 heißt Feuern
Byte #7 = 8
Byte #8 = 8
Byte #9..64 = 0

Die Bewegungsbytes #2 bis #5 kann man kombinieren, zumindestens in sinnvollen Kombinationen.

Das eigentliche Senden macht diese Funktion hier:
Code:
self.dev.handle.controlMsg(0x21, 0x09, <nachricht>, 0x02, 0x01)
wobei ich nicht herausgefunden habe, wofür die anderen Parameter sind:
Code:
requestType: specifies the direction of data flow, the type of request, and the recipient.
request: specifies the request.
buffer: ...
value: specific information to pass to the device. (default: 0)
index: specific information to pass to the device. (default: 0)
timeout: operation timeout in miliseconds. (default: 100)
Den Rest müsste jetzt jemand zusammenbasteln, der weiß, wie man USB von Delphi aus programmiert.

Zwei Pearl-Raketenwerfer hab ich hier auch stehen :-)

Robert Marquardt 3. Apr 2007 04:35

Re: usb raketenwerfer software suckt...
 
Die Nachrichten gehen direkt an den libusb-Treiber der fuer das Geraet eingerichtet wird.
USB kennt allerlei verschiedene Arten der Datenuebertragung. Die weiteren Parameter sind USB-spezifisch und machen nur Sinn auf Treiberebene.
Fuer den Zugang ueber das HID API ist das irrelevant weil die Werte festliegen und innerhalb des HID-Treibers eingefuegt werden.

agm65 3. Apr 2007 08:26

Re: usb raketenwerfer software suckt...
 
also ich habe keine bewegung hingekriegt bis jetzt... schießen ja, drehen nein ...ich teste weiter..ich verstehe das auch nicht mit den bewegungsbytes...bei mir passiert nichts ?

Robert Marquardt 3. Apr 2007 08:48

Re: usb raketenwerfer software suckt...
 
Ich habe mal Sourcen gesucht:
Code:
static void missile_do( missile_usb *control, int cmd )
{
    int a, b, c, d, e;

    /* Two fixed-format initiator packets appear to be required */

    if (missile_usb_sendcommand(control, 'U', 'S', 'B', 'C', 0, 0, 4, 0 ))
    {
        perror("missile_usb_sendcommand failed");
        return;
    }

    if (missile_usb_sendcommand(control, 'U', 'S', 'B', 'C', 0, 64, 2, 0 ))
    {
        perror("missile_usb_sendcommand failed");
        return;
    }

    /* Now the actual movement command! */

    a = cmd & missile_left ? 1 : 0;
    b = cmd & missile_right ? 1 : 0;
    c = cmd & missile_up ? 1 : 0;
    d = cmd & missile_down ? 1 : 0;
    e = cmd & missile_fire ? 1 : 0;
    if (missile_usb_sendcommand64(control, 0, a, b, c, d, e, 8, 8 ))
    {
        perror("missile_usb_sendcommand failed");
        return;
    }
}
Das hier sollte weiterhelfen. Erst mal werden zwei Initialisierungen geschrieben. Da dies 8 Byte sind muss es als "Set Feature" an das erste Geraet oder als "Write" and das zweite Geraet gehen. Die 64 Bytes des eigentlichen Kommandos gehen an das erste Geraet per "Write".

Die Init-Reports in Hex:
55 53 42 43 00 00 04 00
55 53 42 43 00 40 02 00

Der 64 Byte Report sollte man auch so hinkriegen. Die beiden 08 Bytes nicht vergessen.

Bitte mit SimpleHIDWrite experimentieren und hier posten ob man beide Geraete ansprechen muss oder ob es Set Feature an das erste Geraet ist (meine Wette steht auf zwei Geraete).
Sobald das klar ist, kann ich ein Delphiprogramm zur Kommunikation entwerfen.

agm65 3. Apr 2007 09:07

Re: usb raketenwerfer software suckt...
 
also ich spreche das erste gerät an und egal was ich da per set feature hinschicke, es feuert. bei dem 2ten gerät tut sich nichts..
aber ich glaube ich verstehe das auch nicht wirklich ..kannst du mir einen screeny machen von dem (1a tool) hid mit den werten die ich eintragen soll, danke dir !

Robert Marquardt 3. Apr 2007 09:27

Re: usb raketenwerfer software suckt...
 
Erst das zweite Geraet auswaehlen und die beiden Init-Reports per "Write" schreiben (ReportID natuerlich 00).
Das erste Geraet auswaehlen und per "Write" und ReportID 00
00 01 00 00 00 00 08 08
schreiben (die restlichen Bytes leer lassen, da sie automatisch mit 00 gefuellt werden).
Das sollte eine Bewegung nach links ausloesen.

Fuer weitere Experimente sei noch erwaehnt das man Zeilen Log-Window doppelklicken kann.

Da faellt mir gerade noch eine Optimierung fuer SimpleHIDWrite ein. Pasten von Strings mit Hex.

agm65 3. Apr 2007 09:43

Re: usb raketenwerfer software suckt...
 
Liste der Anhänge anzeigen (Anzahl: 1)
also ich habe jetzt beim 2ten das eingegeben aber es tut sich nichts.

Robert Marquardt 3. Apr 2007 09:49

Re: usb raketenwerfer software suckt...
 
Bitte mitlesen. An das zweite Geraet sollte zweimal geschrieben werden (ReportID jeweils 00):
55 53 42 43 00 00 04 00
55 53 42 43 00 40 02 00
Im Log sollte
WR 00 55 53 42 43 00 00 04 00
WR 00 55 53 42 43 00 40 02 00
auftauchen.
Danach das erste Geraet auswaehlen und
00 01 00 00 00 00 08 08
schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Seite 1 von 3  1 23      

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