-
Posts
133 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Everything posted by amido
-
io spero un ATC come quello di BMS, o almeno che si avvicini
-
ciao a tutti, io ho un x56 e vorrei prendere lo stick winwing. com'è? con il mio faccio una fatica bestiale a fare aar. vorrei sapere se ha laschi nei micro movimenti o se è preciso. grazie
-
ok, thanks a lot, always a lot of help. I'll try and see if there are no problems. again thank you very much
-
is it possible to make a single sketch for the commands of both 18 and 16?
-
this is what i use with arduino leonardo #include <Joystick.h> void setup() { // Initialize Button Pins pinMode(0, INPUT_PULLUP); pinMode(1, INPUT_PULLUP); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); pinMode(10, INPUT_PULLUP); // Initialize Joystick Library Joystick.begin(); } // Costante che mappa il pin fisico sul pulsante del joystick. const int pinToButtonMap = 0; // Ultimo stato del pulsante int lastButtonState[10] = {0,0,0,0}; void loop() { // Read pin values for (int index = 0; index < 6; index++) { int currentButtonState = !digitalRead(index + pinToButtonMap); if (currentButtonState != lastButtonState[index]) { Joystick.setButton(index, currentButtonState); lastButtonState[index] = currentButtonState; } } delay(50); }
- 75 replies
-
- 1
-
-
hello, I use this to export the ifei via lua file. IFEI_init.lua
-
Can anyone help me fix the sketch?
-
it should be one of these or all three, I attach the image. I think it's the former but I'm not sure /*------------------------------------ Visualizzazione del numero dello scratchpad --------- ------------------------------------*/ void onUfcScratchpadNumberDisplayChange(char* newValue) { /* il tuo codice qui */ ScPad[2] = newValue; // Copia i numeri nell'array dello scratchpad nella terza posizione dell'array DisplayScrn(); // Chiama la funzione Display Screen } DcsBios::StringBuffer<8> ufcScratchpadNumberDisplayBuffer(0x7446, onUfcScratchpadNumberDisplayChange); /*----------------------------------- scratchpad visualizzazione della prima stringa --------- ---------------------------------*/ void onUfcScratchpadString1DisplayChange(char* newValue) { /* qui il tuo codice */ ScPad[0] = newValue; // Copia 1st chr nell'array dello scratchpad alla 1a posizione nell'array DisplayScrn(); // Chiama la funzione Display Screen } DcsBios::StringBuffer<2> ufcScratchpadString1DisplayBuffer(0x744e, onUfcScratchpadString1DisplayChange); /*----------------------------------- scratchpad visualizzazione seconda stringa --------- ---------------------------------*/ void onUfcScratchpadString2DisplayChange(char* newValue) { /* qui il tuo codice */ ScPad[1] = newValue; // Copia il secondo chr nell'array dello scratchpad alla seconda posizione nell'array DisplayScrn(); // Chiama la funzione Display Screen } DcsBios::StringBuffer<2> ufcScratchpadString2DisplayBuffer(0x7450, onUfcScratchpadString2DisplayChange);
-
-
hello everyone, after a month of testing I managed to fix the UFC screens, but the only one I can't get to work is the screen where the radio frequency is indicated (central top) I am attaching the sketch to understand what is wrong #include <Adafruit_SSD1306.h> #include <splash.h> #define MUX_Address 0x70 // TCA9548A Encoders address #define DCSBIOS_IRQ_SERIAL #include "Wire.h" #include <U8glib.h> #include "DcsBios.h" Adafruit_SSD1306 oled(6); char* OpQue[5]; // Create Option Quing Global Array char* Dval[5]; // Create Option Display Global Array char* ScPad[3]; // Create Scratchpad Display Global Array char tmp_string[8]; // Temp string to convert numeric values to string before print to OLED display U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_FAST); // Fast I2C / TWI // Initialize I2C buses using TCA9548A I2C Multiplexer void tcaselect(uint8_t i2c_bus) { if (i2c_bus > return; Wire.beginTransmission(MUX_Address); Wire.write(1 << i2c_bus); Wire.endTransmission(); } /* paste code snippets from the reference documentation here */ /*------------------------------------ scratchpad number display --------------------------------------------*/ void onUfcScratchpadNumberDisplayChange(char* newValue) { /* your code here */ ScPad[2] = newValue; // Copy numbers into the scratchpad array at 3rd position in array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<8> ufcScratchpadNumberDisplayBuffer(0x7446, onUfcScratchpadNumberDisplayChange); /*----------------------------------- scratchpad 1st string display -----------------------------------------*/ void onUfcScratchpadString1DisplayChange(char* newValue) { /* your code here */ ScPad[0] = newValue; // Copy 1st chr into the scratchpad array at 1st position in array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<2> ufcScratchpadString1DisplayBuffer(0x744e, onUfcScratchpadString1DisplayChange); /*----------------------------------- scratchpad 2nd string display -----------------------------------------*/ void onUfcScratchpadString2DisplayChange(char* newValue) { /* your code here */ ScPad[1] = newValue; // Copy 2nd chr into scratchpad array at 2nd position in array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<2> ufcScratchpadString2DisplayBuffer(0x7450, onUfcScratchpadString2DisplayChange); /*---------------------------- Option Screen Displays ------------------------------*/ void onUfcOptionDisplay1Change(char* newValue) { /* your code here */ Dval[0] = newValue; // Copy the option screen 1 data into screen array DisplayScrn(); // Call the Display Screen function. Only needed a single // DisplayScrn() call as not all option screens will display // something when changed but option screen 1 ALWAYS changes } DcsBios::StringBuffer<4> ufcOptionDisplay1Buffer(0x7432, onUfcOptionDisplay1Change); /*---------------------------------------------------------------------------------*/ void onUfcOptionDisplay2Change(char* newValue) { /* your code here */ Dval[1] = newValue; // Copy the option screen 2 data into screen array } DcsBios::StringBuffer<4> ufcOptionDisplay2Buffer(0x7436, onUfcOptionDisplay2Change); /*--------------------------------------------------------------------------------*/ void onUfcOptionDisplay3Change(char* newValue) { /* your code here */ Dval[2] = newValue; // Copy the option screen 3 data into screen array } DcsBios::StringBuffer<4> ufcOptionDisplay3Buffer(0x743a, onUfcOptionDisplay3Change); /*-------------------------------------------------------------------------------*/ void onUfcOptionDisplay4Change(char* newValue) { /* your code here */ Dval[3] = newValue; // Copy the option screen 4 data into screen array } DcsBios::StringBuffer<4> ufcOptionDisplay4Buffer(0x743e, onUfcOptionDisplay4Change); /*-------------------------------------------------------------------------------*/ void onUfcOptionDisplay5Change(char* newValue) { /* your code here */ Dval[4] = newValue; // Copy the option screen 5 data into screen array } DcsBios::StringBuffer<4> ufcOptionDisplay5Buffer(0x7442, onUfcOptionDisplay5Change); /*--------------------------- Option Queing 1 -----------------------------------*/ void onUfcOptionCueing1Change(char* newValue) { /* your code here */ OpQue[0] = newValue; // Copy option 1 select value to option que array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<1> ufcOptionCueing1Buffer(0x7428, onUfcOptionCueing1Change); /*--------------------------- Option Queing 2 -----------------------------------*/ void onUfcOptionCueing2Change(char* newValue) { /* your code here */ OpQue[1] = newValue; // Copy option 2 select value to option que array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<1> ufcOptionCueing2Buffer(0x742a, onUfcOptionCueing2Change); /*--------------------------- Option Queing 3 -----------------------------------*/ void onUfcOptionCueing3Change(char* newValue) { /* your code here */ OpQue[2] = newValue; // Copy option 3 select value to option que array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<1> ufcOptionCueing3Buffer(0x742c, onUfcOptionCueing3Change); /*--------------------------- Option Queing 4 -----------------------------------*/ void onUfcOptionCueing4Change(char* newValue) { /* your code here */ OpQue[3] = newValue; // Copy option 4 select value to option que array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<1> ufcOptionCueing4Buffer(0x742e, onUfcOptionCueing4Change); /*--------------------------- Option Queing 5 -----------------------------------*/ void onUfcOptionCueing5Change(char* newValue) { /* your code here */ OpQue[4] = newValue; // Copy option 5 select value to option que array DisplayScrn(); // Call the Display Screen function } DcsBios::StringBuffer<1> ufcOptionCueing5Buffer(0x7430, onUfcOptionCueing5Change); /*------------------------------------------------------------------------------- The option queing changes are the " : " chr on the displays. The DisplayScrn() function needs to be called for each queing change as you are updating a Oled with data from 2 sources. You need to write the option queing value & the Display value together, if you just write the option queing value then that is all that will show on the Oled. ------------------------------ Setup Displays etc -----------------------------*/ void setup() { // Setup Starts DisplayInit(); // Initialize the displays function for the first time DcsBios::setup(); // Setup DCS specific functions } // Setup ends /*--------------------- Initialize the Displays Function ---------------------------------*/ void DisplayInit(){ // start of function for (int i = 0; i < 8; i++) { // Start of for loop to option & scratchpad screens // 0 is scratchpad 1-5 are option screens 6 and 7 is comm1 and comm2 tcaselect(i); // selects the multiplexer output for a screen starting // at 0 indexing to next screen each time through loop do { } while( u8g.nextPage() ); } // end of for loop } // end of function /* -------------------------- Main Program Loop From Here --------------------------------*/ void loop() { // Start Main Program Loop DcsBios::loop(); // run DCS Bios } // End Main Program Loop /*---------------------------------------------------------------------------------------------*/ void DisplayScrn(void) { // start of main display function for (int i = 0; i < 5; i++) { // Start of for loop to display option screens tcaselect(i+1); // Select each connected Option display on the I2C buses // " 0 " is scratchpad display hence " i+1 " to index onto the // correct bus for each Option Display screen u8g.firstPage(); do { u8g.setFont(u8g_font_helvB18); // standard nice size font for displays u8g.drawStr( 0,25,OpQue[i]); // Option selection value displayed u8g.drawStr( 15,25,Dval[i]); // Option choices displayed } while( u8g.nextPage() ); } // End of for loop to display option screens } // end of main display function u8g.begin();// Initialize displays u8g.setFont(u8g_font_helvB18); // standard nice size font for displays
-
ok, I'm almost there, I just have to figure out how to insert the central display of the comms.
-
thanks lesthegrngo I will try by modifying your code, I hope to succeed
-
this is the one with dcs bios [code] #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_Address 0x3C Adafruit_SSD1306 oled(6); #include "Wire.h" #define TCAADDR 0x70 #include <DcsBios.h> #include <Wire.h> #define DCSBIOS_IRQ_SERIAL // imposta lcd void tcaselect(uint8_t i) { if (i > 7) return; Wire.beginTransmission(TCAADDR); Wire.write(1 << i); Wire.endTransmission(); } void setup() { oled.begin(SSD1306_SWITCHCAPVCC, OLED_Address); Wire.begin(); //Clear all the display's tcaselect(0); oled.begin(); oled.clearDisplay(); oled.display(); tcaselect(1); oled.begin(); oled.clearDisplay(); oled.display(); tcaselect(2); oled.begin(); oled.clearDisplay(); oled.display(); tcaselect(3); oled.begin(); oled.clearDisplay(); oled.display(); } void loop() { tcaselect(0); // Text to Oled display 0 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido1"); oled.setTextSize(3); oled.display(); tcaselect(1);//Text to Oled display 1 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido2"); oled.setTextSize(3); oled.display(); oled.display(); tcaselect(2);//Text to Oled display 2 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido3"); oled.setTextSize(3); oled.display(); tcaselect(3);//Text to Oled display 3 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido4"); oled.setTextSize(3); oled.display(); delay(10000); // Wait 10 sec. } /* paste code snippets from the reference documentation here */ DcsBios::Switch2Pos ufc1("UFC_1", 52); DcsBios::Switch2Pos ufc2("UFC_2", 53); DcsBios::Switch2Pos ufc3("UFC_3", 50); DcsBios::Switch2Pos ufc4("UFC_4", 51); DcsBios::Switch2Pos ufc5("UFC_5", 48); DcsBios::Switch2Pos ufc6("UFC_6", 49); DcsBios::Switch2Pos ufc7("UFC_7", 46); DcsBios::Switch2Pos ufc8("UFC_8", 47); DcsBios::Switch2Pos ufc9("UFC_9", 44); DcsBios::Switch2Pos ufc0("UFC_0", 45); DcsBios::Switch2Pos ufcEnt("UFC_ENT", 42); DcsBios::Switch2Pos ufcClr("UFC_CLR", 43); DcsBios::Switch2Pos ufcOs1("UFC_OS1", 41); DcsBios::Switch2Pos ufcOs2("UFC_OS2", 40); DcsBios::Switch2Pos ufcOs3("UFC_OS3", 39); DcsBios::Switch2Pos ufcOs4("UFC_OS4", 38); DcsBios::Switch2Pos ufcOs5("UFC_OS5", 37); DcsBios::Switch2Pos masterCautionResetSw("MASTER_CAUTION_RESET_SW", 36); DcsBios::LED masterCautionLt(0x7408, 0x0200, 2); DcsBios::Switch2Pos ufcAp("UFC_AP", 35); DcsBios::Switch2Pos ufcIff("UFC_IFF", 34); DcsBios::Switch2Pos ufcTcn("UFC_TCN", 33); DcsBios::Switch2Pos ufcIls("UFC_ILS", 32); DcsBios::Switch2Pos ufcDl("UFC_DL", 31); DcsBios::Switch2Pos ufcBcn("UFC_BCN", 30); DcsBios::Switch2Pos ufcOnoff("UFC_ONOFF", 29); DcsBios::Switch2Pos hudAltSw("HUD_ALT_SW", 28); DcsBios::RotaryEncoder ufcComm1ChannelSelect("UFC_COMM1_CHANNEL_SELECT", "DEC", "INC", 26, 27); DcsBios::RotaryEncoder ufcComm2ChannelSelect("UFC_COMM2_CHANNEL_SELECT", "DEC", "INC", 25, 24); DcsBios::Switch2Pos ufcComm1Pull("UFC_COMM1_PULL", 23); DcsBios::Switch2Pos ufcComm2Pull("UFC_COMM2_PULL", 22); DcsBios::Switch3Pos leftDdiCrsSw("LEFT_DDI_CRS_SW", 21, 20); DcsBios::Switch3Pos leftDdiHdgSw("LEFT_DDI_HDG_SW", 19, 18); DcsBios::LED masterModeAaLt(0x740c, 0x0200, 3); DcsBios::LED masterModeAgLt(0x740c, 0x0400, 4); DcsBios::Switch2Pos masterArmSw("MASTER_ARM_SW", 17); DcsBios::Switch2Pos masterModeAa("MASTER_MODE_AA", 16); DcsBios::Switch2Pos masterModeAg("MASTER_MODE_AG", 15); DcsBios::Switch2Pos hookLever("HOOK_LEVER", 14); DcsBios::Switch2Pos hudSymBrtSelect("HUD_SYM_BRT_SELECT", 13); DcsBios::PotentiometerEWMA<5, 128, 5> hudSymBrt("HUD_SYM_BRT", A0); DcsBios::PotentiometerEWMA<5, 128, 5> hmdOffBrt("HMD_OFF_BRT", A1); void setup() { DcsBios::setup(); } void loop() { DcsBios::loop(); } [/code] and it gives me these errors, i'm just at the beginning of the programming i'm still learning, i can't get out of it In file included from C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino:7:0: C:\Users\nicola\Documents\Arduino\libraries\dcs-bios-arduino-library-master\src/DcsBios.h: In function 'bool sendDcsBiosMessage(const char*, const char*)': C:\Users\nicola\Documents\Arduino\libraries\dcs-bios-arduino-library-master\src/DcsBios.h:160:18: error: 'tryToSendDcsBiosMessage' is not a member of 'DcsBios' while(!DcsBios::tryToSendDcsBiosMessage(msg, arg)); ^~~~~~~~~~~~~~~~~~~~~~~ C:\Users\nicola\Documents\Arduino\libraries\dcs-bios-arduino-library-master\src/DcsBios.h:160:18: note: suggested alternative: 'sendDcsBiosMessage' while(!DcsBios::tryToSendDcsBiosMessage(msg, arg)); ^~~~~~~~~~~~~~~~~~~~~~~ sendDcsBiosMessage C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino: In function 'void setup()': DCS_F18_amido_lcd:131:6: error: redefinition of 'void setup()' void setup() { ^~~~~ C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino:20:6: note: 'void setup()' previously defined here void setup() ^~~~~ DCS_F18_amido_lcd:132:12: error: 'setup' is not a member of 'DcsBios' DcsBios::setup(); ^~~~~ C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino:132:12: note: suggested alternative: C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino:20:6: note: 'setup' void setup() ^~~~~ C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino: In function 'void loop()': DCS_F18_amido_lcd:135:6: error: redefinition of 'void loop()' void loop() { ^~~~ C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino:43:6: note: 'void loop()' previously defined here void loop() ^~~~ DCS_F18_amido_lcd:136:12: error: 'loop' is not a member of 'DcsBios' DcsBios::loop(); ^~~~ C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino:136:12: note: suggested alternative: C:\Users\nicola\Documents\Arduino\DCS_F18_amido_lcd\DCS_F18_amido_lcd.ino:43:6: note: 'loop' void loop() ^~~~ exit status 1 redefinition of 'void setup()'
-
I've been trying to get the ufc displays for the hornet to work for a month, but I can't, as soon as I enter the code for DCS Bios it gives me an error. how should i setup the sketch? [code] #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_Address 0x3C Adafruit_SSD1306 oled(1); #include "Wire.h" #define TCAADDR 0x70 void tcaselect(uint8_t i) { if (i > 7) return; Wire.beginTransmission(TCAADDR); Wire.write(1 << i); Wire.endTransmission(); } void setup() { oled.begin(SSD1306_SWITCHCAPVCC, OLED_Address); Wire.begin(); //Clear all the display's tcaselect(0); oled.begin(); oled.clearDisplay(); oled.display(); tcaselect(1); oled.begin(); oled.clearDisplay(); oled.display(); tcaselect(2); oled.begin(); oled.clearDisplay(); oled.display(); tcaselect(3); oled.begin(); oled.clearDisplay(); oled.display(); } void loop() { tcaselect(0); // Text to Oled display 0 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido1"); oled.setTextSize(3); oled.display(); tcaselect(1);//Text to Oled display 1 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido2"); oled.setTextSize(3); oled.display(); oled.display(); tcaselect(2);//Text to Oled display 2 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido3"); oled.setTextSize(3); oled.display(); tcaselect(3);//Text to Oled display 3 oled.begin(); oled.clearDisplay(); oled.setTextColor(WHITE); oled.setCursor(10,5); oled.println("Amido4"); oled.setTextSize(3); oled.display(); delay(10000); // Wait 10 sec. } [/code]
-
hello all, i have a problem with the sketch for ufc f 18. i can't get 0.91 inch screens to work. I use the TCA9548A multiplexer. I've searched the internet but the ones I've found always give me errors. Could any of you help me? thank you and wish you a happy new year
-
ufc finished at 90%, now I'm trying to insert 0.91 inch screens. on the left side I have the master arm with the AA and AG modes, while on the right side I have the HOOK and HMD.
-
ciao f1pier, stavo proprio per installare i display, hai un codice per arduino mega 2560? devo usare un multiplex per collegare i 6 quadranti alla mega vero? grazie mille per l'aiuto
-
Hi, I can't get the 0.91 inch screen to work for the F18 ufc. this is the sketch : #define DCSBIOS_DEFAULT_SERIAL #include <DcsBios.h> #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display ancho en pixels #define SCREEN_HEIGHT 32 // OLED display altura en pixels #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); int count; ///////////////////////// SETUP ////////////////////////////////////////////////////////////// void setup() { count = 0; display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay(); display.setTextSize(1,2); display.setTextColor(WHITE); display.setCursor(0,0); display.cp437(true); display.print("N-A-12"); display.display(); display.setTextSize(1,2); DcsBios::setup(); } /////////////////////////// LOOP //////////////////////////////////////////////////////// void loop() { DcsBios::loop(); } ////////////////////////////Config Display /////////////////////////////////////////////////////// String comDisplay[2]; void updateComDisplay(int changed,char* newValue) { comDisplay[changed] = cleanUpCom(newValue); display.clearDisplay(); display.setCursor(0,0); display.print(comDisplay[0]); display.setCursor(35,0); display.print(comDisplay[1]); display.display(); } char* cleanUpCom(char* newValue) { switch (newValue[0]) { case '`': newValue[0]='1'; break; case '~': newValue[0]='2'; break; } return newValue; } //////////////////////////////////// DISPLAY UFC F18 ///////////////////////////////////////////////////// void onUfcOptionDisplay1Change(char* newValue) { updateComDisplay(0, newValue); } DcsBios::StringBuffer<4> ufcOptionDisplay1Buffer(0x7432, onUfcOptionDisplay1Change); I put the SDA and SCK contacts on the arduino mega 2560 in A5 and A4 there is something I can't understand, it doesn't give me any kind of error
-
the measurements you said are more or less exact, as soon as I find where I put the usb key with the plans of 16 I put them here
-
as Mapi rightly said you have to add a string of code at the end to the IFEI_init.lua file. Like this: IFEI_init.lua find it here: C:\Eagle Dynamics\DCS World\Mods\aircraft\FA-18C\Cockpit\Scripts\IFEI\indicator you have to overwrite it at each update otherwise it will return as before for the other instruments I don't know where to find them, I asked the same question too but no one answered me
-
anyone who can explain to me how to export digital tools in monitor.lua file?
-
how can i insert in the lua file of the monitor also the digital instruments under the right DDI?