Salve,sono nel pieno di un progettino basato su Arduino e Java che richiede una comunicazione seriale costantemente attiva e che deve disattivarsi solo quando lo decido io.
Il problema sta nel fatto che non riesco a tirare fuori l'oggetto "serialPort" dal method dove viene creato,quindi avevo pensato di utilizzare un ciclo while per leggere continuamente una variabile e tenere il programma in "sospensione",il punto è che con il codice che ho scritto io va in sospensione tutto il programma nonostante la connessione seriale si trovi su un'altra classe rispetto a quella principale.
La mia richiesta è semplice,mi piacerebbe sapere se è possibile avviare più method insieme e farli lavorare insieme in maniera sincrona.
PEr sicurezza vi posto anche il codice che ho scritto per la comunicazione seriale,uso le librerie jssc.
codice:
package Pack;
import jssc.SerialPort;
import jssc.SerialPortException;
public class Connessioneseriale {
public static void Seriale(String mex) throws InterruptedException {
boolean controller = true;
java.lang.String memoria = null;
if (variabili.stat == 0){
SerialPort serialPort = new SerialPort("COM3");
try {
serialPort.openPort();
serialPort.setParams(SerialPort.BAUDRATE_9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);//parametri seriale
System.err.println("Connesione Seriale stabilita.");
while(controller == true){
if(memoria != mex){
serialPort.writeBytes(mex.getBytes());
memoria = mex;}
}
serialPort.closePort();
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
}
}
Spero abbiate capito,ho provato anche su Stack Overflow ma con il mio inglese scolastico mi sa che hanno capito una cosa per un altra...