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

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

Odp: Aplikacja DomowyKokpit
« Odpowiedź #210 dnia: Października 24, 2010, 17:41:37 »
Ja to zrobiłem w uproszczony sposób nie wyświetlając zmiennej DISPRDY.Drugie uproszczenie to wyświetlanie NOGO a konkretnie kiedy jest wyświetlane.Chaff oraz Flare są wyświetlane na 7segLED.Reasumując mam 2 diody LED oraz 2 wyświetlacze 7segLED 2 pozycyjne.
To co proponuje EGHI moim zdaniem jest do zrealizowania na LCD 2x40.Mamy wszystkie zmienne do dyspozycji.Jedyny problem to napisać skrypt.Co do mnie to podejmuję się sprawdzić czy będzie on działał.Mogę fizycznie podpiąć do SimOUT (chociaż jest już zamontowany w kokpicie) wyświetlacz dorabiając interfejs a konkretnie przejściówkę.Co do skryptu to pomoc Codeking byłaby najlepszym rozwiązaniem.
Co mamy do dyspozycji:
NO GO      7 pozycja w rejestrze LightBits2
GO      6 pozycja w rejestrze LightBits2
DISPRDY   9 pozycja w rejestrze LightBits2   
oraz zmienne typu duble FlareCount oraz ChaffCount
Co trzeba zrobić.Zamienić informację w rejestrze LightBits2 poz.6,7 oraz 9 na string GO,NO GO oraz DISPRDY oraz zmienne typu duble  FlareCount, ChaffCount na string z FormatNumber(.....,"00").
Długość stringów jest stała i określona co ułatwia sprawę.Trzeba tylko określić gdzie mają w/w zmienne być umieszczone w LCD.
Reasumując EGHI musisz określić na jakich pozycjach mają być umieszczone zmienne oraz w jakich warunkach zapalaja się NO GO,GO oraz DISPRDY.
FlareCoun oraz ChaffCount zawsze są wyświetlane.Ja to nie analizowałem,można poprosić specjalistów na naszym forum co do warunków wyświetlania tych 3 zmiennych.Są różnice w AF oraz OF tak mi się wydaje.
Jeśli Codeking zadeklaruje pomoc w napisaniu skryptu to można ten temat próbować zrealizować.Temat ciekawy,ale wymaga współpracy kilku kolegów.Mam nadzieję,że nic nie pominąłem.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #211 dnia: Października 24, 2010, 19:41:30 »
Z tego wynika,że w moim przypadku muszę mieć informację nie tylko,że jest aktualizacja do pobrania,ale także które pliki mam kopiować.Dzięki za wyjaśnienia.
Jeszcze jedna sprawa.Załóżmy,że nie aktualizuję przez dłuższy czas i w między czasie były np.3 aktualizacje dotyczące różnych modułów.Czy aktualizując HSC automatycznie program wie,które moduły ma aktualizować?
Prawdopodobnie porównując wersje modułów można to zrobić prawidłowo.Przepraszam,że pytam ale takie sytuacje mogą mieć miejsce.

Na szybko pod adresem http://homesimcockpit.com/update/update.xml jest lista plików dodanych/podmienionych przez wszystkie aktualizacje (lista zawiera tylko najnowsze wersje plików). Nie ma potrzeby zachowania ciągłości aktualizacji. Na chwilę obecną były dwie aktualizacje, jeśli pobierzemy teraz starą wersję programu i włączymy aktualizacje to obydwie aktualizacje będą zastosowane.

Odnośnie skryptu do Falcona i LCD - jak będą problemy to oczywiście pomogę.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #212 dnia: Października 24, 2010, 20:24:46 »
vito,
mamy do dyspozycji z rejestru NO GO, GO, DISPENSE RDY. Na wyświetlaczu STATUS można to podświetlić diodami i po kłopocie, jednak w miejscu DISPRDY jest też wyświetlane AUTO DEGR (nie mam pewności czy działa to w OF).
Poniżej STATUS są cztery wyświetlacze 01, 02, CH i FL. Tutaj mogą być 7-seg, ale podczas awarii na wszystkich czterech jest wyświetlana informacja PROG FAIL GO BYP. To działa w MFDEX, czyli w  SharedMem jest odpowiednia zmienna.
To główny powód dlaczego chcę zastosować wyświetlacz  nie diody i 7-seg.
Na początek prośba do codekinga ( taki mały test). Wiemy, że NO GO  to  7 pozycja w rejestrze LightBits2, czyli mamy zmienną. Czy da się zrobić tak, żeby napis NO GO pojawiał się i znikał na wyświetlaczu?


Odp: Aplikacja DomowyKokpit
« Odpowiedź #213 dnia: Października 25, 2010, 06:33:02 »
Cytuj
Poniżej STATUS są cztery wyświetlacze 01, 02, CH i FL. Tutaj mogą być 7-seg, ale podczas awarii na wszystkich czterech jest wyświetlana informacja PROG FAIL GO BYP. To działa w MFDEX, czyli w  SharedMem jest odpowiednia zmienna
EGHI jak można za symulować tą sytuację w AF.
Cytuj
w miejscu DISPRDY jest też wyświetlane AUTO DEGR (nie mam pewności czy działa to w OF).
oraz tą.
Sprawdzę to u siebie.Ta zamiana nie powinna być problemem.Ja by to uściślił w ten sposób
if
  NO GO (zmienna LightBits2(7))
   to wyświetli string " NO GO "
else
  zgaś string  " NO GO "
i podobnie dla zmiennej GO  LightBits2(6)
Stringi mogą się rozpoczynać od pierwszej pozycji na wyświetlaczu.
Cytuj
Poniżej STATUS są cztery wyświetlacze 01, 02, CH i FL. Tutaj mogą być 7-seg, ale podczas awarii na wszystkich czterech jest wyświetlana informacja PROG FAIL GO BYP. To działa w MFDEX, czyli w  SharedMem jest odpowiednia zmienna

Będę szukał tej zmiennej.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #214 dnia: Listopada 12, 2010, 17:53:19 »
Bardzo proszę o przejrzenie mojego skryptu obsługującego panel mcp. Pojawia się dziwny problem. Jeśli ruszę któryś z przycisków na wirtualnym panelu (myszą na przykład), lub jeśli zostanie on automatycznie przełączony (np. kiedy wyłączam autothrottle to automatycznie wyłącza się też Hold speed), to HSC nie potrafi ponownie wysłać rozkazu z mojego kopitu (z mjoya).

Pojawia się błąd: # FSDataOutput : Błąd (10) podczas wysyłania wartości do symulatora.
Tak jakby HSC nie potrafił nadpisać zmiennej, która posiada już taką samą wartość. Ale piszę "jakby" bo wydaje mi się, że mój skrypt zabezpiecza przed taką sytuacją.

variable_changed $MJ16_przycisk_006
{
Log( "Hold Heading:" );
Log( $HdgHoldStatus );
if ( $MJ16_przycisk_006 == true )
{
if ( $HdgHoldStatus == 0 )
        {   
            SetWithSignal( $controlHdgHold , 1);
       }
       else
       {
           SetWithSignal( $controlHdgHold , 0);
       }
}
}

Czyli, jeśli HOLD HDG jest włączony, to wyłącz, jeśli nie to włącz... Nie powinno być więc problemów. Czyżby HSC nie było na bieżąco z danymi z symulatora? Powinienem w jakiś sposób pobierać wartość zmiennej przed wysłaniem rozkazu? Sam nie wiem. Jeśli "aktywuję" przycisk na wirtualnym panelu - tzn. włączę i wyłączę, to dalej skrypt działa jak należy...

Poniżej cały skrypt - niestety nie mogę dodać załącznika, bo forum nie przyjmuje.

// skrypt symulujący panel mcp
// 8.10.2010
// mcd(at)interia.eu

script "FS - cockpit"
{
    // zmienne tekstu wyświetlanego na wyświetlaczu

   
   
    // zmienna przechowująca ustawienie świateł landing lights

variable $i
{
type = int;
}   

   
 variable $testowa_line_1
    {
        module = "TestModule";
        id = "out:string_00";
        type = string;
        direct = out;
    }


variable $LandLights
    {
        module = "FSDataInput";
        id = "028C";
        type = int;
        direct = in;
       
    }   

    variable $AutopilotMasterStatus
    {
        module = "FSDataInput";
        id = "07BC";
        type = int;
        direct = in;
       
    }
    variable $AutoThrottleStatus
    {
        module = "FSDataInput";
        id = "0810";
        type = int;
        direct = in;
       
    }
       variable $AltHoldStatus
    {
        module = "FSDataInput";
        id = "07D0";
        type = int;
        direct = in;
       
    }
 variable $AltValue
    {
        module = "FSDataInput";
        id = "07D4";
        type = int;
        direct = in;
       
    }

      variable $HdgHoldStatus
    {
        module = "FSDataInput";
        id = "07C8";
        type = int;
        direct = in;
       
    }

 variable $HdgValue
    {
        module = "FSDataInput";
        id = "07CC";
        type = int;
        direct = in;
       
    }
   

    variable $FDStatus
    {
        module = "FSDataInput";
        id = "2EE0";
        type = int;
        direct = in;
       
    }
   variable $AirSpeedHoldStatus
    {
        module = "FSDataInput";
        id = "07DC";
        type = int;
        direct = in;
       
    }


    // zmienna do której zapisujemy rozkazy dla symulatora
    variable $controlAutopilotMaster
    {
        module = "FSDataOutput";
        id = "07BC";
        type = int;
        direct = out;
    }

     variable $controlAutoThrottle
    {
        module = "FSDataOutput";
        id = "0810";
        type = int;
        direct = out;
    }

variable $controlAltHold
    {
        module = "FSDataOutput";
        id = "07D0";
        type = int;
        direct = out;
    }
 variable $controlAltValue
    {
        module = "FSDataOutput";
        id = "07D4";
        type = int;
        direct = out;
    }
 variable $controlHdgHold
    {
        module = "FSDataOutput";
        id = "07C8";
        type = int;
        direct = out;
    }
 variable $controlHdgValue
    {
        module = "FSDataOutput";
        id = "07CC";
        type = int;
        direct = out;
    }
variable $controlFD
    {
        module = "FSDataOutput";
        id = "2EE0";
        type = int;
        direct = out;
    }
variable $controlAirSpeedHold
    {
        module = "FSDataOutput";
        id = "07DC";
        type = int;
        direct = out;
    }

    // zmienne przycisków i enkoderów joystick'a   
   
// - przycisk reset - 4 przycisk w swmapper czyli 003 tutaj
variable $MJ16_przycisk_003
{
module = "GameControllersInput";
id = "MJ16:przycisk_003";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_003
{

if ( $MJ16_przycisk_003 == true )
{

           SetWithSignal( $controlAltHold , 0);
   SetWithSignal( $controlAutopilotMaster , 0);
           SetWithSignal( $controlAutoThrottle , 1);
           SetWithSignal( $controlHdgHold , 0);
SetWithSignal( $controlAirSpeedHold , 0);

}
}



variable $MJ16_przycisk_000
{
module = "GameControllersInput";
id = "MJ16:przycisk_000";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_000
{

if ( $MJ16_przycisk_000 == true )
{
if ( $AltHoldStatus == 0 )
        {   
            SetWithSignal( $controlAltHold , 1);
       }
       else
       {
           SetWithSignal( $controlAltHold , 0);
       }

}
}
variable $MJ16_przycisk_001
{
module = "GameControllersInput";
id = "MJ16:przycisk_001";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_001
{

if ( $MJ16_przycisk_001 == true )
{
if ( $AutopilotMasterStatus == 0 )
        {   
            SetWithSignal( $controlAutopilotMaster , 1);
       }
       else
       {
           SetWithSignal( $controlAutopilotMaster , 0);
       }

}
}

//================FLIGHT DIRECTOR


variable $MJ16_przycisk_088
{
module = "GameControllersInput";
id = "MJ16:przycisk_088";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_088
{

   if ( $MJ16_przycisk_088 == true )
   {
           
if ($FDStatus == 0)
{
SetWithSignal( $controlFD , 1);
}
   }
         

}

variable $MJ16_przycisk_080
{
module = "GameControllersInput";
id = "MJ16:przycisk_080";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_080
{

   if ( $MJ16_przycisk_080 == true )
   {
           
if ($FDStatus == 1)
{
SetWithSignal( $controlFD , 0);
}
   }
         

}



//================AUTO THROTTLE
variable $MJ16_przycisk_081
{
module = "GameControllersInput";
id = "MJ16:przycisk_081";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_081
{

   if ( $MJ16_przycisk_081 == true )
   {
           
if ($AutoThrottleStatus == 0)
{
SetWithSignal( $controlAutoThrottle , 1);
}
   }
         

}

variable $MJ16_przycisk_089
{
module = "GameControllersInput";
id = "MJ16:przycisk_089";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_089
{

   if ( $MJ16_przycisk_089 == true )
   {
           
if ($AutoThrottleStatus == 1)
{
SetWithSignal( $controlAutoThrottle , 0);
}
   }
}

//================================HDG HOLD
variable $MJ16_przycisk_006
{
module = "GameControllersInput";
id = "MJ16:przycisk_006";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_006
{
Log( "Hold Heading:" );
Log( $HdgHoldStatus );
if ( $MJ16_przycisk_006 == true )
{
if ( $HdgHoldStatus == 0 )
        {   
            SetWithSignal( $controlHdgHold , 1);
       }
       else
       {
           SetWithSignal( $controlHdgHold , 0);
       }

}
}

//================================AIR SPEED HOLD
variable $MJ16_przycisk_005
{
module = "GameControllersInput";
id = "MJ16:przycisk_005";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_005
{

if ( $MJ16_przycisk_005 == true )
{
if ( $AirSpeedHoldStatus == 0 )
        {   
           //if ( $AutoThrottleStatus == 1)
//{
SetWithSignal( $controlAirSpeedHold , 1);
//}
        }
        else
        {
          SetWithSignal( $controlAirSpeedHold , 0);
        }

}
}
//================================HEADING KNOB - enkoder
//================================ w prawo
variable $MJ16_przycisk_098
{
module = "GameControllersInput";
id = "MJ16:przycisk_098";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_098
{


if ( $MJ16_przycisk_098 == true )
{

$testowa_line_1 = ToString( FormatNumber( $HdgValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlHdgValue , $HdgValue + 182);
}

}

variable $MJ16_przycisk_106
{
module = "GameControllersInput";
id = "MJ16:przycisk_106";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_106
{


if ( $MJ16_przycisk_106 == true )
{

$testowa_line_1 = ToString( FormatNumber( $HdgValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlHdgValue , $HdgValue + 1820);
}

}
//================================ w lewo
variable $MJ16_przycisk_096
{
module = "GameControllersInput";
id = "MJ16:przycisk_096";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_096
{


if ( $MJ16_przycisk_096 == true )
{

$testowa_line_1 = ToString( FormatNumber( $HdgValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlHdgValue , $HdgValue - 182);
}

}

variable $MJ16_przycisk_104
{
module = "GameControllersInput";
id = "MJ16:przycisk_104";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_104
{


if ( $MJ16_przycisk_104 == true )
{

$testowa_line_1 = ToString( FormatNumber( $HdgValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlHdgValue , $HdgValue - 1820);
}

}


//================================ALTITUDE KNOB - enkoder
//================================ w prawo
variable $MJ16_przycisk_102
{
module = "GameControllersInput";
id = "MJ16:przycisk_102";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_102
{


if ( $MJ16_przycisk_102 == true )
{

$testowa_line_1 = ToString( FormatNumber( $AltValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlAltValue , $AltValue + 1997537);
}

}

variable $MJ16_przycisk_110
{
module = "GameControllersInput";
id = "MJ16:przycisk_110";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_110
{


if ( $MJ16_przycisk_110 == true )
{

$testowa_line_1 = ToString( FormatNumber( $AltValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlAltValue , $AltValue + 19975370);
}

}
//================================ w lewo
variable $MJ16_przycisk_100
{
module = "GameControllersInput";
id = "MJ16:przycisk_100";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_100
{


if ( $MJ16_przycisk_100 == true )
{

$testowa_line_1 = ToString( FormatNumber( $AltValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlAltValue , $AltValue - 1997537);
}

}

variable $MJ16_przycisk_108
{
module = "GameControllersInput";
id = "MJ16:przycisk_108";
type = bool;
direct = in;
}

variable_changed $MJ16_przycisk_108
{


if ( $MJ16_przycisk_108 == true )
{

$testowa_line_1 = ToString( FormatNumber( $AltValue , "0" ) );
//$i= $HdgValue;
//$i=$i +1;
SetWithSignal( $controlAltValue , $AltValue - 19975370);
}

}


variable_changed $HdgValue
{
$testowa_line_1 = ToString( FormatNumber( $HdgValue , "0" ) );
}
variable_changed $AltValue
{
$testowa_line_1 = ToString( FormatNumber( $AltValue , "0" ) );
}
}

Zresztą już trzeci raz piszę tego posta - bo engine forum gubi treść, jeśli wystąpi błąd...

Odp: Aplikacja DomowyKokpit
« Odpowiedź #215 dnia: Listopada 12, 2010, 20:18:56 »
Tak jakby HSC nie potrafił nadpisać zmiennej, która posiada już taką samą wartość. Ale piszę "jakby" bo wydaje mi się, że mój skrypt zabezpiecza przed taką sytuacją.

Trafiony - zatopiony :)

Moduł FSDataOutput nie wysyła zmiennej bo ostatnia ustawiona wartość jest identyczna z tą, którą chcesz teraz zapisać.

Rozwiązanie problemu jest proste, ale trzeba edytować plik FSData.xml Na liście ToDo mam już edytor tego pliku w konfiguracji modułów do FS, żeby nie trzeba było grzebać ręcznie w tym pliku.

W pliku FSData.xml zapisane są wszystkie dostępne w HSC offsety z FSUIPC. Można sobie tam dopisywać nowe itp. Offsety odczytywane (FSDataInput), są w elemencie <input>, zapisywane (FSDataOutput) w elemencie <output>. Każdy offset zapisany jest w elemencie <variable>. Element ten ma parametr "change". W większości przypadków ma on wartość większą od zera. Przy zapisie wartości zmiennej, moduł sprawdza czy różnica pomiędzy ostanio zapisaną wartością a aktualnie zapisywaną wartością jest równa lub większa od parametru "change". Jeśli nie, to zapis jest anulowany. Błąd 10 oznacza, że moduł chciał wymienić dane z FSUIPC ale nie było żadnych danych :) W używanych offsetach (zapisywanych) można ustawić parametr "change" na 0. Więc, dla offsetów, które powodują błąd 10, ustaw parametr "change" w pliku FSData.xml na wartość 0. Rozwiąże to problem.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #216 dnia: Listopada 12, 2010, 21:49:55 »
codeking,
Cytat z Twojej strony- "Lista wszystkich offsetów została wyeksportowana do modułów FSDataInput i FSDataOutput."
Zakładam, że zostało to eksportowane automatycznie, to może być przyczyna. Popraw mnie jeśli się  mylę.  :)
 

Odp: Aplikacja DomowyKokpit
« Odpowiedź #217 dnia: Listopada 12, 2010, 22:27:55 »
Więc, dla offsetów, które powodują błąd 10, ustaw parametr "change" w pliku FSData.xml na wartość 0. Rozwiąże to problem.

Prorok cy cuś? Sprawdzone - problem rozwiązany. Aż chce się rzec: Bóg zapłać! Kolejny mały kroczek w stronę własnego kokpitu.

BTW. Zatem kod (10) to w istocie nie błąd, co informacja o anulowanym działaniu. Miało to na celu ograniczenie ilości danych wymienianych z FSUIPC (żeby zwiększyć wydajność)? Ograniczało skutecznie :-)

Dzięki za szybką odpowiedź!

Odp: Aplikacja DomowyKokpit
« Odpowiedź #218 dnia: Listopada 12, 2010, 22:31:57 »
codeking,
Cytat z Twojej strony- "Lista wszystkich offsetów została wyeksportowana do modułów FSDataInput i FSDataOutput."
Zakładam, że zostało to eksportowane automatycznie, to może być przyczyna. Popraw mnie jeśli się  mylę.  :)

Nie mylisz się, tylko, że ja ten "automat" robiłem :) Popełniłem błąd, bo zmienne wyjściowe (FSDataOutput) powinny mieć parametr "change" z wartością 0, ale łatwo to poprawić.

shopiK, cieszę się, że mogłem pomóc :) Czekam na jakąś prezentację działania tego skryptu, najlepiej z "choinką" :)

Odp: Aplikacja DomowyKokpit
« Odpowiedź #219 dnia: Listopada 12, 2010, 22:46:33 »
shopiK, cieszę się, że mogłem pomóc :) Czekam na jakąś prezentację działania tego skryptu, najlepiej z "choinką" :)

Do choinki potrzebny będzie jak się domyślam simOUT... Muszę się chwilkę wstrzymać (do następnego miesiąca), bo już troszkę funduszy poszło na kokpit - trzeba za coś żyć jeszcze :-)

Na razie czekam na panel czołowy (grawerowanko). Konstrukcja kokpitu już pomalowana, czeka na swój pierwszy panel.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #220 dnia: Listopada 12, 2010, 23:08:19 »
To się nazywa Support ! ;)
shopiK,
tak szybkiej pomocy nie daje żadna firma na rynku. ;)
codekind,
 miałem "miałczeć" na PW w temacie skryptu do wyświetlacza o którym kilka postów wyżej skrobałem z vito. Myślę, że będzie lepiej zrobić to tutaj, oficjalnie ( może komuś się przydać).
 Na dzień dzisiejszy udało mi się zaświecić to:

Teraz trzeba napisać skrypt. :)
Ps. Jeszcze walczę z lutownicą, ale lista pytań gotowa.

Odp: Aplikacja DomowyKokpit
« Odpowiedź #221 dnia: Listopada 12, 2010, 23:19:49 »
To się nazywa Support ! ;)
shopiK,
tak szybkiej pomocy nie daje żadna firma na rynku. ;)

Ja to już wcześniej pisałem :-)

A może w wolnej chwili wykonasz dla mnie moduł simout? :P  - Podaj cenę.

BTW. Szkoda, że pracujemy nad kokpitami do różnych symulatorów. Gdybyśmy pisali skrypty na jedną platformę poszło by błyskawicznie. Więc mam taki pomysł: "Wszyscy przerzućcie się na FSa" :P

EDIT: W innym wątku doczytałem, że eghi też buduje kokpit do FSa... No to szybko pójdzie
« Ostatnia zmiana: Listopada 12, 2010, 23:28:52 wysłana przez shopiK »

Odp: Aplikacja DomowyKokpit
« Odpowiedź #222 dnia: Listopada 23, 2010, 23:11:25 »
Kolejny problem... Kłaniam się szczególnie w stronę Codekinga...

Zakupiłem samolot pmdg 737ng... i okazało się, że nie doczytałem, iż nie obsługuje on standardowych offsetów FS'a... Ma ponoć własne, które jednak nie są publikowane, choć na vatsimie znalazłem już pewną ich część.
Ponieważ codeking wspomniał gdzieś, że w pliku fsdata.xml można dodawać nowe offsety, pomyślałem, że jest jeszcze nadzieja, żeby wykorzystać ten samolot do latania z moim kokpitem, jeśli nie... 111zł poszłoooo.....

Odp: Aplikacja DomowyKokpit
« Odpowiedź #223 dnia: Listopada 23, 2010, 23:31:52 »
Jeśli posiadasz FSUIPC ( wersja płatna) możesz użyć Mouse Macro. Lub, podobnie jak zrobił  Zajac CDU, w HSC moduł MouseOutput.
Tutaj masz kopalnię wiedzy na temat 737 (jest dużo o PMDG) :
http://www.737ng.co.uk/


Odp: Aplikacja DomowyKokpit
« Odpowiedź #224 dnia: Listopada 23, 2010, 23:40:58 »
Mam już wersję zarejestrowaną fsuipc, choć nie wiem czy potrzebnie wydawałem pieniądze... Bo rzeczywiście, jest jeszcze moduł mouse macro w HSC, tylko muszę o tym poczytać - ciekaw jestem czy musi być widoczny panel (kokpit 2d samolotu) na monitorze. Przecież jeśli zewnętrzny program steruje mychą, to musi ten przesunięty kursor trafić w istniejący przycisk... A wtedy po co mi kokpit biurkowy - skoro muszę mieć wszystko zdublowane na monitorze? No chyba, że się mylę - obym się mylił...

A rozwiązanie z offsetami w module fsdata, jest i wygodny i elegancki...

EDIT: Właśnie przejrzałem stronkę, którą mi podałeś. Mój problem mógłbym więc rozwiązać tak, że modyfikując panel.cfg samolotu musiałbym wyrzucić wszystkie klikalne panele na drugi monitor - wtedy na głównym pozostałby tylko widok otoczenia (http://www.737ng.co.uk/instruments.gif). Dalej musiałbym napisać makra dla myszy... No to mam jazdę, bo mój drugi monitorek ma tylko 7 cali... Oczywiście mogą na nim być wyświetlone (tzn w praktyce niewidoczne - bo poza obszarem wyświetlania) panele, tylko że z pisaniem makr będzie dużo roboty... Nie podoba mi się to - może codeking coś jeszcze doradzi.
« Ostatnia zmiana: Listopada 23, 2010, 23:51:53 wysłana przez shopiK »