Есть контроллер st link, с него надо вытащить массив измерений. Суть заключается в поэтапной отправке команд контроллеру. Сначала нам надо отправить цифру 4 и получить в ответ цифру 7, затем отправить цифру 5 и после отправить набор цифр 1,100,5. Первый этап проходит влёт. Контроллер получает 4-ку и возвращает 7-ку, но на этом всё. Дальше ничего не происходит. Для связи с портом использую библиотеку jSSC. Ниже представлен код.
public class COMPort { /*Класс чтения из порта*/
private static final SerialPort serialPort = new SerialPort ("COM12");
private static final String CORRECT_CONNECTION = "4";
private static final String ALL_RIGHT = "5";
private static final String INPUT_PARAMS = "1,100,5";
private static boolean flag = false;
public static void main (String[] args) {
try {
serialPort.openPort();
serialPort.setParams(SerialPort.BAUDRATE_256000, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
serialPort.addEventListener(new EventListener(), SerialPort.MASK_RXCHAR);
run(CORRECT_CONNECTION);
run(ALL_RIGHT);
run(INPUT_PARAMS);
} catch (SerialPortException ex) {
Logger.getLogger(COMPort.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* @param param значение, которое мы посылаем контроллеру
* @serialPort.writeString(0) нажимаем ENTER
*/
public static void run(String param) {
try{
serialPort.writeString(param);
serialPort.writeInt(0);
serialPort.writeInt(0);
serialPort.writeInt(0);
}catch (SerialPortException ex) {
System.out.println (ex);
}
}
static class EventListener implements SerialPortEventListener { /*Слушатель срабатывающий по появлению данных на COM-порте*/
public void serialEvent (SerialPortEvent event) {
if (event.isRXCHAR () && event.getEventValue() > 0){ /*Если происходит событие установленной маски и количество байтов в буфере более 0*/
try {
byte[] out = serialPort.readBytes();
System.out.println(new String(out));
}catch (SerialPortException ex) {
System.out.println (ex);
}
}
}
}
}
Результатом должны быть 2560 измерений и их нужно поместить в файл, но к сожалению ничего не приходит. Кстати говоря, в программе PuTTY всё работает. Заранее, спасибо
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можно ли передавать в ObjectOutpurStream ArrayList? И если да, как потом корректно прочитать его с помощью ObjectInputStream?
Хотелось бы примеры реализации на java, примеров реализации service locators полно, а вот ioc-containers не нашёлВсе ведет на готове реализации ioc, как правило...
ЗдравствуйтеПишу программу обработки отпечатка пальца на языке Java без OpenCV