Извините, что мой вопрос не был ясен.Я должен был дать код, с которым я работаю.пожалуйста, обратитесь к следующей ссылке:
http://www.arduino.cc/playground/Interfacing/Java
В основном этот пример кода отличается от тех классических примеров rxtx с основанной на событиях коммуникацией через последовательный порт, объявив ключевое слово «synchronized» в некоторых функциях.Единственная часть, над которой я работаю, находится в прослушивателе последовательных событий:
public synchronized void serialEvent(SerialPortEvent oEvent) {
if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
////////////////////////////////////
1) I will parse the incoming data into an integer array
2) this array will be shared with other classes, let me
explain some of them below.....
////////////////////////////////////
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
Функция A: апплет, создающий 2D / 3D-графику с использованием данных в этом общем массиве.
Функция B: GUI будет выводить / печатать некоторые числа, вычисленные из общего массива, в текстовую область в jframe.Он также может открыть апплет функции A с помощью кнопки.Но есть некоторые кнопки в графическом интерфейсе, которые изменят некоторые переменные в функции A, чтобы вызвать другое поведение для обработки общего массива функцией A.
Это то, что я хочу:
Как последовательные данныевход и анализ в массив данных ....
1) Функция B немедленно напечатает числа, связанные с этим массивом данных.Только если пользователь нажмет кнопку, чтобы открыть апплет функции A, функция A отобразит 2D / 3D графику.
2) Когда обе функции A и B активны, их собственные переменные могут изменяться вместе свходящие последовательные данные.
Я хочу, чтобы функции A и B сразу же улавливали изменение в массиве общих данных при его изменении в serialEvent ().Я знаю, что самый простой способ - передать массив данных в качестве ссылки и вызвать каждую функцию до того, как станут доступными следующие входящие данные.Но есть проблема, упомянутая ранее Гродригес .Во время выполнения функции A или B могут быть потеряны некоторые входящие данные.Я что-то делал с MVC в Java несколько лет назад, и он использовал obervables между различными классами или GUI для отображения температуры.Как и при вводе температуры в текстовом поле, другой графический интерфейс с ползунком изменится на входную температуру.И поскольку я изменил ползунок здесь, он изменит температуру в номере в другом графическом интерфейсе.Серийное событие напоминает мне об этом приложении здесь.Я не уверен, является ли это лучшим методом для применения здесь, или могут быть другие лучшие и более простые способы сделать именно то, что я хочу.
Еще раз спасибо за ваше терпение.