Jump to content

Recommended Posts

Posted

Didnt know where to post so i post here.

I am building atm mfcds for a-10c and using arduino uno board.

i made a buttonmatrix that i think work with the code, the code compiles, upolads and when i press a button on my controller the led blinks on my board and it shows that the board is communicating with dcs bios.

but in-game iin the cockpit, nothing happens, osb buttons are not reacting on press on my controller.

next soultion is mega if i cant fix this, cus then i wont need any button matrix, but i rather use smaller cards and button matrixes.

here is my code:

 

/*
  Tell DCS-BIOS to use a serial connection and use the default Arduino Serial
  library. This will work on the vast majority of Arduino-compatible boards,
  but you can get corrupted data if you have too many or too slow outputs
  (e.g. when you have multiple character displays), because the receive
  buffer can fill up if the sketch spends too much time updating them.
 
  If you can, use the IRQ Serial connection instead.
*/
#define DCSBIOS_DEFAULT_SERIAL
#if ARDUINO > 10605
#include <Keypad.h>
#endif
 
#include "DcsBios.h"
 
/* paste code snippets from the reference documentation here */
const byte ROWS = 4; //four rows
const byte COLS = 5; //five columns
char keys[ROWS][COLS] = {
{'1','2','3','4','5'},
{'6','7','8','9','10'},
{'11','12','13','14','15'},
{'16','17','18','19','20'},
 
};
byte rowPins[ROWS] = {3, 4, 5, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {7, 8, 9, 10, 11}; //connect to the column pinouts of the keypad
 
Keypad keypad = Keypad (makeKeymap(keys), rowPins, colPins, ROWS, COLS);
 
void setup() {
  DcsBios::setup();
  keypad.addEventListener(keypadEvent); // Add an event listener
  keypad.setHoldTime(100); // Default is 1000mS
  keypad.setDebounceTime(50); // Default is 500mS
}
 
void loop() {
  DcsBios::loop();
  char key = keypad.getKey();
 
}
 
void keypadEvent(KeypadEvent KEY){
  switch (keypad.getState()){ // Gives PRESSED, HOLD or RELEASED}
  case PRESSED:
  switch(KEY) { // Following commands are fired unoqued if PRESSED
  //CDU
  case '1': sendDcsBiosMessage('LMFD_01','1'); break;
  case '2': sendDcsBiosMessage('LMFD_02','1'); break;
  case '3': sendDcsBiosMessage('LMFD_03','1'); break;
  case '4': sendDcsBiosMessage('LMFD_04','1'); break;
  case '5': sendDcsBiosMessage('LMFD_05','1'); break;
  case '6': sendDcsBiosMessage('LMFD_06','1'); break;
  case '7': sendDcsBiosMessage('LMFD_07','1'); break;
  case '8': sendDcsBiosMessage('LMFD_08','1'); break;
  case '9': sendDcsBiosMessage('LMFD_09','1'); break;
  case '10': sendDcsBiosMessage('LMFD_10','1'); break;
  case '11': sendDcsBiosMessage('LMFD_11','1'); break;
  case '12': sendDcsBiosMessage('LMFD_12','1'); break;
  case '13': sendDcsBiosMessage('LMFD_13','1'); break;
  case '14': sendDcsBiosMessage('LMFD_14','1'); break;
  case '15': sendDcsBiosMessage('LMFD_15','1'); break;
  case '16': sendDcsBiosMessage('LMFD_16','1'); break;
  case '17': sendDcsBiosMessage('LMFD_17','1'); break;
  case '18': sendDcsBiosMessage('LMFD_18','1'); break;
  case '19': sendDcsBiosMessage('LMFD_19','1'); break;
  case '20': sendDcsBiosMessage('LMFD_20','1'); break;


 
  }}
 
  switch (keypad.getState()){ // Gives PRESSED, HOLD or RELEASED}
    case RELEASED:
    switch (KEY){ // Released KEYs or Neutral Rockers signal is sent
    //CDU
  case '1': sendDcsBiosMessage('LMFD_01','0'); break;
  case '2': sendDcsBiosMessage('LMFD_02','0'); break;
  case '3': sendDcsBiosMessage('LMFD_03','0'); break;
  case '4': sendDcsBiosMessage('LMFD_04','0'); break;
  case '5': sendDcsBiosMessage('LMFD_05','0'); break;
  case '6': sendDcsBiosMessage('LMFD_06','0'); break;
  case '7': sendDcsBiosMessage('LMFD_07','0'); break;
  case '8': sendDcsBiosMessage('LMFD_08','0'); break;
  case '9': sendDcsBiosMessage('LMFD_09','0'); break;
  case '10': sendDcsBiosMessage('LMFD_10','0'); break;
  case '11': sendDcsBiosMessage('LMFD_11','0'); break;
  case '12': sendDcsBiosMessage('LMFD_12','0'); break;
  case '13': sendDcsBiosMessage('LMFD_13','0'); break;
  case '14': sendDcsBiosMessage('LMFD_14','0'); break;
  case '15': sendDcsBiosMessage('LMFD_15','0'); break;
  case '16': sendDcsBiosMessage('LMFD_16','0'); break;
  case '17': sendDcsBiosMessage('LMFD_17','0'); break;
  case '18': sendDcsBiosMessage('LMFD_18','0'); break;
  case '19': sendDcsBiosMessage('LMFD_19','0'); break;
  case '20': sendDcsBiosMessage('LMFD_20','0'); break;
 
    }
  }
}

 
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...