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

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

Odp: Aplikacja DomowyKokpit
« Odpowiedź #60 dnia: Stycznia 12, 2010, 18:19:19 »
Jeszcze jeden przykład pisania skryptów.Gdybym miał platformę SK to mógłbym wyświetlić informację na 7-seg.LED.W moim przypadku mogę sprawdzać działanie DK w Falconie
Cytuj
// test modulu FalconData  test zm1
script "Falcon"
{
   variable $kias { module = "FalconData"; id = "kias"; type = double; direct = in; }
   variable $rpm
   {
      direct = in;
      module = "FalconData";
      id = "rpm";
      type = double;      
   }
   
   
   variable_changed $rpm
   
   {
      
      Log("RPM=" + ToString(ToInt($rpm)));
   
   }

   variable_changed $kias
   {
      
      Log("prędkość=" + ToString(ToInt($kias)));
   
   }
}
Uwaga:
polskie znaki są wyświetlane jako kwadraty.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #61 dnia: Stycznia 12, 2010, 20:53:48 »
Panowie,
pytanie za 100 pkt. Czy da się coś zrobić żeby Falcon w swoich opcjach (setup/ controlles) nie rozpoznał Mjoy? Jakoś to zablokować ?
Pytam w tym wątku bo to jest związane z DK.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #62 dnia: Stycznia 12, 2010, 21:54:12 »
Możesz to rozwinąć,w setup Falcona możemy wybrać sterowniki,czyli możemy pominąć MJoya.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #63 dnia: Stycznia 12, 2010, 22:25:36 »
Tak się nie uda. Dopóki Mjoy jest na liście kontrolerów w setup Falcona, z mojego planu nic.
Może napiszę co mi chodzi. Podczas testowania SkalarkiIO i DK zauważyłem, że może być uruchomionych ( na stałe)więcej niż jedno wejście i nic się nie blokuje w Falconie. Dlatego do każdego wejścia można podłączyć przełącznik stabilny. Warunek jest jeden - Falcon nie może wiedzieć o istnieniu kontrolera w komputerze, natomiast DK powinien. Dlaczego Mjoy? Ponieważ ma tylko 16 wejść stabilnych reszta to przyciski. Jest ich dużo a my potrzebujemy więcej Toggle. Z wszystkich button-ów Mjoy-a przy pomocy DK, można zrobić sterowanie toggle. Taki sam skrypt, jakie pisaliśmy w tym wątku, tylko zmieniamy module na Mjoy.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #64 dnia: Stycznia 12, 2010, 23:21:30 »
Rozumiem o co Tobie chodzi,też o tym myślałem,nawet pytałem codeking czy jest to możliwe.Teraz gdy o tym myślę to dochodzę do wniosku,że to chyba nie ma sensu.Bezpiecznie jest pozostawić Mjoya z taką mapą przycisków i przełączników jaką ma zaprogramowaną.Można jedynie wyeliminować SVMapper i zastosować DK.Co do przełączników to platforma skalarki ma 128 wejść i ma możliwość rozbudowy.MJoye mogą uzupełniać platformę.Pozostaje jeszcze OC z możliwością zastosowania 4x72 wejścia dla jednej karty USB Expansion oraz 4 kart Master,gdzie można zastosować więcej tych kart.Możliwości jest dużo.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #65 dnia: Stycznia 13, 2010, 00:08:32 »
Nie uszkodzi to Mjoya. Nic się nie stanie kiedy przyciski będą włączone na stałe. Np. w FS + Mjoy przy pomocy FSUIPC możemy zaprogramować Toggle. Z resztą.. z przycisków byle pada, joya w FSUIPC jest to możliwe. Falcon i podobne gry nie dają takiej możliwości. Gdyby tylko udało się "wyłączyć" kontroler w Setup Falcona, problem małej ilości przełączników w Mjoy rozwiąże DK. Korzystne rozwiązanie dla posiadacze Mjoy a  DomowyKokpit  stanie się  takim "fsuipc" made in Poland  :004:

Odp: Aplikacja DomowyKokpit
« Odpowiedź #66 dnia: Stycznia 13, 2010, 23:59:39 »
Z tymi światłami w Falcon'ie to są jakieś dziwne rzeczy, są problemy ze światłami położenia podwozia, u EGHI bardzo szybko są raportowane i to od razu 3 naraz - brak synchronizacji z tym co widać w Falcon'ie. Trzeba to jakoś wyprostować.
To pewno jest tak samo jak w FSX. Aktywny bit tylko sygnalizuje fakt wypuszczenia bądź schowania podwozia, to są dwie skrajne wartości. Ale przecież pomiędzy rozpoczęciem otwierania podwozia a zakończeniem coś się dzieje, czyli podwozie się porusza. W fsx jest dostępna zmienna określająca położenie podwozia w %, ale w falcon chyba nie ma. Więc chyba światełka na panelu są programowo opóźniane, żeby dać żądany efekt, a to znaczy że wystarczy w skrypcie opóźnić odpalenie odpowiednich LED-ów o czas równy temu w FALCON.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #67 dnia: Stycznia 14, 2010, 13:30:44 »
Kolejny sukces programu KD.Działa moduł LCD.

Dzięki codeking.Teraz mogę wykonać testy.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #68 dnia: Stycznia 15, 2010, 09:40:28 »
Witam,ponieważ mam uruchomiony moduł LCD,chciałbym rozpocząć testy z tym modułem.Próba testu prostego skryptu nie powiodła się.Otrzymałem następujący komunikat.
Cytuj
Wczytywanie skryptów z pliku 'C:\Program Files\DomowyKokpit_1_0_2_6\DomowyKokpit_1_0_2_6\TestFalcon zm3.hcps'...
Ilość wczytanych skryptów: 1.
   "Falcon"
Uruchamianie skryptu 'Falcon'...
Uruchomiono wątek skryptu...
Błąd działania skryptu:
System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
   w LCDOnLPT.LCDOnLPTModule.WriteControl(LCDSeq lcd, Int32 control)
   w LCDOnLPT.LPTLCD.Initialize()
   w LCDOnLPT.LCDOnLPTModule.Start(StartStopType startType)
   w DomowyKokpit.Main.ProcessingThread(Object p)
Zakończono działanie skryptu
koniec cytatu
Skrypt
Cytuj
// test modulu FalconData  test zm3 test LCD
script "Falcon"
{
   variable $rpm
   {
      direct = in;
      module = "FalconData";
      id = "rpm";
      type = double;      
   }
   variable $a1
   {
      module = "LCDOnLPT";
      id = "a1";
      type = string;
      direct = out;
   }   
   variable_changed $rpm
   {
   
      Log("RPM=" + ToString($rpm));
       $a1= ToString($rpm);
   }
}
Codeking czy możesz powiedzieć co zrobiłem źle.Przy okazji mam do ciebie prośbę czy możesz na swojej stronie umieścić przykład skryptu,który realizuje np.wyświetlanie DED lub PFD na LCD.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #69 dnia: Stycznia 15, 2010, 10:16:04 »
Sprawdzę to wieczorem, postaram się pokazać przykładowy skrypt w weekend.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #70 dnia: Stycznia 16, 2010, 11:40:01 »
Witam,po krótkiej analizie dotyczącej modułu LCD oraz jego zastosowania doszedłem do kilku wniosków.Na wstępie jedna uwaga.Ponieważ nie jestem programistą to moje wnioski mogą być niewłaściwe,dlatego proszę programistów o ich korekcję.
1.Moduł obsługujący wyświetlacze znakowe może mieć ograniczone zastosowanie w symulatorach.Wynika to z jego skromnych możliwości wyświetlania znaków a nie pikseli.
2.W aplikacjach gdzie zastosujemy ten moduł oraz LCD mogą wystąpić dosyć skąplikowane skrypty.Wyjaśnię o co mi chodzi.Załóżmy,że mamy wyświetlacz 2x16.Możemy wyobrazić sobie ten wyświetlacz jako tablicę znakową z 16 kolumnami oraz 2 wierszami.Załóżmy,że  będziemy zmieniać nazwijmy to umownie strony na wyświetlaczu.Czyli mamy np.4 wzorce tych stron,gdzie w tych  wzorcach mogą być liczby zamienione na tekst oraz informacja tekstowa.Liczby oraz tekst są w określonych miejscach w tablicach tych wzorców.Wzorzec jest wywoływany na przykład przełącznikiem.
Już z tego wynika,że aby to zrealizować trzeba trochę wysiłku,aby napisać skrypt realizujący to zadanie.Codeking w jednym z przykładów napisał taki skrypt do FSX.
3.Są aplikacje np.DED w Falconie gdzie nie można tego zrealizować za pomocą wyświetlacza znakowego.Pomijam fakt braku linii oraz liczby znaków (potrzeba 5x25).
Jakie można wyciągnąć wnioski.
1.Tam gdzie to jest niemożliwe trzeba zastosować wyświetlacze graficzne np.DED w Falconie.
Przy okazji pytanie do codeking.W pamięci współdzielonej DEDLine mam informację dotyczącą 5 linii tekstowych to czy jest tam pełna informacja na podstawie,której można sterować wyświetlacz graficzny czy tylko znakowy?
2.Pytanie drugie wiąże się z pierwszym.Ponieważ gotowe rozwiązania na wyświetlaczach graficznych są bardzo drogie to pomyślałem o pewnym uproszczeniu.Dotyczy to PFL w Falconie.Informacja w PFL jest mniej skąplikowana od DED,dlatego prawdopodobnie można zrobić proste wzorce tablic znakowych.Nie wiem jak z długością tablicy czy 20 wystarczy.Co do 5 linii to można to zrobić przełączając przełącznikiem tzn.wyświetlać linie od 1 do 4 lub od 2 do 5.To taki mój pomysł na rozwiązanie PFL.Co do DED to sprawa jest przesądzona,tak myślę.
Na konie zdjęcie z moich nieudanych prób z kartą USB LCD z OC.Dzisiaj rozpocząłem testy,ale nieudane.Napisałem do forum OC prośbę o pomoc.Ta karta wykonuje to samo co moduł codeking,tylko jest podpięta do USB.


Odp: Aplikacja DomowyKokpit
« Odpowiedź #71 dnia: Stycznia 16, 2010, 12:23:16 »
Na początek informacja - na stronie http://fs.angus.foxnet.pl udostępniłem moduł LCDOnLPT. Poprawiłem błąd zgłoszony przez vito_zm.

Teraz odpowiedzi:

2.W aplikacjach gdzie zastosujemy ten moduł oraz LCD mogą wystąpić dosyć skąplikowane skrypty.
I tak, i nie. Wszystko zależy jak od tego co i jak chcemy wyświetlać.

Już z tego wynika,że aby to zrealizować trzeba trochę wysiłku,aby napisać skrypt realizujący to zadanie.Codeking w jednym z przykładów napisał taki skrypt do FSX.
Tak, skrypt FS-MultiRadio wygląda przerażającą. Ale gdy się bliżej przyjrzeć, to obsługa wyświetlacza sprowadza się tylko do przypisania odpowiedniej wartości do zmiennych reprezentujących obszary znakowe. Cała reszta to sterowanie radiami w FS. I tak naprawdę, to obsługa wyświetlacza w tym skrypcie sprowadziła się do deklaracji zmiennych i przypisaniu wartości w kilku funkcjach UpdateXXX np. UpdateXPDR($variable).

Przy okazji pytanie do codeking.W pamięci współdzielonej DEDLine mam informację dotyczącą 5 linii tekstowych to czy jest tam pełna informacja na podstawie,której można sterować wyświetlacz graficzny czy tylko znakowy?
Dane nadają się do wyświetlacza alfanumerycznego, jednak wymaga to jeszcze dopracowania, ponieważ zauważyłem, że DED (PFL pewnie też) zawiera znaki specjalne, które są źle interpretowane przez wyświetlacz (nie posiadają ich poprawnego odwzorowania). Trzeba więc dorobić funkcję definiowania znaków na wyświetlaczu (HD44780 pozwala na zdefiniowanie chyba 8 znaków własnych), być może niektóre już są zdefiniowane, trzeba sprawdzić w dokumentacji). Potrzebna będzie jeszcze funkcja mapowania znaków odczytanych z Falcon'a na odpowiednie znaki na LCD (to jest do zrobienia).

2.Pytanie drugie wiąże się z pierwszym.Ponieważ gotowe rozwiązania na wyświetlaczach graficznych są bardzo drogie to pomyślałem o pewnym uproszczeniu.Dotyczy to PFL w Falconie.Informacja w PFL jest mniej skąplikowana od DED,dlatego prawdopodobnie można zrobić proste wzorce tablic znakowych.Nie wiem jak z długością tablicy czy 20 wystarczy.Co do 5 linii to można to zrobić przełączając przełącznikiem tzn.wyświetlać linie od 1 do 4 lub od 2 do 5.To taki mój pomysł na rozwiązanie PFL.
Pomysł jest OK, ale wiadomo - wrażenia trochę zepsuje takie przełączanie, i pewnie trzeba by jeszcze przewijać kolumny (wyświetlacz ma 20 a DED ma 25) - może to zrobić pseudo automat w skrypcie. Jednak można się rozglądnąć za jakimś wyświetlaczem graficznym, na którym da się zrealizować DED i PFL bez konieczności przełączania ekranów itd. Taki wyświetlacz można by też ciekawie wykorzystać w FS. Problem stanowi interfejs sprzętowy LCD<->PC. Jeśli takowy będzie to chętnie zaimplementuje moduł do obsługi takich wyświetlaczy do DK.

A poniżej pokazuje prosty skrypt do wyświetlania DED w module testowym:
script "DED - LCD"
{
    // linie tekstu z modułu testowego (należy podmienić na zmienne z modułu LCDOnLPT)
    variable $out_string_00 { module = "TestModule"; id = "out:string_00"; type = string; direct = out; }
    variable $out_string_01 { module = "TestModule"; id = "out:string_01"; type = string; direct = out; }
    variable $out_string_02 { module = "TestModule"; id = "out:string_02"; type = string; direct = out; }
    variable $out_string_03 { module = "TestModule"; id = "out:string_03"; type = string; direct = out; }
    variable $out_string_04 { module = "TestModule"; id = "out:string_04"; type = string; direct = out; }

    // DED, tablica 5 wierszy wartości typu string
    variable $dedLines
    {
        direct = in;
        module = "FalconData";
        id = "DEDLines";
        type = string_array;
    }
   
    // zdarzenie zmiany wartości DED czyli zawartości wyświetlacza DED w Falcon
    variable_changed $dedLines
    {
        // przypisanie odpowiednich wartości
        // funkcja GetValue(<tablica>, <indeks>) służy do pobierania wartości z tablicy
        $out_string_00 = GetValue( $dedLines , 0 );
        $out_string_01 = GetValue( $dedLines , 1 );
        $out_string_02 = GetValue( $dedLines , 2 );
        $out_string_03 = GetValue( $dedLines , 3 );
        $out_string_04 = GetValue( $dedLines , 4 );
    }
}

Odp: Aplikacja DomowyKokpit
« Odpowiedź #72 dnia: Stycznia 16, 2010, 16:50:09 »
Jest to optymistyczne co napisałeś.Parę uwag na gorąco.
Program wyświetlania DED w module testowym .Znaki szczególne to np.znak *.W miejsce takiego znaku jest kwadrat.Nie ma podświetleń,w DED niektóre litery lub cyfry sa podświetlone.To nie jest problemem,może być bez podświetleń.
Jak uruchomię kartę z OC oraz FAST to napiszę jak to wygłąda u Michi,z tego co wiem to też nie ma poświetleń.Pytanie jak sobie poradził z ilością kolumn oraz wierszy.
Widziałem Twój film gdzie jest wyświetlany DED na LPT.
Cytuj
linie tekstu z modułu testowego (należy podmienić na zmienne z modułu LCDOnLPT)
Czy możesz to rozwinąć chciałbym zrobić test z fizycznym LPT.
Ostatnia sprawa dotyczy pliku z Twojej strony.Daje komunikat.
Ten stary LCDOnLPTv10 działa pawidłowo.Czasem daje podobny komunika,ale gdy się pomylę przy edycji zmiennej w moule LPT (nacisnę mysz w inne okienko,pisałem o tym na pw).


Odp: Aplikacja DomowyKokpit
« Odpowiedź #73 dnia: Stycznia 16, 2010, 17:06:00 »
Chciałbym uzupełnić ostatni wpis.Jeśli chodzi o ten komunikat to prawdopodobnie powstaje jeśli naciśniemy jakiś przycisk w programie w niewłaściwej kolejności.Może reakcja jest prawidłowa.Myślę,że codeking może to wyjaśnić.Wydaj się,że ten nowy plik zachowuje się  podobnie jak stary LCDOnLPTv10,musiałbym zrobić dodatkowe testy.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #74 dnia: Stycznia 16, 2010, 17:39:16 »
Widziałem Twój film gdzie jest wyświetlany DED na LPT.Czy możesz to rozwinąć chciałbym zrobić test z fizycznym LPT.
Chodzi o to, że konfigurujesz sobie obszar tekstowy na cały wiersz wyświetlacza. Możesz nadać mu id "out_string_00". Podmieniasz w skrypcie deklarację zmiennej $out_string_00 na tą z moduły LCDOnLPT.