Так что я работаю над проектом датчика Phidget в Java. Идея заключается в отправке значений датчиков в базу данных.Как изменить скорость передачи данных Phidget Sensor?
Внутри метода onSensorChanged у меня есть метод метода uploadToServer. Проблема в том, что при использовании быстрой скорости передачи данных, а я поворачиваю циферблат или перемещаю ползунок, метод onSensorChanged запускается почти мгновенно, что приводит к тому, что метод uploadToServer запускается 10-20 раз за один поворот.
Я попытался замедлить скорость передачи данных до 1000 мс, но он по-прежнему печатает несколько значений, значение сразу после перемещения, а затем после длины передачи данных.
interfacephid.setDataRate(0, 1000);
Так, например, если я начинаю с значения датчика 0 и быстро передвигаю его полный поворот. Затем я получаю два показания, один вокруг 100, а затем в конечном месте отдыха 999. В идеале я бы предпочел просто распечатать окончательную позицию.
Я понятия не имею, почему я получаю первое чтение. Скорость передачи данных составляет 1000 мс, поэтому теоретически, если я быстро перемещаю ползунок, метод onSensorChanged должен запускаться только через 1 секунду, в результате чего на сервер отправляется 1 значение.
У меня возникло ощущение, что мне, возможно, придется выполнить отдельную работу, так как это снижает скорость передачи данных, не выполняет работу.
Вот мой onSensorChanged метод, ничего необычного здесь:
public void sensorChanged(SensorChangeEvent arg0) {
System.out.println("Slider value is "+arg0.getValue());
uploadSensorValue("sliderValue",sensorValue);
}
Консольный вывод похож на это (обычно больше):
Slider value is 878
Slider value is 721
Slider value is 513
Slider value is 328
Любые идеи будут оценены.