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

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

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #30 dnia: Października 31, 2017, 13:13:22 »
Możesz pomyśleć o dostosowaniu Twoich paneli pod kątem innych modułów: np. kontrolki podwozia.
Generalnie to działa, chyba że pechowo są tak samo ponazywane - zdaje się że np. w Ka-50 podwozie ma takie same oznakowania co w A-10C.
Wtedy zostaje jedynie wgranie osobnego pliku do Arduino - pod kątem tego innego modułu.

Odp: DCS-Bios
« Odpowiedź #31 dnia: Października 31, 2017, 13:34:51 »
Aaaa to nie taki głupi pomysł, nie myślałem nad tym jeszcze, ale samolot w którym by mnie to interesowało to F-5. Jednak czy przypadkiem nie jest tak, że pinów które są już użyte nie można użyć jeszcze raz, chyba błąd wyskakuje?
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #32 dnia: Października 31, 2017, 14:19:16 »
Zmieniasz tylko soft nie hardware.
Zaraz wyślę Ci przykład.

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #33 dnia: Października 31, 2017, 14:28:58 »
Przykład:

//A-10C
DcsBios::LED gearLSafe(0x1026, 0x1000, 2);
DcsBios::LED gearNSafe(0x1026, 0x0800, 3);
DcsBios::LED gearRSafe(0x1026, 0x2000, 4);

//MiG-21 bis
DcsBios::LED gearLeftDown(0x225c, 0x0800, 2);
DcsBios::LED gearNoseDown(0x225c, 0x0200, 3);
DcsBios::LED gearRightDown(0x225c, 0x2000, 4);

W Ka-50 opis się dubluje przy podwoziu wypuszczonym z 21-szym:

DcsBios::LED gearNoseDown(0x185c, 0x2000, PIN); trzeba zrobić dla niego osobny plik

Odp: DCS-Bios
« Odpowiedź #34 dnia: Czerwca 08, 2018, 10:20:30 »
DCS-BIOS do Horneta. Nie wiem czy działa bo sam tego nie używam ale przewinęło mi się na forum ED.

https://forums.eagle.ru/showthread.php?t=210960

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #35 dnia: Czerwca 08, 2018, 22:49:22 »
Potencjometry działają. LEDy - kaszana. U mnie poprawnie działa tylko Master Caution :(
Hebelków i serw nie sprawdzałem.

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #36 dnia: Czerwca 09, 2018, 21:01:47 »
Jest aktualizacja  :evil:

Wszystko działa:
https://forums.eagle.ru/showthread.php?t=210960
« Ostatnia zmiana: Czerwca 10, 2018, 12:02:21 wysłana przez KosiMazaki »

Odp: DCS-Bios
« Odpowiedź #37 dnia: Czerwca 11, 2018, 11:17:33 »
Co do UFC, to chyba są same przyciski, wyświetlaczy jeszcze chyba nie ma?
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #38 dnia: Czerwca 11, 2018, 11:37:53 »
Nie sprawdzę teraz. UFC akurat nie będę emulował.
Jak będziesz miał problem z AoA to daj znać - są takie same kody jak do A-10C ale da się to obejść :) (oczywiście jeśli robisz podłączenie w tym samym pliku do Arduino co w A-10C).
Podłączyłem kilkanaście LEDów - Lock / Shot Lights wyglądają ciekawie - akurat pasują do kontrolek tankowania z A-10C - też są zielone.
Caution Advisory Lights - podpiąłem Caution Panel z A-10C.

Odp: DCS-Bios
« Odpowiedź #39 dnia: Czerwca 11, 2018, 12:28:26 »
Wydaje mi się, że nie chciało podpisywać dwuch kodów do jednego pinu... Jednak to byłoby super rozwiązanie, by z tego samego Arduino i pliku chodziło w A-10C i F-18. Mam nadzieje, że UFC wyjdzie dla Horneta na Androida jak dla Prosiaka.
« Ostatnia zmiana: Czerwca 11, 2018, 12:41:50 wysłana przez =OPS=padonis »
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #40 dnia: Czerwca 11, 2018, 12:42:35 »
U mnie tak to działa: w jednym pliku jest A-10C, M-2000C, F/A-18C, L-39ZA, UH-1, MiG-21 i co tam jeszcze  :evil:

Odp: DCS-Bios
« Odpowiedź #41 dnia: Czerwca 11, 2018, 12:44:47 »
Wstawisz taki profil? Kiedyś chciałem tak podpisać ale nic z tego nie wyszło, chyba że Arduino rozróżnia moduły? Jednak jak chciałem podpisać dwie linie pod ten sam pin, to wyskakiwał błąd.

Ja mam jeszcze taki problem z płytką od Daejmosa lub raczej z Hornetem. Mianowicie mam podpisany pod pin skrót do "MC" "L ctrl+M", w A-10C oczywiście wszystko działa, jednak jak takie przypisanie klawiszy wstawię pod Master Caution w F-18, to już nie działa. Niby w przypisaniu klawiszy chodzi - widzi, a w samolocie przycisk się nie działa z takim skrótem klawiszowym. 
« Ostatnia zmiana: Czerwca 11, 2018, 12:53:47 wysłana przez =OPS=padonis »
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #42 dnia: Czerwca 11, 2018, 18:15:59 »
Solucja na identyczne wpisy - na przykładzie wskaźnika AoA:

A-10C i F/A-18C maja identyczne nazewnictwo:

DcsBios::LED aoaIndexerHigh(0x1012, 0x1000, A11);
DcsBios::LED aoaIndexerNormal(0x1012, 0x2000, A12);
DcsBios::LED aoaIndexerLow(0x1012, 0x4000, A13);

dlatego np. dla F/A-18C ja zmieniłem dopisując F18 i tak:

DcsBios::LED aoaIndexerHighF18(0x5400, 0x0008, A11);
DcsBios::LED aoaIndexerNormalF18(0x5400, 0x0010, A12);
DcsBios::LED aoaIndexerLowF18(0x5400, 0x0020, A13);

Sprawdź czy u Ciebie też działa.

Offline Marcin_B

  • *
  • MABO
Odp: DCS-Bios
« Odpowiedź #43 dnia: Czerwca 11, 2018, 18:19:34 »
Wstawisz taki profil? Kiedyś chciałem tak podpisać ale nic z tego nie wyszło, chyba że Arduino rozróżnia moduły? Jednak jak chciałem podpisać dwie linie pod ten sam pin, to wyskakiwał błąd.

Ja mam jeszcze taki problem z płytką od Daejmosa lub raczej z Hornetem. Mianowicie mam podpisany pod pin skrót do "MC" "L ctrl+M", w A-10C oczywiście wszystko działa, jednak jak takie przypisanie klawiszy wstawię pod Master Caution w F-18, to już nie działa. Niby w przypisaniu klawiszy chodzi - widzi, a w samolocie przycisk się nie działa z takim skrótem klawiszowym. 

Wyczyść pole przy tym przycisku i sprawdź - może masz ten skrót przypisany przy innym: jak są zdublowane to się nawzajem blokują.

Przykładowy multimodułowy skrypt Arduino:

#define DCSBIOS_IRQ_SERIAL
#include <SevenSeg.h>
#include <DcsBios.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

// A-10C
DcsBios::LED gearLSafe(0x1026, 0x1000, 2);
DcsBios::LED gearNSafe(0x1026, 0x0800, 3);
DcsBios::LED gearRSafe(0x1026, 0x2000, 4);
DcsBios::LED handleGearWarning(0x1026, 0x4000, 8);
DcsBios::LED cmscLaunch(0x1012, 0x0100, 9);
DcsBios::LED gunReady(0x1026, 0x8000, A8);
DcsBios::LED masterCaution(0x1012, 0x0800, A9);
DcsBios::LED nosewheelSteering(0x10da, 0x0001, A10);
DcsBios::LED aoaIndexerHigh(0x1012, 0x1000, A11);
DcsBios::LED aoaIndexerNormal(0x1012, 0x2000, A12);
DcsBios::LED aoaIndexerLow(0x1012, 0x4000, A13);

DcsBios::LED nmspHarsLed(0x1110, 0x0200, 52);
DcsBios::LED nmspEgiLed(0x1110, 0x0800, 50);
DcsBios::LED nmspTislLed(0x1110, 0x2000, 48);
DcsBios::LED nmspSteerptLed(0x1110, 0x8000, 46);
DcsBios::LED nmspAnchrLed(0x1112, 0x0002, 44);
DcsBios::LED nmspTcnLed(0x1112, 0x0008, 42);
DcsBios::LED nmspIlsLed(0x1112, 0x0020, 40);


DcsBios::Switch2Pos nmspHarsBtn("NMSP_HARS_BTN", 53);
DcsBios::Switch2Pos nmspEgiBtn("NMSP_EGI_BTN", 51);
DcsBios::Switch2Pos nmspTislBtn("NMSP_TISL_BTN", 49);
DcsBios::Switch2Pos nmspSteerptBtn("NMSP_STEERPT_BTN", 47);
DcsBios::Switch2Pos nmspAnchrBtn("NMSP_ANCHR_BTN", 45);
DcsBios::Switch2Pos nmspTcnBtn("NMSP_TCN_BTN", 43);
DcsBios::Switch2Pos nmspIlsBtn("NMSP_ILS_BTN", 41);
DcsBios::Switch2Pos nmspAbleStow("NMSP_ABLE_STOW", 38);

DcsBios::Switch2Pos clockCtrl("CLOCK_CTRL", 22);
DcsBios::Switch2Pos clockSet("CLOCK_SET", 23);

DcsBios::Switch3Pos ahcpLaserArm("AHCP_LASER_ARM", A1, A0);

// F/A-18C

DcsBios::LED masterCautionLt(0x5400, 0x0200, A9);

DcsBios::LED flpLgHalfFlapsLt(0x5428, 0x4000, A8);
DcsBios::LED flpLgFullFlapsLt(0x5428, 0x8000, A10);

DcsBios::LED flpLgLeftGearLtF18(0x5428, 0x1000, 2);
DcsBios::LED flpLgNoseGearLt(0x5428, 0x0800, 3);
DcsBios::LED flpLgRightGearLt(0x5428, 0x2000, 4);

DcsBios::LED aoaIndexerHighF18(0x5400, 0x0008, A11);
DcsBios::LED aoaIndexerNormalF18(0x5400, 0x0010, A12);
DcsBios::LED aoaIndexerLowF18(0x5400, 0x0020, A13);

// M-2000C

DcsBios::LED confG(0x604c, 0x0002, 2);
DcsBios::LED confAux(0x604c, 0x0004, 3);
DcsBios::LED confD(0x604c, 0x0008, 4);

//DcsBios::LED confA(0x6044, 0x0400, 8);
//DcsBios::LED confF(0x6044, 0x0800, PIN);

//DcsBios::LED confDirav(0x6044, 0x1000, 8);
//DcsBios::LED confCross(0x6044, 0x4000, 8);
//DcsBios::LED confFrein(0x6044, 0x2000, PIN);
//DcsBios::LED confSpad(0x6044, 0x8000, PIN);

DcsBios::LED confRouge(0x604c, 0x0001, 8);

//DcsBios::LED landingGearLeverLight(0x60aa, 0x1000, 8); //dźwignia podwozia - działa na odwrót

void onVhfFrequencyChange(char* newValue) {
  lcd.setCursor(5, 0);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    lcd.write(newValue[2]);
    lcd.print(".");
    lcd.write(newValue[3]);
    lcd.write(newValue[4]);
    }
DcsBios::StringBuffer<5> vhfFrequencyBuffer(0x6122, onVhfFrequencyChange);

void onUhfFrequencyM2000Change(char* newValue) {
  lcd.setCursor(5, 1);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    lcd.write(newValue[2]);
    lcd.print(".");
    lcd.write(newValue[3]);
    lcd.write(newValue[4]);
}
DcsBios::StringBuffer<5> uhfFrequencyM2000Buffer(0x612c, onUhfFrequencyM2000Change);

// MiG-21 bis

DcsBios::LED gearLeftDown(0x225c, 0x0800, 2);
DcsBios::LED gearNoseDown(0x225c, 0x0200, 3);
DcsBios::LED gearRightDown(0x225c, 0x2000, 4);
DcsBios::LED gearLeftUp(0x225c, 0x0400, 5);
DcsBios::LED gearNoseUp(0x225c, 0x0100, 6);
DcsBios::LED gearRightUp(0x225c, 0x1000, 7);
DcsBios::LED lowAltLight(0x227a, 0x0010, 9);

DcsBios::LED airbrkLight(0x22a0, 0x8000, A10);
DcsBios::LED flapsLight(0x22a0, 0x4000, A8);
DcsBios::LED aoaWarnLght(0x227a, 0x0020, A9);
DcsBios::LED canWarnLight(0x22a0, 0x0200, A4);
DcsBios::LED markLight(0x22a0, 0x0800, A5);

// Ka-50

DcsBios::LED scMasterCautionLed(0x1814, 0x0800, A9);
DcsBios::LED gearLMainDown(0x1878, 0x0200, 2);
DcsBios::LED gearNoseDownKa50(0x185c, 0x2000, 3);
DcsBios::LED gearRMainDown(0x185c, 0x8000, 4);
DcsBios::LED gearLMainUp(0x1878, 0x0100, 5);
DcsBios::LED gearNoseUpKa50(0x185c, 0x1000, 6);
DcsBios::LED gearRMainUp(0x185c, 0x4000, 7);

//UH-1

DcsBios::LED raltHiLamp(0x1416, 0x1000, A0);
DcsBios::LED raltLoLamp(0x1416, 0x0800, A1);
DcsBios::LED armedInd(0x1416, 0x0010, A2);
DcsBios::LED masterCautionInd(0x1416, 0x0100, A9);
DcsBios::LED lowRpmInd(0x1416, 0x0080, 9);

//L-39ZA
DcsBios::LED geardownFrontLamp(0x325e, 0x0400, 3);
DcsBios::LED geardownLeftLamp(0x325e, 0x0800, 2);
DcsBios::LED geardownRightLamp(0x325e, 0x1000, 4);
DcsBios::LED gearupFrontLamp(0x325e, 0x2000, 6);
DcsBios::LED gearupLeftLamp(0x325e, 0x4000, 5);
DcsBios::LED gearupRightLamp(0x325e, 0x8000, 7);
DcsBios::LED fwdcanopynotclosed(0x3262, 0x0002, A4);
DcsBios::LED dangeraltitudeLamp(0x3260, 0x0100, 9);
DcsBios::LED breakdownfinishedLamp(0x3260, 0x0010, A5);
DcsBios::LED emergconditioningLamp(0x3262, 0x0800, A9);
DcsBios::LED airbrakesLamp(0x325e, 0x0200, A8);
DcsBios::LED doorsoutLamp(0x3260, 0x0002, 8);
DcsBios::LED mrp56Lamp(0x325e, 0x0001, A5);
DcsBios::LED fwdmasterdangerLamp(0x3264, 0x0001, A9);
DcsBios::LED extendgearsLamp(0x3260, 0x0001, 11);

//A-10C

void onUhfPresetChange(char* newValue) {
    lcd.setCursor(14, 0);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    }
void onUhfFrequencyChange(char* newValue) {
    lcd.setCursor(9, 1);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    lcd.write(newValue[2]);
    lcd.write(newValue[3]);
    lcd.write(newValue[4]);
    lcd.write(newValue[5]);
    lcd.write(newValue[6]);
    }
void onClockHhChange(char* newValue) {
  lcd.setCursor(0, 1);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    }
void onClockMmChange(char* newValue) {
  lcd.setCursor(3, 1);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    }
void onClockSsChange(char* newValue) {
  lcd.setCursor(6, 7);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    }
void onClockEtcChange(char* newValue) {
  lcd.setCursor(5, 0);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    lcd.write(newValue[2]);
    }
   
DcsBios::StringBuffer<7> uhfFrequencyBuffer(0x1180, onUhfFrequencyChange);
DcsBios::StringBuffer<2> uhfPresetBuffer(0x1188, onUhfPresetChange);
DcsBios::StringBuffer<3> clockEtcBuffer(0x1104, onClockEtcChange);
DcsBios::StringBuffer<2> clockHhBuffer(0x10fe, onClockHhChange);
DcsBios::StringBuffer<2> clockMmBuffer(0x1100, onClockMmChange);
DcsBios::StringBuffer<2> clockSsBuffer(0x1102, onClockSsChange);

//UH-1H


void onVhfnavFreqChange(char* newValue) {
  lcd.setCursor(0, 0);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    lcd.write(newValue[2]);
    lcd.write(newValue[3]);
    lcd.write(newValue[4]);
    lcd.write(newValue[5]);
}
DcsBios::StringBuffer<6> vhfnavFreqBuffer(0x14f0, onVhfnavFreqChange);

void onVhfcommFreqChange(char* newValue) {
  lcd.setCursor(0, 1);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    lcd.write(newValue[2]);
    lcd.write(newValue[3]);
    lcd.write(newValue[4]);
    lcd.write(newValue[5]);
    lcd.write(newValue[6]);
}
DcsBios::StringBuffer<7> vhfcommFreqBuffer(0x14d4, onVhfcommFreqChange);

void onUhfFreqChange(char* newValue) {
  lcd.setCursor(9, 0);
    lcd.write(newValue[0]);
    lcd.write(newValue[1]);
    lcd.write(newValue[2]);
    lcd.write(newValue[3]);
    lcd.write(newValue[4]);
    lcd.write(newValue[5]);}
DcsBios::StringBuffer<6> uhfFreqBuffer(0x14e2, onUhfFreqChange);

void onVhffmFreq1Change(char* newValue) {
  lcd.setCursor(10, 1);
    lcd.write(newValue[0]);
}
DcsBios::StringBuffer<1> vhffmFreq1StrBuffer(0x14ea, onVhffmFreq1Change);

void onVhffmFreq4Change(char* newValue) {
  lcd.setCursor(11, 1);
    lcd.write(newValue[0]);
    lcd.print(".00");
}
DcsBios::StringBuffer<1> vhffmFreq4StrBuffer(0x14ec, onVhffmFreq4Change);

void onDcsBiosFrameSync() {
}

void setup() {
  DcsBios::setup();
  lcd.begin(16, 2);
  lcd.clear();
}

void loop() {
  DcsBios::loop();
}

Niektóre LEDy przy F-18 są jeszcze wyłączone - chyba dorobię dodatkowy panel do kontrolek :)
Przy przednim podwoziu Ka-50 też musiałem zrobić dopisek KA50 - dublował się z przednim podwoziem MiGa-21.
Podobnie przy wyświetlaniu częstotliwości UHF na LCD dla modułu M-2000C: dopisek M2000 - dublował się z UH-1.

Ale dzięki powyższym zmianom mam jeden skrypt i latam na wszystkich modułach bez potrzeby wgrywania do Arduino osobnych skryptów - korzystam z Megi 2560.
« Ostatnia zmiana: Czerwca 11, 2018, 18:26:03 wysłana przez Marcin_B »

Odp: DCS-Bios
« Odpowiedź #44 dnia: Czerwca 11, 2018, 18:37:09 »
Masz jakieś inne linki do kontrolek podwozia i AOA, teraz patrzyłem i wyglądają one tak:

Cytuj
DcsBios::LED flpLgLeftGear(0x5404, 0x1000, 3);
DcsBios::LED flpLgNoseGear(0x5404, 0x0800, 4);
DcsBios::LED flpLgRightGear(0x5404, 0x2000, 5);

DcsBios::LED aoaIndexerNormal(0x5406, 0x2000, PIN);
DcsBios::LED aoaIndexerLow(0x5406, 0x4000, PIN);
DcsBios::LED aoaIndexerHigh(0x5406, 0x1000, PIN);

No i ja nie miałem tych dopisków " // F/A-18C" , a to pewnie jest ważne.

Zrobiłem swoje wpisy ale przy AOA wywala mi błąd przy zapisie.
« Ostatnia zmiana: Czerwca 11, 2018, 18:49:32 wysłana przez =OPS=padonis »
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)