Project JANE - Comunicación Serie RXTX & Comunicación interna

Buenas noches!

Hoy por fin terminé una parte más del proyecto, la inicial y de las más importantes ya que sin esta no tendría sentido todo lo demás. A ver si consigo explicarlo de una forma ordenada.

Comunicación Interna:
Primero de todo, a comunicación interna me refiero a como las clases/Threads del programa que se ejecuta en el ordenador se mandan información entre ellas. Para esto lo primero que cree fue una clase que hiciera de queue (o cola) con prioridades para almacenar las señales. Estas colas estarán instanciadas en la clase principal (BigBoss) y este se encargara una vez recibidas de reenviarlas a los módulos correspondientes del programa. Estas colas almacenan objetos llamados SignalBox que contienen información sobre la señal (Fecha, prioridad, modulo correspondiente y datos en formato cadena).

Comunicación Serie RXTX:
Esta parte se refiere a la comunicación entre el microcontrolador MSP430 y el programa a través de un thread especifico que controla el puerto serie. Para ello usamos unas librerías que facilitan las clases y funciones necesarias para la apertura/cierre del puerto y el recibo/envío de información.
En este punto se implementan dos clases

  1. SerialCommunication: Esta clase es la que se encarga de la implementación de la conexión con el puerto (COM6 en mi caso) e implementa la función de escritura al puerto y el "listener" para la recepción de datos (Para recibir datos se realiza una espera sincrona desde el ModuleSerialComm para reducir el consumo de cpu, ya que antes tenia implementado un bucle while(1) que buscaba de manera continua en la queue).
  2. ModuleSerialComm: Esta clase implementa el thread que administra la clase anterior y se encarga de actualizar la queue correspondiente que se encuentra alojada en BigBoss, para ello hace la espera sincroná de que se recibió la señal del puerto serie).

Bueno, espero que se me haya entendido más o menos. Puse unos enlaces a las clases por si alguien tenía algo de curiosidad. Para cualquier pregunta, duda, cuestión, o mejora... Soy todo oidos!

Un saludo!

No hay comentarios:

Publicar un comentario