Autor Wątek: Aplikacja DomowyKokpit  (Przeczytany 62040 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #105 dnia: Lutego 06, 2010, 12:37:55 »
codeking,
 jeśli podłącze płytę Skalarki do kompa w sieci, muszę przerobić skrypt? Czy wystarczy konfiguracja DK w sieci i zadziała? ( pytam zanim zacznę test)
 Jeszcze jedna rzecz, skróty klawiaturowe raczej nie zadziałają w sieci?

Odp: Aplikacja DomowyKokpit
« Odpowiedź #106 dnia: Lutego 06, 2010, 13:35:46 »
Jeśli masz gotowe skrypty to należy przerobić je np. tak:
 - w skrypcie dla serwera (DK uruchomiony na komputerze z symulatorem) należy zamienić nazwę modułu w deklaracjach zmiennych z płytki SkalarkiIO na nazwę modułu DataReceiver
 - w skrypcie dla klienta (DK uruchomiony na komputerze z podpiętą płytką SkalarkiIO) w zdarzeniach zmiany zmiennych z płytki SkalarkiIO wykorzystujesz funkcję DataSender:SendVariable(...) i wysyłasz wartość danej zmiennej

Trochę skomplikowanie to chyba opisałem. Napisz dokładniej jak chcesz mieć to zrobione, tzn. gdzie masz podpiętą płytkę SkalarkiIO.

Jeśli chodzi o klawiaturę to nie ma problemu. Poniżej dwa przykładowe skrypty (dla serwera i dla klienta). Z klienta wysyłana jest informacja do serwera jaki skrót klawiaturowy ma być wykonany na serwerze.
script "Klawiatura - serwer"
{
    // zmienna przechowuje "klawisze" do naciśnięcia
    variable $klawisze { direct = in; module = "DataReceiver"; id = "klawisze"; type = string; }
   
    // zmienna informująca o konieczności wysłania skrótu klawiaturowego
    variable $sygnal { direct = in; module = "DataReceiver"; id = "sygnal"; type = bool; }
   
    variable_changed $sygnal
    {
        KeyboardOutput:SendShortcut( $klawisze );
    }
}

script "Klawiatura - klient"
{
    // zmienna informująca serwer o konieczności wysłania skrótu klawiaturowego
    variable $sygnal { direct = out; module = "DataSender"; id = "sygnal"; type = bool; }
   
    // przycisk (z płytki SkalarkiIO)
    variable $usb_input_000 { module = "SkalarkiIO"; id = "usb:input_000"; type = bool; direct = in; }
   
    variable_changed $usb_input_000
    {
        // wysłanie skrótu klawiaturowego na serwer
        DataSender:SendVariable( "klawisze" , "^p" );
       
        // poinformowanie serwera o konieczności wykonania skrótu klawiaturowego
        $sygnal = Not( $sygnal );
    }
}

Skrypt może wydać się dziwny ze względu na tą dodatkową zmienną $sygnal. Musi być taka zmienna bo samo wysyłanie zmiennej $klawiatura i wykonywanie skrótu klawiaturowego w zdarzeniu zmiany zmiennej $klawiatura nie działałoby w przypadku konieczności wysłania tego samego skrótu kilka razy pod rząd (wartość zmiennej nie była by zmieniana więc nie generowałoby się zdarzenie zmiany wartości). Z tego powoduje jest dodany "strażnik" w postaci zmiennej $sygnal. Każda zmiana wartości tej zmiennej powoduje wykonanie skrótu.

Moduł daje spore możliwości "rozrzucenia" sprzętu na kilka komputerów i można to zrealizować na wiele sposobów.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #107 dnia: Lutego 06, 2010, 15:20:42 »
Jeśli jest tak jak myślę, to rozwiązałeś problem użycia Mjoy w Falconie dla włączników Toggle.
Pomysł jest taki:
Na kompie z Falconem, DK  stawiam jako ( nazwijmy to umownie) DataReceiver.
Na kompie w sieci podłączam Mjoy i DK jako DataSender.
Co mi to da? Falcon nie będzie wiedzieć o istnieniu Mjoy, ten będzie na innym kompie. Nie będzie się nic blokować w grze bo ta będzie otrzymywać skróty z DK nie widząc Mjoya.
Mam nadzieje, że rozumiesz co chcę zrobić. Oczywiście to jeszcze jest teoria, nie poparta testami. Popraw mnie jeśli się mylę.
Test zrobię jeszcze dziś.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #108 dnia: Lutego 06, 2010, 16:24:17 »
Tak, w tym przypadku wykorzystasz wszystkie przyciski (switch i toggle) z MJoy'a do sterowania Falcon'em poprzez skróty klawiaturowe.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #109 dnia: Lutego 06, 2010, 19:43:57 »
codeking,
 kilka pytań:
moja konfiguracja adresu serwera to:
IP 192.168.2.2
Port 2222
Tak zostawiam chyba jest dobrze. Chcę zrobić mały teścik z dwoma skrótami Alt+L oraz Ctrl+Alt+L. Do laptopa podłączyłem Mjoy do którego podłączyłem dwa toggle, ale tutaj uwaga! Nie do wyjścia toggle które oferuje Mjoy tylko do przycisków( nr wyjścia np. 1 i 2 ) Teraz pytanie, możesz zrobić  i wrzucić tutaj skrypt który wyśle te dwa skróty na komp z Falconem? Będzie to wielkie ułatwienie i pozwoli zrozumieć działanie tego modułu.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #110 dnia: Lutego 07, 2010, 11:43:34 »
Przykładowe skrypty w moim poprzednim poście to dokładnie to czego potrzebujesz jako przykładu.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #111 dnia: Lutego 07, 2010, 17:47:19 »
Zrobiłem testy z nowym modułem.Połączenie sieciowe jest o.k.Po stronie odbiornika mam komunikat w log:
Cytuj
Wczytywanie skryptów z pliku 'C:\Program Files\DomowyKokpit_1_0_2_6\DomowyKokpit_1_0_2_6\Network-serwer.hcps'...
Ilość wczytanych skryptów: 1.
   "Network - serwer"
Uruchamianie skryptu 'Network - serwer'...
Uruchomiono wątek skryptu...
 # DataReceiver : Próba uruchomienia serwera: 192.168.0.1:21142
 # DataReceiver : Tylko jedno użycie każdego adresu gniazda (protokół/adres sieciowy/port) jest normalnie dozwolone
1.W związku z czym pytanie: co ozn.to ostatnie zdanie w komunikacie?
2.Wpisałem 2 przykłady podane na stronie codeking network-klient oraz network-serwer.Co powinienem otrzymać na odbiorze?
3.Pytanie trywialne.Kopiuję przykład z strony codeking do notatnika i mam plik .txt.Co zrobić aby był .HCPS?
Dane sieciowe moich pc:nadajnik 192.168.0.2 port 21142;odbiornik 192.168.0.1 port 21142.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #112 dnia: Lutego 07, 2010, 18:01:46 »
vito,
wpisz tylko IP. Port zostaw 2222, u mnie tak to działa.

3.Pytanie trywialne.Kopiuję przykład z strony codeking do notatnika i mam plik .txt.Co zrobić aby był .HCPS?
Ja to zrobiłem tak:
Zrobiłem kopie pliku np. TestFalcon w inne miejsce, zmieniłem nazwę, otworzyłem w notatniku, skasowałem zawartość i wstawiłem co trzeba :). Tak powstał mój plik który powędrował do katalogu DomowyKokpit
« Ostatnia zmiana: Lutego 07, 2010, 18:10:17 wysłana przez EGHI »

Odp: Aplikacja DomowyKokpit
« Odpowiedź #113 dnia: Lutego 07, 2010, 18:38:17 »
1.W związku z czym pytanie: co ozn.to ostatnie zdanie w komunikacie?
To znaczy, że adres jest już wykorzystywany, pewnie miałeś uruchomiony jakiś program (DK?), który wykorzystywał port 21142.

2.Wpisałem 2 przykłady podane na stronie codeking network-klient oraz network-serwer.Co powinienem otrzymać na odbiorze?
Na kliencie, w module testowym (okno konfiguracji) wpisz cokolwiek do zmiennej "string_00", wpisany tekst zostanie wysłany do serwera i pojawi się w oknie Log.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #114 dnia: Lutego 07, 2010, 19:07:40 »
EGHI robię dokładnie tak jak Ty,ale zastanawiam się w jakim programie jest dopisywane rozszerzenie HCPS.
Port 21142 jest taki sam na obu PC,dlatego myślałem,że to jest powodem komunikatu.
Test wykonam i zastanowię się nad testem MJoya oraz LCD,to może być ciekawa aplikacja.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #115 dnia: Lutego 07, 2010, 19:19:50 »
Otwórz Notatnik, wklej skrypt, Plik -> Zapisz jako, Zapisz jako typ -> Wszystkie pliki, jako nazwę wpisz skrypt.hcps i gotowe.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #116 dnia: Lutego 07, 2010, 19:23:39 »
Nie wiedziałem,że to takie proste,dzięki.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #117 dnia: Lutego 07, 2010, 19:38:07 »
vito,
na kompie klient, podłącz Mjoy i wrzuć ten skrypt:

script "Klawiatura - klient"
{
    // zmienna informująca serwer o konieczności wysłania skrótu klawiaturowego
    variable $sygnal { direct = out; module = "DataSender"; id = "sygnal"; type = bool; }
   
    // przycisk (MJOY)
   variable $MJ16_przycisk_017 { module = "GameControllersInput"; id = "MJ16:przycisk_017"; type = bool; direct = in; }
   variable $MJ16_przycisk_018 { module = "GameControllersInput"; id = "MJ16:przycisk_018"; type = bool; direct = in; }
   variable $MJ16_przycisk_019 { module = "GameControllersInput"; id = "MJ16:przycisk_019"; type = bool; direct = in; }


   variable_changed $MJ16_przycisk_017
    {
        // gear down klawisz g
        DataSender:SendVariable( "klawisze" , "g" );
       
        // poinformowanie serwera o konieczności wykonania skrótu klawiaturowego
        $sygnal = Not( $sygnal );
    }

   variable_changed $MJ16_przycisk_018
    {
        // Brake switch klawisze Alt+P
        DataSender:SendVariable( "klawisze" , "%p" );
       
        // poinformowanie serwera o konieczności wykonania skrótu klawiaturowego
        $sygnal = Not( $sygnal );
    }

   variable_changed $MJ16_przycisk_019
    {
        // Lights Landing klawisze Ctrl+Alt+L
        DataSender:SendVariable( "klawisze" , "^%l" );
       
        // poinformowanie serwera o konieczności wykonania skrótu klawiaturowego
        $sygnal = Not( $sygnal );
    }
   
}

Do Mjoy podłącz toggle 3 sztuki. Musisz  sprawdzić do których wejść i zmienić numer w skrypcie. Uruchom DK serwer oraz klient, odpal Falcona (najlepiej RampStart)  i obserwuj panel LG. Skrypt zrobiony z do profilu keystrokes-of
Moja teoria potwierdzona, teraz z każdego przycisku Mjoy można zrobić toggle  :001:

Odp: Aplikacja DomowyKokpit
« Odpowiedź #118 dnia: Lutego 07, 2010, 21:53:51 »
To jest rewelacja.Zawsze brakowało toggle.Robimy postępy w naszych projektach.Czy jest skrypt dla PC gdzie jest Falcon?

Odp: Aplikacja DomowyKokpit
« Odpowiedź #119 dnia: Lutego 07, 2010, 22:13:04 »
vito,
 codeking podał ten skrypt jako przykład:

script "Klawiatura - serwer"
{
    // zmienna przechowuje "klawisze" do naciśnięcia
    variable $klawisze { direct = in; module = "DataReceiver"; id = "klawisze"; type = string; }
   
    // zmienna informująca o konieczności wysłania skrótu klawiaturowego
    variable $sygnal { direct = in; module = "DataReceiver"; id = "sygnal"; type = bool; }
   
    variable_changed $sygnal
    {
        KeyboardOutput:SendShortcut( $klawisze );
    }
}

Ten uruchom na kompie z Falconem, na kompie  z Mjoy ten mój.

Udało mi się odpalić Mjoy na innym kompie oraz Skalarki na tym z Falconem  za pomocą jednego skryptu. Teraz już wiem jak to działa, to jest coś wspaniałego, możliwości ogromne, można rozmieścić sprzęt na kilka komputerów. Nie trzeba będzie żadnych dodatkowych portów USB do jednego kompa, brak LPT to też już nie jest problem.

codeking!!!!! Czapka z głowy!!! :karpik