Buenas a todos.
Estoy haciendo pruebas con una impresora 3D modificando el firmware de Marlin.
Para el que no lo conozca, en ese firmware el .ino no tiene el setup y el loop. Va en un Marlin_main.cpp y mediante los .h enlazas todos los archivos.
Mi idea es que en el .ino le ponga esta línea:
#define VERSION "PRUEBA 1.0"
Y luego en el Marlin_main.cpp crear un case para que al recibir una determinada instrucción (M118, por ejemplo) mande por el puerto serie el string de arriba.
case 118: // M118: mandar version
SERIAL_PROTOCOLNPGM(VERSION_PRUEBA);
break;
El .ino con esa línea adicional es:
#include "MarlinConfig.h"
#define VERSION_PRUEBA "PRUEBA 1.0"
#if ENABLED(ULTRA_LCD)
#if ENABLED(LCD_I2C_TYPE_PCF8575)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#elif ENABLED(LCD_I2C_TYPE_MCP23017) || ENABLED(LCD_I2C_TYPE_MCP23008)
#include <Wire.h>
#include <LiquidTWI2.h>
#elif ENABLED(LCM1602)
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#elif ENABLED(DOGLCD)
#include <U8glib.h> // library for graphics LCD by Oli Kraus (https://github.com/olikraus/U8glib_Arduino)
#else
#include <LiquidCrystal.h> // library for character LCD
#endif
#endif
#if HAS_DIGIPOTSS
#include <SPI.h>
#endif
#if ENABLED(DIGIPOT_I2C)
#include <Wire.h>
#endif
#if ENABLED(HAVE_TMCDRIVER)
#include <SPI.h>
#include <TMC26XStepper.h>
#endif
#if ENABLED(HAVE_L6470DRIVER)
#include <SPI.h>
#include <L6470.h>
#endif
Mi empeño en esto es que en lugar de estar modificando el nombre del .ino cada vez que haga una versión nueva mantenga el mismo nombre y al abrir el .ino en el IDE vea al momento qué versión es sin tener que ir a otro archivo a mirarlo. Y, aparte, poder mirar qué versión tiene metida la impresora mandándole el M118.
¿Hay alguna manera de hacerlo?
Gracias de antemano por vuestra respuesta.