2016-12-05 5 views
0

Я создал программу фидов, которая отправляет значение датчика на сервер. Я пытаюсь запрограммировать его таким образом, чтобы имя портов уже хранилось в моем коде. Например, если слайдер подключен к порту 0, он будет посылать ползунок значения вместо номера порта.Настройка сохраненного имени значения в java

У меня было так, что у String sensorName был слайдер имени, но у меня несколько портов. Сделайте i, и если да, создайте оператор if, который, если String.valueOf (arg0.getIndex()); = 0, сохраненное значение для 0 будет = ползунок?

public void sensorChanged(SensorChangeEvent arg0) { 
      // System.out.println(arg0); 
       String sensorValue = ""+arg0.getValue(); 
       String sensorName= String.valueOf(arg0.getIndex()); 
       System.out.println("Slider value is now "+sensorValue); 


      String sendResult = sendToServer(sensorValue,sensorName); 
      try { 
        System.out.println("Sleeping.... 1 sec"); 
       Thread.sleep(1000); 
      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      System.out.println("Sent to server, result: "+sendResult); 
     } 

Найдено решение. Я слишком сильно ее обманывал.

Спасибо за помощь.

if (arg0.getIndex() == 0){ 
      sensorName = "slider"; 
     } else if (arg0.getIndex() ==1){ 
      sensorName = "rotation"; 
     } else if (arg0.getIndex() ==2){ 
      sensorName = "motor"; 
     } 
+0

Ваш вопрос непонятен. «У меня и если так ...» - вам что? 'String.valueOf()' просто дает вам обычное строковое представление, поэтому число 0 вернет «0» и т. Д. – RealSkeptic

+0

Как сохранить значение 0 = слайдер, когда он возвращает его из String.valueOf (arg0.getIndex()); и так далее? –

+0

Не знаете, почему вы используете 'String.valueOf()' вообще. И почему бы не использовать массив, содержащий все имена портов? – RealSkeptic

ответ

0
if (arg0.getIndex() == 0){ 
       sensorName = "slider"; 
      } else if (arg0.getIndex() ==1){ 
       sensorName = "rotation"; 
      } else if (arg0.getIndex() ==2){ 
       sensorName = "motor"; 
      } 
0

Как насчет использования массива?

private static String sensorNames = { "slider", "rotation", "motor" }; 

... 
sensorName = sensorNames[arg0.getIndex()]; 

Это решение хорошо, если ваши номера маленькие, начиная с нуля, и не имеют пробелов, или, по крайней мере, не слишком много пробелов.

Это также позволяет динамически изменять отображение (то есть, если вы подключите датчик к другому порту при следующем запуске).