AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

usb raketenwerfer software suckt...

Ein Thema von agm65 · begonnen am 2. Apr 2007 · letzter Beitrag vom 13. Okt 2008
Antwort Antwort
Seite 7 von 11   « Erste     567 89     Letzte »    
Robert Marquardt
(Gast)

n/a Beiträge
 
#61

Re: usb raketenwerfer software suckt...

  Alt 3. Apr 2007, 15:21
Das erhoeht aber die Durchschlagskraft und damit ist das Ding illegal.
  Mit Zitat antworten Zitat
KesseK

Registriert seit: 31. Jan 2007
Ort: Dortmund
48 Beiträge
 
Delphi 7 Personal
 
#62

Re: usb raketenwerfer software suckt...

  Alt 3. Apr 2007, 15:35
Es handelt sich hier doch um Schaumstoffraketen und nicht um Kriegsmaschinerie. Ich find sowas allerdings recht überflüßig, vorallem im Büro, auf LANs mag sowas vielleicht 5 Minuten Spaß machen aber sonst. Und ob man das ding wirklich tunen muss. Mit Paintball Waffen wär ich da lieber vorsichtiger, dass ist ja kein Spiel mehr... Trotzdem ist die Konfigurationsgeschichte interessant, die Source würd ich auch gern sehen wenns fertig ist.
Sammy
lalalalalalala la la .. Wem gehört das Reh auf der Wiese dort?
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#63

Re: usb raketenwerfer software suckt...

  Alt 3. Apr 2007, 15:42
Zitat von KesseK:
Es handelt sich hier doch um Schaumstoffraketen und nicht um Kriegsmaschinerie. Ich find sowas allerdings recht überflüßig, vorallem im Büro, auf LANs mag sowas vielleicht 5 Minuten Spaß machen aber sonst. Und ob man das ding wirklich tunen muss. Mit Paintball Waffen wär ich da lieber vorsichtiger, dass ist ja kein Spiel mehr... Trotzdem ist die Konfigurationsgeschichte interessant, die Source würd ich auch gern sehen wenns fertig ist.
lol ob die dinger wie du richtig gesagt hast: Schaumstoffraketen jetzt 2 meter oder 5 fliegen ist doch egal . ich treff hier leider nicht alle mitarbeiter..nur 1 nen von 3...

finde das auch alles sehr interessant und danke an dieser stelle dem robert nochmal recht herzlich für seine mühe.
euer Peter Porka
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#64

Re: usb raketenwerfer software suckt...

  Alt 3. Apr 2007, 15:47
So ein Stueck Schaumstoff bei grosser Geschwindigkeit hat das Space Shuttle kaputtgemacht. Der menschliche Koerper ist da sehr empfindlich z. B. wenn man was ins Auge kriegt.
Natuerlich werde ich die Sourcen hier posten. Es geht hier wie beim PowerMate-Thread um die Erforschung unbekannter HID-Geraete und um das Design einer Anwendung dazu.
Besser kann man doch kaum lehren. Der Thread enthaelt alles was man braucht. Schwierigkeiten bei der Kommunikation, rechtliche Grenzen. Das naechste sind die Designideen fuer das Programm.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#65

Re: usb raketenwerfer software suckt...

  Alt 3. Apr 2007, 15:50
das würde ich sehr gerne übernehmen, also das design.
ich glaube das kann ich gut . mach am besten nen rohling den sich jeder selbst designen kann das wäre groovie !
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#66

Re: usb raketenwerfer software suckt...

  Alt 4. Apr 2007, 09:29
gibts news ? kann es kaum noch erwarten ..ich komm hier nicht weiter
euer Peter Porka
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#67

Re: usb raketenwerfer software suckt...

  Alt 4. Apr 2007, 09:43
Alter Mann ist doch kein D-Zug
Ich musste noch ein bischen Feinschliff betreiben wie Kommentare.
Man erstelle sich ein Delphi-Projekt und speichere als OfficeRocketMain.pas und OfficeRocket.dpr.
Danach die untenstehende Source kopieren und in OfficeRocketMain.pas pasten.
Das selbe fuer die Form. Dazu schaltet man mit Rechtsklick auf "View as Text" um.
Code:
object OfficeRocketForm: TOfficeRocketForm
  Left = 501
  Top = 124
  BorderIcons = [biSystemMenu, biMinimize]
  BorderStyle = bsSingle
  Caption = 'OfficeRocket'
  ClientHeight = 171
  ClientWidth = 173
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  Position = poScreenCenter
  PixelsPerInch = 96
  TextHeight = 13
  object UpBtn: TSpeedButton
    Tag = 2
    Left = 72
    Top = 32
    Width = 23
    Height = 22
    AllowAllUp = True
    GroupIndex = 2
    Enabled = False
    Glyph.Data = {
      76010000424D7601000000000000760000002800000020000000100000000100
      04000000000000010000120B0000120B00001000000000000000000000000000
      800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333000333
      3333333333777F33333333333309033333333333337F7F333333333333090333
      33333333337F7F33333333333309033333333333337F7F333333333333090333
      33333333337F7F33333333333309033333333333FF7F7FFFF333333000090000
      3333333777737777F333333099999990333333373F3333373333333309999903
      333333337F33337F33333333099999033333333373F333733333333330999033
      3333333337F337F3333333333099903333333333373F37333333333333090333
      33333333337F7F33333333333309033333333333337373333333333333303333
      333333333337F333333333333330333333333333333733333333}
    NumGlyphs = 2
    OnClick = CommandClick
  end
  object LeftBtn: TSpeedButton
    Left = 40
    Top = 64
    Width = 23
    Height = 22
    AllowAllUp = True
    GroupIndex = 1
    Enabled = False
    Glyph.Data = {
      76010000424D7601000000000000760000002800000020000000100000000100
      04000000000000010000120B0000120B00001000000000000000000000000000
      800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
      3333333333333333333333333333333333333333333333333333333333333333
      3333333333333FF3333333333333003333333333333F77F33333333333009033
      333333333F7737F333333333009990333333333F773337FFFFFF330099999000
      00003F773333377777770099999999999990773FF33333FFFFF7330099999000
      000033773FF33777777733330099903333333333773FF7F33333333333009033
      33333333337737F3333333333333003333333333333377333333333333333333
      3333333333333333333333333333333333333333333333333333333333333333
      3333333333333333333333333333333333333333333333333333}
    NumGlyphs = 2
    OnClick = CommandClick
  end
  object RightBtn: TSpeedButton
    Tag = 1
    Left = 104
    Top = 64
    Width = 23
    Height = 22
    AllowAllUp = True
    GroupIndex = 1
    Enabled = False
    Glyph.Data = {
      76010000424D7601000000000000760000002800000020000000100000000100
      04000000000000010000120B0000120B00001000000000000000000000000000
      800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
      3333333333333333333333333333333333333333333333333333333333333333
      3333333333333333333333333333333333333333333FF3333333333333003333
      3333333333773FF3333333333309003333333333337F773FF333333333099900
      33333FFFFF7F33773FF30000000999990033777777733333773F099999999999
      99007FFFFFFF33333F7700000009999900337777777F333F7733333333099900
      33333333337F3F77333333333309003333333333337F77333333333333003333
      3333333333773333333333333333333333333333333333333333333333333333
      3333333333333333333333333333333333333333333333333333}
    NumGlyphs = 2
    OnClick = CommandClick
  end
  object DownBtn: TSpeedButton
    Tag = 3
    Left = 72
    Top = 96
    Width = 23
    Height = 22
    AllowAllUp = True
    GroupIndex = 2
    Enabled = False
    Glyph.Data = {
      76010000424D7601000000000000760000002800000020000000100000000100
      04000000000000010000120B0000120B00001000000000000000000000000000
      800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
      FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333303333
      333333333337F33333333333333033333333333333373F333333333333090333
      33333333337F7F33333333333309033333333333337373F33333333330999033
      3333333337F337F33333333330999033333333333733373F3333333309999903
      333333337F33337F33333333099999033333333373333373F333333099999990
      33333337FFFF3FF7F33333300009000033333337777F77773333333333090333
      33333333337F7F33333333333309033333333333337F7F333333333333090333
      33333333337F7F33333333333309033333333333337F7F333333333333090333
      33333333337F7F33333333333300033333333333337773333333}
    NumGlyphs = 2
    OnClick = CommandClick
  end
  object ShootBtn: TSpeedButton
    Tag = 4
    Left = 59
    Top = 128
    Width = 49
    Height = 22
    AllowAllUp = True
    Caption = 'Shoot'
    Enabled = False
    OnClick = ShootBtnClick
  end
  object HidCtl: TJvHidDeviceController
    OnDeviceChange = HidCtlDeviceChange
    Left = 136
    Top = 8
  end
end
Delphi-Quellcode:
unit OfficeRocketMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, JvHidControllerClass;

type
  TRocketInitRec = packed record
    ReportID: Byte;
    Payload: array [0..7] of Byte;
  end;

  TRocketCommandRec = packed record
    ReportID: Byte;
    Payload: array [0..63] of Byte;
  end;

  TRocketCommand = (rcLeft, rcRight, rcUp, rcDown, rcFire);
  TRocketCommands = set of TRocketCommand;

  TOfficeRocketForm = class(TForm)
    UpBtn: TSpeedButton;
    LeftBtn: TSpeedButton;
    RightBtn: TSpeedButton;
    DownBtn: TSpeedButton;
    ShootBtn: TSpeedButton;
    HidCtl: TJvHidDeviceController;
    procedure CommandClick(Sender: TObject);
    procedure HidCtlDeviceChange(Sender: TObject);
    procedure ShootBtnClick(Sender: TObject);
  public
    // both devices are needed to access Rocket Launcher
    RocketCommand: TJvHidDevice;
    RocketInit: TJvHidDevice;
    Commands: TRocketCommands;
    procedure SendRocketCommands(Cmds: TRocketCommands);
  end;

var
  OfficeRocketForm: TOfficeRocketForm;

implementation

{$R *.dfm}

function CheckCommandDevice(HidDev: TJvHidDevice): Boolean; stdcall;
begin
  Result := (HidDev.Attributes.VendorID = $1130) and
    (HidDev.Attributes.ProductID = $0202) and
    (HidDev.Caps.OutputReportByteLength = 65);
end;

function CheckInitDevice(HidDev: TJvHidDevice): Boolean; stdcall;
begin
  Result := (HidDev.Attributes.VendorID = $1130) and
    (HidDev.Attributes.ProductID = $0202) and
    (HidDev.Caps.OutputReportByteLength = 9);
end;

procedure TOfficeRocketForm.HidCtlDeviceChange(Sender: TObject);
var
  Found: Boolean;
begin
  // give back devices no matter which plug or unplug caused the event
  HidCtl.CheckIn(RocketCommand);
  HidCtl.CheckIn(RocketInit);
  // try to get the two Rocket devices
  if HidCtl.CheckOutByCallback(RocketCommand, CheckCommandDevice) then
    HidCtl.CheckOutByCallback(RocketInit, CheckInitDevice);
  // enable/disable GUI
  Found := Assigned(RocketCommand) and Assigned(RocketInit);
  DownBtn.Enabled := Found;
  LeftBtn.Enabled := Found;
  RightBtn.Enabled := Found;
  ShootBtn.Enabled := Found;
  UpBtn.Enabled := Found;
end;

procedure TOfficeRocketForm.SendRocketCommands(Cmds: TRocketCommands);
const
  // init data to write to RocketInit device
  Init1: TRocketInitRec = (ReportID: $00; Payload: ($55, $53, $42, $43, $00, $00, $04, $00));
  Init2: TRocketInitRec = (ReportID: $00; Payload: ($55, $53, $42, $43, $00, $40, $02, $00));
  // data template to write to RocketCommand device (causes stop if unmodified)
  CmdEmpty: TRocketCommandRec =
    (ReportID: $00; Payload:
     ($00, $00, $00, $00, $00, $00, $08, $08, $00, $00, $00, $00, $00, $00, $00, $00,
      $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
      $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
      $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00));
var
  Written: DWORD;
  Init: TRocketInitRec;
  Command: TRocketCommandRec;
  I: TRocketCommand;
begin
  // send both init commands
  Init := Init1;
  RocketInit.WriteFile(Init, SizeOf(Init), Written);
  Init := Init2;
  RocketInit.WriteFile(Init, SizeOf(Init), Written);
  // collect commands into command record
  Command := CmdEmpty;
  for I := Low(TRocketCommand) to High(TRocketCommand) do
    if I in Cmds then
      Command.Payload[Ord(I) + 1] := $01;
  // send commands
  RocketCommand.WriteFile(Command, SizeOf(Command), Written);
end;

procedure TOfficeRocketForm.CommandClick(Sender: TObject);
begin
  with Sender as TSpeedButton do
    if Down then
      Commands := Commands + [TRocketCommand(Tag)]
    else
      Commands := Commands + [TRocketCommand(Tag)];
  SendRocketCommands(Commands);
end;

procedure TOfficeRocketForm.ShootBtnClick(Sender: TObject);
begin
  with Sender as TSpeedButton do
  begin
    Commands := Commands + [TRocketCommand(Tag)];
    SendRocketCommands(Commands);
    Commands := Commands + [TRocketCommand(Tag)];
  end;
end;

end.
Ich kann natuerlich nicht garantieren das es funktioniert, daher bitte testen und Fehler beseitigen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#68

Re: usb raketenwerfer software suckt...

  Alt 4. Apr 2007, 09:57
Zitat von Robert Marquardt:
Man erstelle sich ein Delphi-Projekt und speichere als OfficeRocketMain.pas und OfficeRocket.dpr.
Danach die untenstehende Source kopieren und in OfficeRocketMain.pas pasten.
Das selbe fuer die Form. Dazu schaltet man mit Rechtsklick auf "View as Text" um.
Man könnte natürlich auch das Projekt packen und hier anhängen. Ich sehe jetzt schon die Frage hier im Thread, dass das Programm so nicht zum Laufen gebracht wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#69

Re: usb raketenwerfer software suckt...

  Alt 4. Apr 2007, 10:09
ich kriege die buttons nicht aktiviert . also compilieren geht, ich habe die button mal auf enabled = true gesetzt aber es passiert nichts

wenn ich diesen block rausnehme

Delphi-Quellcode:
  Found := Assigned(RocketCommand) and Assigned(RocketInit);
  DownBtn.Enabled := Found;
  LeftBtn.Enabled := Found;
  RightBtn.Enabled := Found;
  ShootBtn.Enabled := Found;
  upBtn.Enabled := Found;
dann sind die aktiviert aber wenn ich sie dann anklicke, dann bekomme ich einen zugriffsverletzung.
euer Peter Porka
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#70

Re: usb raketenwerfer software suckt...

  Alt 4. Apr 2007, 10:30
Na das duerfte heissen das die CheckOutByCallback's fehlschlagen. Debugge das doch mal. Pruef auch ob ich VendorID, ProductID und OutputReportByteLength richtig abfrage.

@Lucky, es geht mir hier auch darum die Source direkt vorzustellen damit man sie diskutieren kann.

Zip erneuert.
Angehängte Dateien
Dateityp: zip rakete_355.zip (4,0 KB, 84x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 11   « Erste     567 89     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 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