Ho bisogno di una raccomandazione sul mio modello di software.
Penso che non sia così buono, dal momento che esiste una sorta di dipendenza ciclica.
Ho un pacchetto OSGI in framework di applicazioni Kura , qui ci sono le classi:
- Classe principale: il punto di ingresso del pacchetto
- TwoWaySerialComm: per comunicazioni seriali con un dispositivo Arduino
-
SerialReader: responsabile della lettura dalla porta seriale dei dati provenienti da Arduino e quindi invia i dati ricevuti al cloud utilizzando il servizio DataService di KURA.
class Main { public static DataService m_dataService;//KURA service to send information to the cloud via MQTT protected void activate(ComponentContext componentContext) { serialCom = new TwoWaySerialComm();//responsible for serial communication serialCom.connect("/dev/ttyUSB0"); } } class TwoWaySerialComm { void connect(String portName) { //code omitted in = serialPort.getInputStream(); //add event listener to read data from the serial port serialPort.addEventListener(new SerialReader(in)); //code omitted } } public class SerialReader implements SerialPortEventListener { public void serialEvent(SerialPortEvent arg0) { //code for serial port reading omitted //the data obtained from the serial is sent to the //cloud via MQTT using the KURA service DataService as the following: Main.m_dataService.publish(); } }
È una cattiva modellazione, se sì come posso risolverlo?