Author Topic: FS Multi Panel  (Read 37824 times)

Offline sinbacsi

  • Jr. Member
  • **
  • Posts: 17
Re: FS Multi Panel
« Reply #15 on: April 12, 2013, 16:25:38 PM »
Ha egy könnyen használható modult össze tudnál rakni, még árulhatnád is, kicsit támogatná a cockpit építés költségeit :)

Személy szerint egy olyan windows-os programra gondolok els?sorban, ami csatlakozna az FSUIPC-n keresztül az FSX-hez és felületet biztosítana arra, hogy soros vonalon érkezett parancsokkal vezérelje azt. Minden kapcsoló és érték egy-egy azonosítót kapna, ezzel hivatkozhat rá akár egy küls? panel mikrovezérl?je.
Így annyit spórolhat az, aki ezt a 'szabványt' használja, hogy nem kell a windows-os oldalon semmit sem programozni, csak a megfelel? protokollt kell megtanítania a panelja agyának.

A mai világban, ahol sajnos nem tehetik meg sokan azt, hogy 600€-ért komplett panelt vegyenek, nem hinném, hogy sikert aratna bármilyen fizet?s megoldás. Maximum adomány, de nem a pénzbeli nyereség vonz.

Offline HARAM

  • Jr. Member
  • **
  • Posts: 18
Re: FS Multi Panel
« Reply #16 on: April 15, 2013, 09:50:49 AM »
A kérdés az, hogy mindent a panel kérjen a programtól? Én például egy kifejezetten "buta" programot írok a vezérl?nek, hogy egy olcsó tokba, egyszer?en beleférjen, és elég gyors legyen. A legtöbb mindent a Windows-os program fogja végezni, mert a PC-n több az er?forrás, és nagyobb a sebesség, hogy elvégezzen számolási m?veleteket, eldöntend? elágazásokat pl. a kijelz? menürendszerében való mozgás közben. Persze majd a gyakorlatban közelíteni szeretném a két oldalt, hogy mi az amit még rá tudok bízni a panelre, és mikortól lesz problémás ott végeztetni a m?veleteket.


Offline HARAM

  • Jr. Member
  • **
  • Posts: 18
Re: FS Multi Panel
« Reply #17 on: April 15, 2013, 14:06:21 PM »
Olyan is eszembe jutott, hogy ok, van egy interface program, és kiszolgál egy elektronikát, egy soros porton (USB, mindegy) De egy elektronika nem lesz elég komplex megoldásokhoz (pl. egy teljes cockpit)... Vagy az elektronika oldalon is kell készíteni egy olyan panelt, ami minden eszközt lekezel amit a PC-s program tud illeszteni magán keresztül, és van egy csomó portja. De ez nagyon sok csatlakozást jelent, gyors vezérl?t - kezd drágulni az elkészíthet?ség. Vagy több példányban kell futtatni a PC-s programot elektronikánként, így több egyszer?bb olcsóbb elektronika szóba jöhet, de a PC-t?l veszünk el er?forrást, igaz talán olyan nagyon nem terhel le egy ilyen alkalmazás egy mostani gépet, de nem lesz túl optimális az egész. Nem tudom melyik a jobb megoldás. De jó lenne egy univerzális felület, tény, hogy könnyíteni az otthoni cockpit építést.
« Last Edit: April 15, 2013, 14:18:13 PM by HARAM »

Offline hxm441

  • Newbie
  • *
  • Posts: 6
Re: FS Multi Panel
« Reply #18 on: April 16, 2013, 17:52:15 PM »
Egy kis helyzetjelentés, itt tart a projekt :P


http://youtu.be/8s2deC-V5sc

Offline HARAM

  • Jr. Member
  • **
  • Posts: 18
Re: FS Multi Panel
« Reply #19 on: April 16, 2013, 19:45:38 PM »
és hogy lehet megnézni?

Offline hxm441

  • Newbie
  • *
  • Posts: 6
Re: FS Multi Panel
« Reply #20 on: April 16, 2013, 20:04:12 PM »
Talán most...

Offline HARAM

  • Jr. Member
  • **
  • Posts: 18
Re: FS Multi Panel
« Reply #21 on: April 16, 2013, 20:21:01 PM »
wow :) tök jó! Gratulálok :)

Offline hxm441

  • Newbie
  • *
  • Posts: 6
Re: FS Multi Panel
« Reply #22 on: April 17, 2013, 20:16:36 PM »
Köszi...

Offline sinbacsi

  • Jr. Member
  • **
  • Posts: 17
Re: FS Multi Panel
« Reply #23 on: April 18, 2013, 10:50:45 AM »
http://youtu.be/8s2deC-V5sc

Szép, tetszik. Kérdés, látom van egy kis 'lag' az encoder és a pc között. Oda-vissza kommunikáció eredménye a 7 szegmens?n látható érték?

Offline sinbacsi

  • Jr. Member
  • **
  • Posts: 17
Re: FS Multi Panel
« Reply #24 on: April 18, 2013, 11:01:39 AM »
Olyan is eszembe jutott, hogy ok, van egy interface program, és kiszolgál egy elektronikát, egy soros porton (USB, mindegy) De egy elektronika nem lesz elég komplex megoldásokhoz (pl. egy teljes cockpit)... Vagy az elektronika oldalon is kell készíteni egy olyan panelt, ami minden eszközt lekezel amit a PC-s program tud illeszteni magán keresztül, és van egy csomó portja. De ez nagyon sok csatlakozást jelent, gyors vezérl?t - kezd drágulni az elkészíthet?ség. Vagy több példányban kell futtatni a PC-s programot elektronikánként, így több egyszer?bb olcsóbb elektronika szóba jöhet, de a PC-t?l veszünk el er?forrást, igaz talán olyan nagyon nem terhel le egy ilyen alkalmazás egy mostani gépet, de nem lesz túl optimális az egész. Nem tudom melyik a jobb megoldás. De jó lenne egy univerzális felület, tény, hogy könnyíteni az otthoni cockpit építést.

Én konkrétan adott példán keresztül mutatnám be az ötletem és direkt azért dobtam fel így, fórumon, hogy több szem többet lát alapon legyen ez megalkotva, ha más nem elméletben.

Adott egy protokoll, fix start és lezáró karakterrel. CRC szintén benne.
A windows-os program fogadja soroson ezt a jelet, és a parancsnak megfelel?en válaszol. Két parancs jut eszembe, read és write. Ha megnyomom a panelon a CMD A gombot, akkor kimegy a windows-os proginak egy jel, write CMD A gomb. A windows ellen?rzi a CRC-t, ha stimmel, leküldi a parancsot az FSX-nek és visszadobja a kontrollernek, adat fogadva, most már ez az érték (végülis read parancs válasz). A panel vezérl?je megkapja, azaz CMD A gomb bekapcsolva, és ? szépen kivilágítja a megfelel? LED-et. Encodernél ez trükkösebb, én személy szerint megvárnám, míg a tekerés abbamarad vagy nem is tudom... De ez részletkérdés.

Én csak konkrétan egy protkollt és az azt fogadó program elkészítésére gondoltam, az illesztés, azaz a mikrokontrollernek megtanítani a protokollt, az már az épít? dolga, de így is er?sen lecsökken a programozni való.

Konkrét adatcsomag példa: (soronként 1-1 byte)
0x02 //start
Action // read vagy write, azaz 0 vagy 1
Azonosító 1
Azonosító 2 // A kapcsoló/érték azonosítója 2 byte-on, azaz max 510 db (az elég, nem?)
érték 1
érték 2 //csak write-nál
CRC1
CRC2 // CRC 2 byte-on
0x04 // csomag vége

Valóban, ez a nem a "buta" megoldás, de ha egyszer elkészül a panelem, nem lesz referenciám arra, hogy valóban bevette-e a rendszer a parancsot (minek lenne akkor VC módban...). Ezért találtam ki ezt a megoldást, hogy effektív a gomb és a visszajelz? nincs összekötve, csak a "meger?sít?" adatcsomag vezérli a LEDet/kijelz?t, így innen tudom/látom, hogy az FS is tudja mit akarok. :)

UI: nemrég hozta a postás bácsi a 9.14 mm-es fehér 7 szegmens? kijelz?im... :)
« Last Edit: April 18, 2013, 11:36:14 AM by sinbacsi »

Offline HARAM

  • Jr. Member
  • **
  • Posts: 18
Re: FS Multi Panel
« Reply #25 on: April 18, 2013, 11:20:24 AM »
A CRC-t külön nem kell figyelni, azt a soros kapcsolati protokoll elintézi.
Mivel figyelni kell, hogy az FS-ben valaki, estleg vmilyen automatika lekpcsolta-e pl. a AP-t, akkor a LEDjét ki kell kapcsolni automatikusan. Tehát a mikro vezérl?nek minden egyes ledet, esetleg kijelz? végig kell kérdezni, hogy milyen állapotban van. Egy nagyobb project esetében nagyon sok lekérdezést jelenthet egyesével megoldani, ill. egy ilyen univerzális protokollra bízva lassú lehet, és látható késést okozhat. Persze, lehet, nem zavaró.

A héten már én is megoldottam a kommunikációs problémát. Csak nagyon "korán" lett :) Most jön az inicializálása a kijelz?mnek, ott majd nekem is kiderül, hogy milyen gyorsan tölti ki a 4x40 + 2x16 karaktert a PC-s progi, bár azt csak 1x kell egyben megcsinálni az elején. Aztán elkezdem küldeni a 2x16-osra az aktuális repülési értékeket.
Én csak akkor küldök az elektronikának adatot, ha valami változik. Jelen esetben egy egész kis byte sorozatban meg tudom határozni a küldött és fogadott adatokat. Ok két teker?m van és rajtuk 1-1 gomb. Ezt most 2bytban küldöm fel. Természetesen kiértékelve, hogy melyik gombot merre tekerték, vagy esetleg megnyomták. Vissza felé, meg egyszer?en megmondom melyik kijelz?n, sor-oszlopban mit írjon ki... Ennyi ez pedig 5byte+delimiter karakter.

« Last Edit: April 18, 2013, 11:30:03 AM by HARAM »

Offline sinbacsi

  • Jr. Member
  • **
  • Posts: 17
Re: FS Multi Panel
« Reply #26 on: April 18, 2013, 11:43:00 AM »
A CRC-t külön nem kell figyelni, azt a soros kapcsolati protokoll elintézi.
Mivel figyelni kell, hogy az FS-ben valaki, estleg vmilyen automatika lekpcsolta-e pl. a AP-t, akkor a LEDjét ki kell kapcsolni automatikusan. Tehát a mikro vezérl?nek minden egyes ledet, esetleg kijelz? végig kell kérdezni, hogy milyen állapotban van. Egy nagyobb project esetében nagyon sok lekérdezést jelenthet egyesével megoldani, ill. egy ilyen univerzális protokollra bízva lassú lehet, és látható késést okozhat. Persze, lehet, nem zavaró.

Nincs állandó szinkronizálás. Inicializáláskor (FS betölt, vagy a gps koordináta hirtelen óriásit ugrott) összebúg, és utána már csak a változások mennének, legalábbis a terv ez. A windows-os progi ugyanúgy tárolná és figyelné az értékeket az FS-b?l, ha pl kikapcsol az AP, akkor eltérés adódik a memóriában tárolttól és már küldi is ki a jelet, hogy AP OFF, kapcsolja le a panel a LED-jét.
Szerintem az elv ugyanaz.

Milyen módon kapcsolódsz az FS-hez végül? Milyen programnyelv és 737NGX?
« Last Edit: April 18, 2013, 11:50:16 AM by sinbacsi »

Offline HARAM

  • Jr. Member
  • **
  • Posts: 18
Re: FS Multi Panel
« Reply #27 on: April 18, 2013, 12:04:39 PM »
Egyel?re FSUIPC-t használom. Ez most egy generic általános multi panel lesz, ahogy indítottam is  a topicot. Ezzel a projecttel egy általános felületet szeretnék csinálni. Két kijelz?, két teker? - minimal design, de minden fontos repülési adattal.

A kontrollert C-ben, a Win prog C#-ban van programozva.

Offline hxm441

  • Newbie
  • *
  • Posts: 6
Re: FS Multi Panel
« Reply #28 on: April 19, 2013, 17:47:08 PM »
Szép, tetszik. Kérdés, látom van egy kis 'lag' az encoder és a pc között. Oda-vissza kommunikáció eredménye a 7 szegmens?n látható érték?


Nem, a PC-s program csak elküldi az aktiális értéket, ezt jeleníti meg, illetve az encoder adatait elkülldöm a PC-s programnak. Bár így már oda vissza komunikáció, ha így érted.

Offline sinbacsi

  • Jr. Member
  • **
  • Posts: 17
Re: FS Multi Panel
« Reply #29 on: April 23, 2013, 09:36:56 AM »
Nem, a PC-s program csak elküldi az aktiális értéket, ezt jeleníti meg, illetve az encoder adatait elkülldöm a PC-s programnak. Bár így már oda vissza komunikáció, ha így érted.

Igen, erre gondoltam, köszönöm a választ. Ezt csak azért is jó volt látnom, mert így tudom, nálam is hasonló "csúszás" lesz a dologban, ami nagygépes repülésnél abszolút nem okoz gondot, hiszen percekre el?re gondolkozik az ember. Hasonló módon szeretném megoldani, de így legalább megnyugtattál, nem fog elkúszni/elcsúszni az érték látványosan.