Jump to content

Hansolo

Members
  • Posts

    1775
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Hansolo

  1. I don't think your problem is related to SOCAT at all. First of all SOCAT handles the communication between DCS and the Arduino panels and you describe that the error you are getting is from the Arduino IDE during compiling. At this point SOCAT isn't running at all. Secondly the reason why the compilation is terminated is described; It means that while compiling and using Switches.h it found a reference it cannot find. I just downloaded the dcs-bios-arduino-libary-0.2.16 and found following in the Switches.h; #ifndef __DCSBIOS_SWITCHES_H #define __DCSBIOS_SWITCHES_H #include <math.h> #include "Arduino.h" #include "SwitchMatrix.h" SwitchMatrix swPanel = SwitchMatrix(); However when you look at the \dcs-bios-arduino-library-0.2.16\src\internal location the SwitchMatrix.h isn't there; It may be because you need to find the SwitchMatrix.h elsewhere and install using your Arduino IDE Cheers Hans
  2. Hi Les, Yes that is perfect Cheers Hans
  3. Yes you need a Mega to run as RS-485 Master. The Uno, Nano, Micro only have one serial ports called UART (universal asynchronous receiver-transmitter) port while the Mega has four UART ports. The first/only UART is connected directly to the onboard USB-to-serial interface and is used when you load a sketch unto the board. This is the reason why you should normally not use pins 0(RX) and 1(TX). In order to run a Master unit you need one UART port to handle the communication via USB-to-serial interface to the computer running DCS-BIOS AND another UART to run the RS-485 communication via a MAX487 chip. This will rule out Nano, Uno etc. The only other Arduino having more than one UART is the Due but IIRCC then that cannot run RS-485 with DCS-BIOS as the DCS-BIOS code won't work on the ARM processor of the Due. In theory a Mega Master can run 3 separate RS-485 communication lines. I seem to recall that Ian wasn't sure the Mega have the processor power to handle 3x RS-485 lines at the same time but should be able to handle two. Here is a little more on the serial communication on the Arduinos; https://www.arduino.cc/reference/en/language/functions/communication/serial/ On the slave side you only need one UART to communicate with the MAX487 chip. As far as I can read up on UART should not be mistaken for RS-232. They operate on different voltage levels as well as logic levels are in inverted BUT the UART can be used to run a RS-232 driver chip similar to what we use for RS-485. https://electronics.stackexchange.com/questions/274287/what-is-the-difference-between-rs-232-and-ttl-uart Cheers Hans
  4. Hi rocketeer, I used the method GSS Rain/Joe Sim used in this YT Diagram is seen 5m51s It's a NAND chip that basically send the fifth pin if none of the others are active. It might be that it's easier to re-write the DCS-BIOS code but I found this working and haven't looked back. Credit for the solution is GSS Rain/Joe Sim :thumbup: Cheers Hans
  5. If it already 12VDC then you can use that if you want. Alternatively then of cause 5vdc regulator can do the trick Cheers Hans
  6. If you delete that particular file then it will go back to default Cheers Solo
  7. @Blue73 while looking for your power layout for Mr. Burns I just realized how many posts in your thread I had not seem. Simply jaw breaking and extraordinary work there sir. Hats off to you for your creations, sir :thumbsup: Cheers Hans
  8. Hi Mr. Burns, The 12VDC is mostly needed for the magnetic held toggle switches, but also because way back I did experience issues with running a 1602 LCD off an external 5VDC power supply. There wasn’t enough power to handle the contrast but after supplying the Arduinos with 12VDC it worked everytime. Granted I could have been something else that caused it as this was back in 2013 (https://forums.eagle.ru/showpost.php?p=1669869&postcount=25) and it ran an ethernet shield as well. Therefore based upon above I set to use 12VDC on all the boards, so the Mega Master and all the slaves which a re mix of Nano’s and Mega’s all have 12VDC on the VIN pin. Could I have used 9VDC? Possibly but I am running off an old ATX PC power supply which has both 5VDC and 12VDC available. Now to your question. Do you need 12VDC? Possibly not but I think you would need an external power source nonetheless, as you would otherwise have to run USB power for all of them. If you power the Nano’s on the VIN pin then you need 7-12VDC because it has an internal voltage regulator which a little higher voltage then output to operate. I.e. applying 5VDC on the VIN will not get you 5VDC for the internal circuits. You can apply 5VDC to the +5V pin on the Nano’s. However this will bypass the voltage regulator (!!) and if you get a voltage spike on your 5VDC then it may fry your Nano’s. If you go down this path do like Blue73 did (https://forums.eagle.ru/showpost.php?p=3789267&postcount=207) where he had a common 5VDC regulator to protect all your Arduino’s. Possibly this could be 5VDC from an old PC ATX power supply. The VIN on your Mega Master shouldn’t be able to give you 5VDC out. In the VIN circuit there is an operational amplifier and a MOSFET and I don’t think you can send voltage in the reverse direction. Last but not least the junction boxes, not as tidy as you would think; Input from Mega Master Output to left side console junction box However they get the job done. The PCB is just stripboards similar to this https://www.ebay.com/itm/Strip-Board-Printed-Circuit-PCB-Vero-Prototyping-Track-Packs-of-5/261199157440?hash=item3cd0aed8c0:m:mDZYtyKIelPhIfrJ34_SRVg The advantage is that I can unplug any panel and keep running on the remaining. The input to the junction box is via a male DB9 and all connections to panel as well as to the next junction box is via female DB9’s. One mistake done on these are that the bulk of the DB9 are situated a little too close so currently I can’t have the plastic housing on them. Oh well you build you learn :-D Hope this helped you a little bit otherwise please ask again. Cheers Hans
  9. Sorry Gents, They are gone. Happy Easter Cheers Hans
  10. Wilco Sir, Cheers Hans
  11. Update: Pending shipment to Marsy Hello fellow simmers, Did a spring clean-up and decided that I don’t have use for the following self-made panels; Caution panel ( ) Aux. Avionics Panel Electrical power panel Light Panel Fuel control panel AM/FM/UHF radio panel The panels come as shown in picture i.e. some are missing knobs, potentiometers etc. They come without control boards, The radio panel was used with a BBI-32 as well as a B256A13 board from Brydling but can easily be converted. There are some extra toggle switches also. Panels are free of charge apart for shipping costs which will be at receiver’s expense. Sending to UK shows up as app. 40 Euro using Danish postal service :cry: Disclaimer: These are self-made and do not hold standard of other suppliers (PCFlights/Lynx). They also do not hold specs. A stupid decision when started made me produce panels in 150mm width instead of the 146.01mm (5.75”) so they are all scaled 2.7% too big. Whether you want to use them as they are, modify them or just use the switches/encoders etc are of cause up to you. But if they are gutted please don’t sell them to someone else. Let me know if any of you have interest in them. Have a great Easter Cheers Hans
  12. Awesome work Propnut :thumbup: Looking forward for a small vid showing while running Cheers Hans
  13. Very cool Sir. Nice catch Cheers Hans
  14. CDU Sketch error CptSasquatch notified me that he got an error when compiling my CDU sketch. Initially I thought the error may be caused by translation from Danish keyboard to an English one, since my character shows as ½ whereas his show up as ½. I tried to see if I my mapping was wrong but electrically mine is alright. Turns out that ½ cannot be used. So in order to get my CDU sketch working the '½' needs to be replaced with a 'd' if all three places where ½ had been used. Then it should work. In the code below I included the right and left arrow as +/- rocker; /* The following #define tells DCS-BIOS that this is a RS-485 slave device. It also sets the address of this slave device. The slave address should be between 1 and 126 and must be unique among all devices on the same bus. */ #define DCSBIOS_RS485_SLAVE 15 /* The Arduino pin that is connected to the /RE and DE pins on the RS-485 transceiver. */ #define TXENABLE_PIN 2 #include <Keypad.h> #include "DcsBios.h" /* paste code snippets from the reference documentation here */ const byte ROWS = 8; //four rows const byte COLS = 9; //three columns char keys[ROWS][COLS] = { {'!','"','#','c','%','F','L','R','X'}, {'&','E','K','Q','W','Z'}, {'|','D','J','P','V','Y','('}, {')','C','I','O','U','=','@','£','$'}, {'{','A','B','G','H','M','N','S','T'}, {':','3','6','9','[','>','/',',','*'}, {';','2','5','8','0','-','<','}','d'}, {'+',']','_','a','b','1','4','7','.'}, }; byte rowPins[ROWS] = {13, A0, A1, 12, A2, A3, A4, A5}; //connect to the row pinouts of the keypad byte colPins[COLS] = {11, 9, 7, 10, 8, 6, 5, 4, 3}; //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 50mS } void loop() { DcsBios::loop(); char key = keypad.getKey(); } void keypadEvent(KeypadEvent KEY){ switch (keypad.getState()) { // gives PRESSED, HOLD or RELEASED case PRESSED: // If someone finds a better solution as switch - case: Let me know, please :) switch(KEY) { // following commands are fired unique if PRESSED //CDU case 'A': sendDcsBiosMessage("CDU_A", "1"); break; case 'B': sendDcsBiosMessage("CDU_B", "1"); break; case 'C': sendDcsBiosMessage("CDU_C", "1"); break; case 'D': sendDcsBiosMessage("CDU_D", "1"); break; case 'E': sendDcsBiosMessage("CDU_E", "1"); break; case 'F': sendDcsBiosMessage("CDU_F", "1"); break; case 'G': sendDcsBiosMessage("CDU_G", "1"); break; case 'H': sendDcsBiosMessage("CDU_H", "1"); break; case 'I': sendDcsBiosMessage("CDU_I", "1"); break; case 'J': sendDcsBiosMessage("CDU_J", "1"); break; case 'K': sendDcsBiosMessage("CDU_K", "1"); break; case 'L': sendDcsBiosMessage("CDU_L", "1"); break; case 'M': sendDcsBiosMessage("CDU_M", "1"); break; case 'N': sendDcsBiosMessage("CDU_N", "1"); break; case 'O': sendDcsBiosMessage("CDU_O", "1"); break; case 'P': sendDcsBiosMessage("CDU_P", "1"); break; case 'Q': sendDcsBiosMessage("CDU_Q", "1"); break; case 'R': sendDcsBiosMessage("CDU_R", "1"); break; case 'S': sendDcsBiosMessage("CDU_S", "1"); break; case 'T': sendDcsBiosMessage("CDU_T", "1"); break; case 'U': sendDcsBiosMessage("CDU_U", "1"); break; case 'V': sendDcsBiosMessage("CDU_V", "1"); break; case 'W': sendDcsBiosMessage("CDU_W", "1"); break; case 'X': sendDcsBiosMessage("CDU_X", "1"); break; case 'Y': sendDcsBiosMessage("CDU_Y", "1"); break; case 'Z': sendDcsBiosMessage("CDU_Z", "1"); break; case '0': sendDcsBiosMessage("CDU_0", "1"); break; case '1': sendDcsBiosMessage("CDU_1", "1"); break; case '2': sendDcsBiosMessage("CDU_2", "1"); break; case '3': sendDcsBiosMessage("CDU_3", "1"); break; case '4': sendDcsBiosMessage("CDU_4", "1"); break; case '5': sendDcsBiosMessage("CDU_5", "1"); break; case '6': sendDcsBiosMessage("CDU_6", "1"); break; case '7': sendDcsBiosMessage("CDU_7", "1"); break; case '8': sendDcsBiosMessage("CDU_8", "1"); break; case '9': sendDcsBiosMessage("CDU_9", "1"); break; case '.': sendDcsBiosMessage("CDU_POINT", "1"); break; case '/': sendDcsBiosMessage("CDU_SLASH", "1"); break; case '!': sendDcsBiosMessage("CDU_LSK_3R", "1"); break; case '"': sendDcsBiosMessage("CDU_LSK_5R", "1"); break; case '#': sendDcsBiosMessage("CDU_LSK_7R", "1"); break; case 'c': sendDcsBiosMessage("CDU_LSK_9R", "1"); break; case '+': sendDcsBiosMessage("CDU_LSK_3L", "1"); break; case ']': sendDcsBiosMessage("CDU_LSK_5L", "1"); break; case '_': sendDcsBiosMessage("CDU_LSK_7L", "1"); break; case 'a': sendDcsBiosMessage("CDU_LSK_9L", "1"); break; case '[': sendDcsBiosMessage("CDU_PG", "2"); break; case 'd': sendDcsBiosMessage("CDU_PG", "0"); break; case '>': sendDcsBiosMessage("CDU_DATA", "2"); break; case '<': sendDcsBiosMessage("CDU_DATA", "0"); break; case 'b': sendDcsBiosMessage("CDU_SYS", "1"); break; case '{': sendDcsBiosMessage("CDU_NAV", "1"); break; case ')': sendDcsBiosMessage("CDU_WP", "1"); break; case '|': sendDcsBiosMessage("CDU_OSET", "1"); break; case '&': sendDcsBiosMessage("CDU_FPM", "1"); break; case '%': sendDcsBiosMessage("CDU_PREV", "1"); break; case '(': sendDcsBiosMessage("CDU_MK", "1"); break; case '}': sendDcsBiosMessage("CDU_CLR", "1"); break; case '=': sendDcsBiosMessage("CDU_BCK", "1"); break; case '@': sendDcsBiosMessage("CDU_SPC", "1"); break; case '$': sendDcsBiosMessage("CDU_FA", "1"); break; }} switch (keypad.getState()){ // gives PRESSED, HOLD or RELEASED case RELEASED: switch(KEY) { // Released KEYs or Neutral Rockers signal is sent //CDU case 'A': sendDcsBiosMessage("CDU_A", "0"); break; case 'B': sendDcsBiosMessage("CDU_B", "0"); break; case 'C': sendDcsBiosMessage("CDU_C", "0"); break; case 'D': sendDcsBiosMessage("CDU_D", "0"); break; case 'E': sendDcsBiosMessage("CDU_E", "0"); break; case 'F': sendDcsBiosMessage("CDU_F", "0"); break; case 'G': sendDcsBiosMessage("CDU_G", "0"); break; case 'H': sendDcsBiosMessage("CDU_H", "0"); break; case 'I': sendDcsBiosMessage("CDU_I", "0"); break; case 'J': sendDcsBiosMessage("CDU_J", "0"); break; case 'K': sendDcsBiosMessage("CDU_K", "0"); break; case 'L': sendDcsBiosMessage("CDU_L", "0"); break; case 'M': sendDcsBiosMessage("CDU_M", "0"); break; case 'N': sendDcsBiosMessage("CDU_N", "0"); break; case 'O': sendDcsBiosMessage("CDU_O", "0"); break; case 'P': sendDcsBiosMessage("CDU_P", "0"); break; case 'Q': sendDcsBiosMessage("CDU_Q", "0"); break; case 'R': sendDcsBiosMessage("CDU_R", "0"); break; case 'S': sendDcsBiosMessage("CDU_S", "0"); break; case 'T': sendDcsBiosMessage("CDU_T", "0"); break; case 'U': sendDcsBiosMessage("CDU_U", "0"); break; case 'V': sendDcsBiosMessage("CDU_V", "0"); break; case 'W': sendDcsBiosMessage("CDU_W", "0"); break; case 'X': sendDcsBiosMessage("CDU_X", "0"); break; case 'Y': sendDcsBiosMessage("CDU_Y", "0"); break; case 'Z': sendDcsBiosMessage("CDU_Z", "0"); break; case '0': sendDcsBiosMessage("CDU_0", "0"); break; case '1': sendDcsBiosMessage("CDU_1", "0"); break; case '2': sendDcsBiosMessage("CDU_2", "0"); break; case '3': sendDcsBiosMessage("CDU_3", "0"); break; case '4': sendDcsBiosMessage("CDU_4", "0"); break; case '5': sendDcsBiosMessage("CDU_5", "0"); break; case '6': sendDcsBiosMessage("CDU_6", "0"); break; case '7': sendDcsBiosMessage("CDU_7", "0"); break; case '8': sendDcsBiosMessage("CDU_8", "0"); break; case '9': sendDcsBiosMessage("CDU_9", "0"); break; case '.': sendDcsBiosMessage("CDU_POINT", "0"); break; case '/': sendDcsBiosMessage("CDU_SLASH", "0"); break; case '!': sendDcsBiosMessage("CDU_LSK_3R", "0"); break; case '"': sendDcsBiosMessage("CDU_LSK_5R", "0"); break; case '#': sendDcsBiosMessage("CDU_LSK_7R", "0"); break; case 'c': sendDcsBiosMessage("CDU_LSK_9R", "0"); break; case '+': sendDcsBiosMessage("CDU_LSK_3L", "0"); break; case ']': sendDcsBiosMessage("CDU_LSK_5L", "0"); break; case '_': sendDcsBiosMessage("CDU_LSK_7L", "0"); break; case 'a': sendDcsBiosMessage("CDU_LSK_9L", "0"); break; case '[': sendDcsBiosMessage("CDU_PG", "1"); break; case 'd': sendDcsBiosMessage("CDU_PG", "1"); break; case '>': sendDcsBiosMessage("CDU_DATA", "1"); break; case '<': sendDcsBiosMessage("CDU_DATA", "1"); break; case 'b': sendDcsBiosMessage("CDU_SYS", "0"); break; case '{': sendDcsBiosMessage("CDU_NAV", "0"); break; case ')': sendDcsBiosMessage("CDU_WP", "0"); break; case '|': sendDcsBiosMessage("CDU_OSET", "0"); break; case '&': sendDcsBiosMessage("CDU_FPM", "0"); break; case '%': sendDcsBiosMessage("CDU_PREV", "0"); break; case '(': sendDcsBiosMessage("CDU_MK", "0"); break; case '}': sendDcsBiosMessage("CDU_CLR", "0"); break; case '=': sendDcsBiosMessage("CDU_BCK", "0"); break; case '@': sendDcsBiosMessage("CDU_SPC", "0"); break; case '$': sendDcsBiosMessage("CDU_FA", "0"); break; }} } Good catch CptSasquatch :thumbup: Have a great Easter Cheers Hans
  15. Take a look here; https://forums.eagle.ru/showpost.php?p=3475167&postcount=221 Post 222 contains the arduino code. Cheers Solo
  16. Nice work Propnut and good to see you back in the Home Cockpits section :smilewink: Cheers Hans
  17. Deadmeat used airspeed gauge position; https://forums.eagle.ru/showthread.php?t=220201 Cheers Hans
  18. Hi Sierra99, I looked at the boards from Sismo Soluciones way back but couldn't find heads and tails on how to get it to speek with DCS. The main board talks to the PC via Ethernet but how the information exchange is between DCS and the Ethernet I have no idea. With DCS-BIOS Ian's has made the interface from DCS to the USB connection which includes the export file. I would imagine it's possible to do similar Sismo Soluciones but you may have to write it all yourself. It may be similar to the SIOC which I think Duckling is still using. My advise would be to use DCS-BIOS. If making the boards yourself sound too scary please look up Tekkx. Draken152 is using Tekkx's boards for his pit; https://forums.eagle.ru/showpost.php?p=3470952&postcount=139 Cheers Hans
  19. Not necessarily. I got a batch where some of the Max487 chips were bad. I eventually figured out that it could easily be identified as they ran really hot. So maybe the wiring is ok but the chips are bad. Cheers Hans
  20. Looks absolutely awesome. Very nice job Sir :thumbup: Cheers Solo
  21. IMHO you can't. The BBI-32 is an input card and you need an output. I'd suggest you take a look at DCS-BIOS. Alternatively you can use a PhidgetLED 64 card and Helios. But the card is $78. Using an Arduino Nano and a few LED + resistors will enable you to run the Master Caution LED for less then $10. Cheers Solo
  22. Hi AndrewW, Yes you can. I am running the IFF, both AN/ARC-186's, AN/ARC-164 and ILS panel over RS-485. Cheers Hans
  23. Beautiful work @WhoMadeWho :thumbup: With your skill level you will have no issue figuring out RS485 but in case you got questions just let me know Sir. Cheers Hans
  24. Sorry Super Sloth Six, I forgot #define DCSBIOS_IRQ_SERIAL in the beginning of the code. My bad. Have been corrected now Cheers Solo
  25. Converting into USB isn't too bad. He just needs to use one of the serial sketches, e.g. IRQSerial which is one of the example sketches supplied by DCS-BIOS; #define DCSBIOS_IRQ_SERIAL #include <Keypad.h> #include "DcsBios.h" /* paste code snippets from the reference documentation here */ const byte ROWS = 8; //four rows const byte COLS = 9; //three columns char keys[ROWS][COLS] = { {'!','"','#','c','%','F','L','R','X'}, {'&','E','K','Q','W','Z'}, {'|','D','J','P','V','Y','('}, {')','C','I','O','U','=','@','£','$'}, {'{','A','B','G','H','M','N','S','T'}, {':','3','6','9','[','>','/',',','*'}, {';','2','5','8','0','-','<','}','½'}, {'+',']','_','a','b','1','4','7','.'}, }; byte rowPins[ROWS] = {13, A0, A1, 12, A2, A3, A4, A5}; //connect to the row pinouts of the keypad byte colPins[COLS] = {11, 9, 7, 10, 8, 6, 5, 4, 3}; //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 50mS } void loop() { DcsBios::loop(); char key = keypad.getKey(); } void keypadEvent(KeypadEvent KEY){ switch (keypad.getState()) { // gives PRESSED, HOLD or RELEASED case PRESSED: // If someone finds a better solution as switch - case: Let me know, please :) switch(KEY) { // following commands are fired unique if PRESSED //CDU case 'A': sendDcsBiosMessage("CDU_A", "1"); break; case 'B': sendDcsBiosMessage("CDU_B", "1"); break; case 'C': sendDcsBiosMessage("CDU_C", "1"); break; case 'D': sendDcsBiosMessage("CDU_D", "1"); break; case 'E': sendDcsBiosMessage("CDU_E", "1"); break; case 'F': sendDcsBiosMessage("CDU_F", "1"); break; case 'G': sendDcsBiosMessage("CDU_G", "1"); break; case 'H': sendDcsBiosMessage("CDU_H", "1"); break; case 'I': sendDcsBiosMessage("CDU_I", "1"); break; case 'J': sendDcsBiosMessage("CDU_J", "1"); break; case 'K': sendDcsBiosMessage("CDU_K", "1"); break; case 'L': sendDcsBiosMessage("CDU_L", "1"); break; case 'M': sendDcsBiosMessage("CDU_M", "1"); break; case 'N': sendDcsBiosMessage("CDU_N", "1"); break; case 'O': sendDcsBiosMessage("CDU_O", "1"); break; case 'P': sendDcsBiosMessage("CDU_P", "1"); break; case 'Q': sendDcsBiosMessage("CDU_Q", "1"); break; case 'R': sendDcsBiosMessage("CDU_R", "1"); break; case 'S': sendDcsBiosMessage("CDU_S", "1"); break; case 'T': sendDcsBiosMessage("CDU_T", "1"); break; case 'U': sendDcsBiosMessage("CDU_U", "1"); break; case 'V': sendDcsBiosMessage("CDU_V", "1"); break; case 'W': sendDcsBiosMessage("CDU_W", "1"); break; case 'X': sendDcsBiosMessage("CDU_X", "1"); break; case 'Y': sendDcsBiosMessage("CDU_Y", "1"); break; case 'Z': sendDcsBiosMessage("CDU_Z", "1"); break; case '0': sendDcsBiosMessage("CDU_0", "1"); break; case '1': sendDcsBiosMessage("CDU_1", "1"); break; case '2': sendDcsBiosMessage("CDU_2", "1"); break; case '3': sendDcsBiosMessage("CDU_3", "1"); break; case '4': sendDcsBiosMessage("CDU_4", "1"); break; case '5': sendDcsBiosMessage("CDU_5", "1"); break; case '6': sendDcsBiosMessage("CDU_6", "1"); break; case '7': sendDcsBiosMessage("CDU_7", "1"); break; case '8': sendDcsBiosMessage("CDU_8", "1"); break; case '9': sendDcsBiosMessage("CDU_9", "1"); break; case '.': sendDcsBiosMessage("CDU_POINT", "1"); break; case '/': sendDcsBiosMessage("CDU_SLASH", "1"); break; case '!': sendDcsBiosMessage("CDU_LSK_3R", "1"); break; case '"': sendDcsBiosMessage("CDU_LSK_5R", "1"); break; case '#': sendDcsBiosMessage("CDU_LSK_7R", "1"); break; case 'c': sendDcsBiosMessage("CDU_LSK_9R", "1"); break; case '+': sendDcsBiosMessage("CDU_LSK_3L", "1"); break; case ']': sendDcsBiosMessage("CDU_LSK_5L", "1"); break; case '_': sendDcsBiosMessage("CDU_LSK_7L", "1"); break; case 'a': sendDcsBiosMessage("CDU_LSK_9L", "1"); break; case '[': sendDcsBiosMessage("CDU_PG", "2"); break; case '½': sendDcsBiosMessage("CDU_PG", "0"); break; case 'b': sendDcsBiosMessage("CDU_SYS", "1"); break; case '{': sendDcsBiosMessage("CDU_NAV", "1"); break; case ')': sendDcsBiosMessage("CDU_WP", "1"); break; case '|': sendDcsBiosMessage("CDU_OSET", "1"); break; case '&': sendDcsBiosMessage("CDU_FPM", "1"); break; case '%': sendDcsBiosMessage("CDU_PREV", "1"); break; case '(': sendDcsBiosMessage("CDU_MK", "1"); break; case '}': sendDcsBiosMessage("CDU_CLR", "1"); break; case '=': sendDcsBiosMessage("CDU_BCK", "1"); break; case '@': sendDcsBiosMessage("CDU_SPC", "1"); break; case '$': sendDcsBiosMessage("CDU_FA", "1"); break; }} switch (keypad.getState()){ // gives PRESSED, HOLD or RELEASED case RELEASED: // LMFD switch(KEY) { // Released KEYs or Neutral Rockers signal is sent //CDU case 'A': sendDcsBiosMessage("CDU_A", "0"); break; case 'B': sendDcsBiosMessage("CDU_B", "0"); break; case 'C': sendDcsBiosMessage("CDU_C", "0"); break; case 'D': sendDcsBiosMessage("CDU_D", "0"); break; case 'E': sendDcsBiosMessage("CDU_E", "0"); break; case 'F': sendDcsBiosMessage("CDU_F", "0"); break; case 'G': sendDcsBiosMessage("CDU_G", "0"); break; case 'H': sendDcsBiosMessage("CDU_H", "0"); break; case 'I': sendDcsBiosMessage("CDU_I", "0"); break; case 'J': sendDcsBiosMessage("CDU_J", "0"); break; case 'K': sendDcsBiosMessage("CDU_K", "0"); break; case 'L': sendDcsBiosMessage("CDU_L", "0"); break; case 'M': sendDcsBiosMessage("CDU_M", "0"); break; case 'N': sendDcsBiosMessage("CDU_N", "0"); break; case 'O': sendDcsBiosMessage("CDU_O", "0"); break; case 'P': sendDcsBiosMessage("CDU_P", "0"); break; case 'Q': sendDcsBiosMessage("CDU_Q", "0"); break; case 'R': sendDcsBiosMessage("CDU_R", "0"); break; case 'S': sendDcsBiosMessage("CDU_S", "0"); break; case 'T': sendDcsBiosMessage("CDU_T", "0"); break; case 'U': sendDcsBiosMessage("CDU_U", "0"); break; case 'V': sendDcsBiosMessage("CDU_V", "0"); break; case 'W': sendDcsBiosMessage("CDU_W", "0"); break; case 'X': sendDcsBiosMessage("CDU_X", "0"); break; case 'Y': sendDcsBiosMessage("CDU_Y", "0"); break; case 'Z': sendDcsBiosMessage("CDU_Z", "0"); break; case '0': sendDcsBiosMessage("CDU_0", "0"); break; case '1': sendDcsBiosMessage("CDU_1", "0"); break; case '2': sendDcsBiosMessage("CDU_2", "0"); break; case '3': sendDcsBiosMessage("CDU_3", "0"); break; case '4': sendDcsBiosMessage("CDU_4", "0"); break; case '5': sendDcsBiosMessage("CDU_5", "0"); break; case '6': sendDcsBiosMessage("CDU_6", "0"); break; case '7': sendDcsBiosMessage("CDU_7", "0"); break; case '8': sendDcsBiosMessage("CDU_8", "0"); break; case '9': sendDcsBiosMessage("CDU_9", "0"); break; case '.': sendDcsBiosMessage("CDU_POINT", "0"); break; case '/': sendDcsBiosMessage("CDU_SLASH", "0"); break; case '!': sendDcsBiosMessage("CDU_LSK_3R", "0"); break; case '"': sendDcsBiosMessage("CDU_LSK_5R", "0"); break; case '#': sendDcsBiosMessage("CDU_LSK_7R", "0"); break; case 'c': sendDcsBiosMessage("CDU_LSK_9R", "0"); break; case '+': sendDcsBiosMessage("CDU_LSK_3L", "0"); break; case ']': sendDcsBiosMessage("CDU_LSK_5L", "0"); break; case '_': sendDcsBiosMessage("CDU_LSK_7L", "0"); break; case 'a': sendDcsBiosMessage("CDU_LSK_9L", "0"); break; case '[': sendDcsBiosMessage("CDU_PG", "1"); break; case '½': sendDcsBiosMessage("CDU_PG", "1"); break; case 'b': sendDcsBiosMessage("CDU_SYS", "0"); break; case '{': sendDcsBiosMessage("CDU_NAV", "0"); break; case ')': sendDcsBiosMessage("CDU_WP", "0"); break; case '|': sendDcsBiosMessage("CDU_OSET", "0"); break; case '&': sendDcsBiosMessage("CDU_FPM", "0"); break; case '%': sendDcsBiosMessage("CDU_PREV", "0"); break; case '(': sendDcsBiosMessage("CDU_MK", "0"); break; case '}': sendDcsBiosMessage("CDU_CLR", "0"); break; case '=': sendDcsBiosMessage("CDU_BCK", "0"); break; case '@': sendDcsBiosMessage("CDU_SPC", "0"); break; case '$': sendDcsBiosMessage("CDU_FA", "0"); break; }} } Cheers Solo
×
×
  • Create New...