La mia applicazione è un programma Java che controlla un robot (che è essenzialmente un raspberry pi collegato a un sacco di dispositivi). Ci sono molti dispositivi sul robot che hanno valori di indirizzo semi-costante o numeri di pin. Attualmente nella nostra base di codice vedrete molte costanti statiche definite come:
static final long SLEEP_DURATION = 100;
static final byte MOTOR_CONTROLLER_ADDRESS = 0x01;
static final byte TOOLING_MOTOR_1_CHANNEL = 15;
static final byte TOOLING_MOTOR_2_CHANNEL = 12;
Il problema è che quando siamo collegati tutti i fili nel robot, potremmo accidentalmente scambiamo motore utensili 1 e 2. I nostri attuali opzioni quando questo accade si ricablare il robot (in termini di tempo) oppure ricompilare il codice del robot e ricaricalo sul robot (anche in termini di tempo).
Dopo aver esaminato alcune librerie credo che avrei potuto utilizzare la Commons configurazione libreria per leggere in un file di proprietà per questi valori.
final byte toolingMotor1Channel;
final byte toolingMotor2Channel;
...
toolingMotor1Channel = config.getByte("motorcontroller.toolingmotor1");
toolingMotor2Channel = config.getByte("motorcontroller.toolingmotor2");
Questo non aggiunge troppa complessità al codice, ma ne aggiunge alcuni. Quindi la mia domanda è:
Ha senso quindi avere anche variabili come SLEEP_DURATION
o MOTOR_CONTROLLER_ADDRESS
configurabili? È possibile che questi valori possano essere modificati in futuro, tuttavia è improbabile. Dove posso tracciare la linea con ciò che viene configurato da questa libreria?