WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Home Cockpit - Das Forum für die "Bastler" (http://www.wcm.at/forum/forumdisplay.php?f=55)
-   -   Keysend bei FS-BUS (http://www.wcm.at/forum/showthread.php?t=135233)

thyson8 26.05.2004 08:23

Keysend bei FS-BUS
 
Hallo

versuche gerade bei PIC767 die tastaturbefehle über fs-bus zu steuern klappt aber nicht. ich habe nur einen rechner auf dem fs2002 und pic767 läuf. wenn ich direkt auf die tasten drücke dann funktionieren alle funktione in pic767. habe einen switch auf die tastaturgruppe geroutet. die cid der tastaturgruppe habe ich auf 0 gestellt. wenn ich auf den testtaster im menu drücke dann ändert sich der value auch aber im pic767 ändert sich nichts. großes fragezeichen. was mache ich falsch

Pantu 26.05.2004 10:35

Hi Namenloser,

das mit PIC kannst Du lösen, indem Du ein "Delay" von ca. 150ms in die Tastaturkommandos einbaust. PIC braucht diese Verzögerung, sonst erkennt PIC das Tastaturkommand nicht.

Hoffe es hilft Dir weiter


Gruß

Peter

thyson8 28.05.2004 15:02

Keysend
 
hallo peter

habe es mit dem delay in fs-bus versucht. klappt nicht.
du meinst doch die einstellung in dem menu options : Key-Repeat-interval oder?

gruss kay

Pantu 28.05.2004 15:52

Hallo Kay,

nein, das meinte ich nicht, sondern bei FSBus kann man eine Verzögerung zwischen dem Drücken der Taste und dem Loslassen einbauen.

Ich versuch mal aus dem Gedächtnis ein Beispiel zu entwerfen:

Z.B. Du willst die Taste "Shift+A" an PIC schicken, dann sollte die Eingabe so lauten: K+VK_Shift;K+A;D150;K-A;K-VK_Shift
das bedeutet dr(ücke) Shift; dr A ; Verz 150ms; lasse A los; lasse Shift los
Hoffe das hilft Dir weiter

Gruß

Peter

thyson8 31.05.2004 21:10

keysend
 
hallo peter

danke für deine hilfestellung. klappt aber immer noch nicht.

ich habe es auf zwei rechnern probiert.

einmal mit windows 2000 und einmal mit windows xp home.

habe fsbus 2.2.0.1

in der gruppe der tastatur habe ich bei der cid 0 eingestellt, bei on sequence K+F;D150;K-F(bei mir ist das der FD toggle switch).
in der off sequence habe ich einmal das gleiche eingegeben danach komplett weggelassen.
der current value springt auch bei jedem schalten um aber es tut sich nichts im fs2002.
habe den testschalter und -taster oben auf der gruppe benutzt. geht auch nicht.
habe ab und zu einen network error 10043 und 10093 weiss aber nicht was das heisst.
langsam weiss ich nicht mehr was ich noch machen kann um das problem zu lösen.
ich habe auch keine lust eine tastatur zu zerlegen und die tastenfunktionen mit relais zu simulieren.
ist ein mega aufwand.

gruss

kay

Pantu 01.06.2004 09:12

Hallo Kay,

ich hänge mal meine Datei für die PIC 767 dran. Da kannst Du die Belegung und Konfiguration draus ersehen.
Vielleicht hat FSBus 2.2 da auch ein Problem. Mit der 1.4 Version lief es einwandfrei.

Hoffe es hilft Dir weiter

Gruß

Peter

Pantu 01.06.2004 13:50

Hallo Kay,

hast Du auch mal ausprobiert, ob es mit 50ms oder 70ms Verzögerung funktioniert?
Werde heute abend das Ganze mal selbst ausprobieren.


Gruß

Peter

Pantu 02.06.2004 08:53

Hallo Kay,

habe mich gestern abend mal mit FSBus beschäftigt und bin leider zu keinem Ergebnis gekommen.
Da ich in der Readme nichts gefunden habe, wie man seit der Version 2 einen Keyboard event einem Schalter / Taster zuordnet, habe ich folgende (Un)Logik angewandt, einen Schalter definiert und einen Keyboard / mouse event erzeugt mit "On sequence" = k+R;D50;K-R
die "off sequence" habe ich frei gelassen, denn beim loslassen der Taste soll ja kein Keyboard Kommmando erzeugt werden.
Dann habe ich den Schalter auf den Keyboardevent geroutet.
Leider überhaupt keine Reaktion.
Dann habe ich den Schalter mal auf den FS Standard Lichtbefehl geroutet und siehe da, das Licht lies sich schalten. Somit ist der Schalter und der Rest der Mimik ja wohl in Ordnung.
Also das Ganze dann mit dem Keyboardbefehl für die Taste "L" (k+L;d50;k-L)wiederholt (Routing wie oben), aber leider keine Reaktion.
Vermutlich mache ich einen Fehler bei der Umsetzung des Keyboard Mouse Events oder FSBus hat da noch ein kleines Problem.

Vielleicht kann uns Dirk hier ein wenig Nachhilfe erteilen. Hoffe er liest dies.

Gruß

Peter

thyson8 02.06.2004 13:15

Hallo peter

so wie du das hier beschrieben hast habe ich es auch gemacht.

mit dem gleichen ergebnis.

ich habe das gefühl das es vielleicht doch an fsbus liegen könnte.

habe dirk eine e-mail an seine adresse geschickt.

mal sehen was er mir zurück schreibt.

wenn ich seine antwort bekommen habe, werde ich es dir mitteilen

gruss kay

Totti 18.06.2004 16:38

Hallo,
seid Ihr schon weiter? Ich habe nämlich das selbe Problem und keine Lösung.
Gruß
Thorsten

dirkan 18.06.2004 16:58

Hallo,

bitte berücksichtigt das Verhalten vom Windows.
Die vom FSBUS generierten Keyboard Events werden an das aktive Fenster geschickt. Solange ich im FSBUS bin, ist das aktive Fenster der FSBUS und empfängt das von Euch mühsame erstellte Event, es passiert .. meist garnix.

Das aktive Fenster soll ja der Flusi, oder eine anderes AddOn sein, das muss erst einmal aktiviert werden.

Aktivieren tut man das entweder mit der eigenen Maus, oder Alt+Tab oder, indem man die Aktivierungssequenz sicherheitshalber mit in den String eingibt.

Beispiel: Oben links ist ein Fenster mit einem EFIS Bildschirm. Dahin soll ein X gesendet werden.

Anstatt "K+X;K-X" kann man auch ein "L+379,162;L-379,162;K+X;K-X"
Damit tappert die Maus vorher mit dem (L)inken Mausbutton auf die Position 379,162 (Das Fenster mit dem EFIS) und dann wird das Keyboard Event X geschickt.

Noch besser:
"L+379,162;D30;L-379,162;D30;K+X;D30;K-X"

Die (D)elays geben der Zielanwendung, dem EFIS, Zeit um auf die beim Aktivieren notwendigen Aktionen angemessen zu reagieren.

Man kann die Zeiten nicht genau vorhersagen. Wer mehr zu dem Verhalten von Windows wissen möchte, sollte sich die die ersten Kapitel vom guten alten Charles Petzold Titel "Windows Programming" reinziehen (Warnung: das geht ins Eingemachte).

Ich hoffe, das diese Hinweise hilfreich sind.

Gruss Dirk

Totti 18.06.2004 18:01

Soweit klr, aber wieso funtioniert es mit der CID 0 nicht?

dirkan 18.06.2004 18:12

Hi,

ich hab's gerade nochmal erfolgreich probiert.
Oben links den Windows Editor positioniert, unten rechts den Router
Ein System-Objekt angelegt mit "L+120,120;L-120,120;K+E;K-E"

Dann einen Switch erzeugt, der ein Event auslöst und schon steht im Editor ein schönes E pro Tstendruck.

:lol:

Markus Wolfgang 19.06.2004 17:12

Hi,

Dirk, habe das mal so getestet. Leider bekomme ich auch gem Deiner Anleitung ein E in meinen Editor. Habe auch versucht die Koordinaten mit FSFINDER "genau" zu bestimmen.

Im Router wechselt zwar die 0 zur 1 aber ein Keysend erfolgt in keinsterweise. Weder mit CID 1 oder 0 oder sonst nochwas.

GEHT NICHT. HILFE

Gruss

Wolle

Totti 19.06.2004 17:56

Also um einen Key auf dem Server auszuführen, muß unter Switch die "0" stehen. CID 1,2 usw. sind die Clienten.
Bei der derzeitigen FsBus-Version muß jedoch die Konfigurationsdatei "von Hand" editiert werden. D. h., die "0" muß von Hand geändert werden. Der FsBus macht das noch nicht selbständig.
Wenn hier keine "0" steht, wird auch kein Event ausgeführt, weil FsBus versucht, das Event auf einem Clienten auszuführen.

Man muß also die Datei fsbus.fb2 (oder wie sie bei Euch heißt) mit dem Editor öffnen und dann an der richtigen Stelle die "0" einfügen.
Wo das ist? Nun legt doch einfach mal einen Switch mit dem Namen TEST an. Bei VID tragt Ihr einfach mal 30 ein und speichert.
Im Editor öffnen, nach Test suchen und dort hinter, wo 30 steht, mal die 0 eintragen.
Abspeichern, schließen und FsBus starten. Dann geht es!
So, und nun mal sehen, ob wir die Letten putzen.

Gruß
Thorsten

npbosch 20.06.2004 00:50

"L+120,120;L-120,120;K+E;K-E"

Das ist mir gelungen.

Nun versuche ich wieder ein keyevent zu einen Client ins Netz zu schicken.
Das ist mir aber noch nie gelungen.

Mus der Name des client PC's auch eingetragen werden in diesem string?
zB:
client1;L+120,120;L-120,120;K+E;K-E

(Ich habe die fsclient sw auf dem client. Im router CID is 2, und auf diesem client im fsclient CID = 2)
Aber was ich auch versuch , nix.

grus


Norbert

npbosch 20.06.2004 16:24

Habe schon einige vortschritte gemacht aber noch immer nicht was ich möchte.

Wie gesagt Keyevent nach dem server gelingt jetzt (mit programmieren mouseclick um das fenster das focus zu geben).

(Wenn man CID nach 1 ändert und dann wieder nach 0 functioniert es nicht mehr, dann muss man die .fsb Datei laden oder manual ändern wie hier oben beschrieben, dann functioniert es wieder)

------
Nun keyevent zum Client.

neuen keyevent gemacht
CID=2
On sequence: WN;K+E;K-E

In Fsclient.ini:

[FSClient]
CID=2

[Notepad]
TopWindowChar="n"
Executable="c:\windows\notepad.exe"
WorkingDirectory="c:\"
Activate=1
Terminate=1
FSBUS_Background=1

Habe im Client FSclient und Notepad offen, aber es passiert nichts.
Habe auch FS2004(FSUIPC/wideserver) und wideclient im client activiert (weis nicht ab das benötigt ist, aber das macht auch keinen unterschied, in beide Fälle nichts).

Wenn einer die Lösung hat?

gruss

Norbert


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag