Autor Wątek: DCS-Bios  (Przeczytany 18461 razy)

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

Odp: DCS-Bios
« Odpowiedź #90 dnia: Września 08, 2019, 10:22:04 »
No i dobrze, ale za wiele nie pomogłem  8) .
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Yossarian

  • 13 WELT
  • *
Odp: DCS-Bios
« Odpowiedź #91 dnia: Września 09, 2019, 23:10:25 »
Kolejny temat związany z DCS-BIOS.


Jako, że DCS F-16 się zbliża, chcę do tego przygotować mój kokpit. Planuję zmienić sterowanie LED w kokpicie z SimOUT na Arduino i tym samym użyć go do BMS'a i do DCS'a. W DCS-ie jest to możliwe przez DCS-BIOS a w BMS'ie jest opcja F4ToSerial. Ale jest mały problem.

W elektronicka SimOUT sterowanie LED jest oparte o wspólną anodę, natomiast w DCS-BIOS i F4ToSerial są oparte o wspólną katodę.
Od strony elektroniki Arduino zrobienie sterowania przez wspólną anodę nie stanowi problemu, gorzej z kodem programu, bo tu trzeba zrobić negacje logiczne.

Przykładowo w DCS_BIOS mam:
DcsBios::LED masterCaution(0x1012, 0x0800, 13); - ten kod działa OK przy wspólnej katodzie ale chciałbym go zmodyfikować i użyć do wspólnej anody.

Testowałem:
DcsBios::LED masterCaution(0x1012, 0x0800, !13);
DcsBios::LED masterCaution(0x1012, 0x0800, (13));

i mimo że kompiluje to nie działa.

Może ktoś pomoże, jak zanegować sterowanie pin'ów w powyższym przykładzie?

Falcon 4 BMS, DCS, FSX, VR: Pimax8KX, TrackIR3 Pro+vector, Thrustmaster Hotas Warthog, Slaw Rudder, Windows 10 64b, 32GB RAM, AMD Ryzen 5 5600X , RTX3090

Odp: DCS-Bios
« Odpowiedź #92 dnia: Września 10, 2019, 17:39:54 »
Jeśli mogę coś zasugerować. Nie mam DCS oraz DCS-BIOS ale z ciekawości przeczytałem 1 stronę tego wątku a konkretnie http://dcs-bios.a10cde/ aby mieć ogólne pojęcie.
Z tego co zrozumiałem to dla F-16 jeszcze nie ma zdefiniowanych w DCS-BIOS paneli czyli jest to sprawa przyszłości.
Na pewno są opisane panele dla innych maszyn np. A-10. Ciebie interesuje sterowanie LED. Nie ma problemu z sterowaniem LED z pin uP ale to nie jest optymalne. Można to zrobić stosując np. rejestry szeregowo-równoległe. Problem wspólnej katody czy anody nie ma znaczenia można to zrobić pisząc procedurę (skrypt) dla Arduino.
Wspomniałeś o SimOut gdzie jest sterowanie LED metodą cykliczną i diody są na wspólnej anodzie ponieważ tak sobie wymyślił Codeking twórca platformy HSC oraz SimOut.
Twórca OpenCockpits stosuje w swoim rozwiązaniu wspólną katodę.
Reasumując trzeba będzie dopisać do biblioteki DCS-BIOS funkcję sterowania LED przy pomocy rejestrów. Może już taka funkcja istnieje. W wspomnianym linku jest tylko prosty przykład sterowania LED bezpośrednio z pin Arduino. Myślę, że koledzy którzy stosują DCS-BIOS mogą to wyjaśnić.
« Ostatnia zmiana: Września 10, 2019, 19:44:01 wysłana przez KosiMazaki »

Odp: DCS-Bios
« Odpowiedź #93 dnia: Września 10, 2019, 22:44:10 »
Yossarian, nie jestem kompetentną osobą do pomocy, bo nigdy nie używałem Arduino. Odnośnie DSC-Bios, napisałem swój program w C++ na peceta, który komunikuje się z DSC-Bios po TCP i UDP. Mój program przerabia odebrane w ten sposób dane i rozkazy, na format potrzebny do mojego kokpitu – i nie ma to nic wspólnego z Arduino. Mogę się wiec mylić, ale o ile dobrze rozumiem, to w Twoim przykładnie:

DcsBios::LED masterCaution(0x1012, 0x0800, 13);

wartość 13 to deklaracja numeru pinu przypisanego do bitu 0x0800 w adresie 0x1012. Nie możesz go więc zanegować w taki sposób:

DcsBios::LED masterCaution(0x1012, 0x0800, !13);
DcsBios::LED masterCaution(0x1012, 0x0800, (13));

bo niezależnie co i jak do niego będziesz przypisywał, dalej to będzie pin 13. Powinieneś wstawić negację wewnątrz funkcji DcsBios::LED masterCaution(). Jeżeli jesteś w stanie wyciągnąć z programu kod tej funkcji, to powinno być łatwo, mam nadzieję, podpowiedzieć Ci jak ją zmodyfikować.
 
A tak ogólnie, to w programowaniu zazwyczaj znak „!” oznacza zaprzeczenie logiczne (stosowane w warunkach logicznych), na przykład :
„!fałsz = prawda”.
Do negacji bitów (wartości) stosuje się znak „~”, na przykład:
„~0x01 = 0xFE” – czyli zmieni nam to wartość wszystkich bitów w wartości 0x01, odpowiednio z „0” na „1” lub z „1” na „0”.

Modyfikując wnętrze DcsBios::LED masterCaution(), musisz więc użyć „!” jeżeli będziesz zmieniał warunek logiczny, lub „~” jeżeli będziesz zmieniał wartość zmiennej.

Offline Yossarian

  • 13 WELT
  • *
Odp: DCS-Bios
« Odpowiedź #94 dnia: Września 10, 2019, 23:13:46 »
Dzięki vito_zm za porady.

Nie wiem czy będę się bawił w rejestry. Zamierzam kupić 2x Arduino  ATmega2560, z których każdy ma 54 piny we/wy. Ten model Arduino jest optymalny i zalecany jeżeli chodzi o kod F4ToSerial do BMS. Zamierzam je użyć tylko jako sterowanie sygnałów wyjściowych (LED, 7SegLED, być może dołożę wyświetlacz OLED do DED). To w sumie da mi 108 pinów, myślę, że wystarczy na bezpośrednie sterowanie LED z dodatkowym zasilaczem zewnętrznym. Wiem, że nie jest to optymalne ale budowa mojego kokpitu i tak zmusi mnie do zakupu 2 takich modułów.
Jako, że nie chciałbym grzebać w panelach i zmieniać połączeń LED na wspólną katodę, chcę połączyć to co mam do rozwiązań F4ToSerial  i DCS-BIOS.

Od strony elektroniki, nie będzie problemu. Tak jak zauważyłeś kod Arduino będzie wymagał korekty. Dlatego dopytuję się na forum czy czasem nie wyważam otwartych drzwi i być może niczego nie trzeba zmieniać w bibliotece DCS-BIOS, bo może jest już gotowa na sterowanie wspólną anodą, tylko trzeba wiedzieć jak...  :) Jeżeli nie będzie prostej recepty, to będę szukał pomocy u autorów biblioteki DCS-BIOS. Ale tu też nie planuję robić rewolucji bo gra nie będzie warta świeczki.
Wtedy wezmę lutownicę do ręki i pozmieniam luty na wspólne katody. No i będę musiał kupić wyświetlacze 7SegLED na wspólną katodę.

Moders, dzięki.

Na pewno Twoje uwagi się przydadzą o ile trzeba będzie modyfikować wspomnianą powyżej bibliotekę DCS-BIOS.

Falcon 4 BMS, DCS, FSX, VR: Pimax8KX, TrackIR3 Pro+vector, Thrustmaster Hotas Warthog, Slaw Rudder, Windows 10 64b, 32GB RAM, AMD Ryzen 5 5600X , RTX3090

Odp: DCS-Bios
« Odpowiedź #95 dnia: Września 11, 2019, 09:02:49 »
Rozumiem twój problem, nie chcesz zmieniać harware, które jest pod SimOut gdzie diody są na wspólnej anodzie. W ten sposób mógłbyś wykorzystać kokpit zarówno w BMS jak i w DCS. Modes pokazał jak to można zrobić :
"Powinieneś wstawić negację wewnątrz funkcji DcsBios::LED masterCaution()"
Zauważ tylko, że jest to tylko jedna z funkcji tzw. MasterCaution a tych funkcji w F16 jest sporo. Wspomniałeś, że nie przewidujesz oszczędzać pinów z Arduino czyli problem stosowania rejestrów odpada.
Można do problemu podejść inaczej. Przerobić twój kokpit pod DCS-BIOS i przyszły F16 a później zmienić sterowanie w SimOut. To rozwiązanie będzie łatwiejsze, ponieważ kolega z forum Piotr (3.14ter) zrealizował SimOut na Arduino i myślę, że bez problemu rozwiązałby problem wspólnej katody. Zawsze jest kilka rozwiązań, jedno jest pewne szkoda, że nie jesteśmy programistami.

Offline Yossarian

  • 13 WELT
  • *
Odp: DCS-Bios
« Odpowiedź #96 dnia: Września 11, 2019, 09:13:30 »
Vito_zm,

Dokładnie to chcę zrobić. Stary HW + nowe sterowanie LED z Arduino na BMS i DCS. SimOUT pójdzie w odstawkę, może na sprzedaż. Arduino + F4ToSerial daje dużo więcej możliwości niż SimOUT. Polecam lekturę:
https://f4toserial.com/wp-content/uploads/2018/10/F4ToSerial-documentation-EN-20180812001.pdf

Falcon 4 BMS, DCS, FSX, VR: Pimax8KX, TrackIR3 Pro+vector, Thrustmaster Hotas Warthog, Slaw Rudder, Windows 10 64b, 32GB RAM, AMD Ryzen 5 5600X , RTX3090

Odp: DCS-Bios
« Odpowiedź #97 dnia: Września 11, 2019, 11:43:12 »
Jestem całkowicie zaskoczony, że taki program istnieje F4ToSerial. Dzięki za pdf zapoznam się i może zacznę coś robić w tym temacie. Codeking w swoim HSC korzystał z F4SharedMem.dll. HSC jest platformą dla SimOut. Piotr korzystając z HSC zrobił odpowiednik SimOut na Arduino. F4ToSerial daje nowe możliwości. Z ciekawości jak zdobyłeś ten program. Jeśli zacznę coś robić w tym programie odtworzę nowy wątek.

Odp: DCS-Bios
« Odpowiedź #98 dnia: Września 11, 2019, 15:46:55 »
Trochę pomyślałem o twoim problemie. Masz obecnie zrobiony kokpit pod BMS na bazie SimOut, który wymusił zastosowanie 7segLED z wspólną anodą. Jeśli chcesz zastosować te same Arduino Mega 2560 dla BMS oraz DCS to tak jak napisałeś SimOut nie jest już potrzebny. Masz w kokpicie 7segLED z wspólną anodą. Nic nie stoi na przeszkodzie aby sterować kokpit dla BMS przy pomocy tego co masz ale sterowany z Arduino Mega 2560 oraz F4oSerial. Oczywiście dużo lutowania ale to jest cena tego pomysłu.
Z tego co wiem to masz obecnie w kokpicie LED oraz 7segLED. Kolejny krok to wgranie do Mega 2560 skryptu dla F16 DCS opartego na DCS-BIOS (już z F16). Teraz pojawia się problem wspólnej katody.
Można to rozwiązać profesjonalnie czyli w funkcjach F16 w DCS-BIOS, ale to wymaga wiedzy. Rozwiązanie sprzętowe jest dosyć kłopotliwe ale możliwe. Ciekawe czy na forum Viperpits rozważali taki problem. Z drugiej strony tam są raczej zwolennicy BMS.

Offline Yossarian

  • 13 WELT
  • *
Odp: DCS-Bios
« Odpowiedź #99 dnia: Września 11, 2019, 16:10:11 »
Vito, tak jak pisałem, nie chcę sobie utrudniać życia... Jak nie znajdę szybko rozwiązania programowego, które będzie proste, to zmienię sterowanie LED i 7SegLED na wspólną katodę. Myślę, że tak nawet będzie lepiej, bo wszelkie zmiany i aktualizacje kodów, które mogą się pojawić w przyszłości będą mnie ograniczały. Także na jakieś 95% zmienię swoją elektronikę na wspólną katodę.

Falcon 4 BMS, DCS, FSX, VR: Pimax8KX, TrackIR3 Pro+vector, Thrustmaster Hotas Warthog, Slaw Rudder, Windows 10 64b, 32GB RAM, AMD Ryzen 5 5600X , RTX3090

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #100 dnia: Listopada 28, 2019, 14:03:53 »
Nowy DCS-BIOS 10.0

Całkiem nowa odsłona tego softu - możliwość interakcji z innymi modułami online poprzez pliki lua.

"Na przykład następujące wywołanie zwrotne wyjściowe wyświetli dane UFC F-18C Horneta na symulatorze zbudowanym dla Harriera AV8BNA"

Strona:
https://dcs-bios.readthedocs.io/en/latest/

Pliki instalacyjne:
https://github.com/dcs-bios/dcs-bios/releases/

Odp: DCS-Bios
« Odpowiedź #101 dnia: Grudnia 07, 2019, 13:32:17 »
Marcin testowałeś to? Czy są jakieś zmiany w plikach wsadowych do Arduini?
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #102 dnia: Grudnia 07, 2019, 19:08:06 »
Tak, sam odpala się razem z DCSem. Niestety część plików do przeróbki. Wygodna obsługa płytek choć trzeba się przyzwyczaić.

Odp: DCS-Bios
« Odpowiedź #103 dnia: Grudnia 07, 2019, 22:13:53 »
Kurna, sam nie wiem czy mi się chce coś przerabiać jak nie ma potrzeby.
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #104 dnia: Maja 29, 2020, 10:42:25 »