Switch: metode-kald med forskellige værdier.
Hej!Jeg skal sende 2 forskellige værdier afsted på forskellige tidspunkter. En værdi skal kun sendes, når der forekommer ændringer i den. Dvs. at jeg skal holde styr på en oldValue og en newValue. Når den gamle og den nye værdier er forskellige, skal den nye værdi sendes afsted i et metode-kald. Lige nu har jeg lavet en løsning, hvor jeg bruger Switch. Findes der ikke en bedre metode til at løse dette. Jeg vil gerne belaste mit system så lidt så muligt for jeg får værdier ind hvert 7 ms.
Her er min foreløbige metode:
//Læser værdier fra seriel porten.
public void readLine() {
float lineValue;
float oldLineValueOne = -1;
float oldLineValueTwo = -1;
int nodeValue;
while(true) {
try {
//Stabiliserer inputtet
String values[] = in.readLine().split("[^0-9]");
for(int i=0;i<values.length;i++)
{
if(values[i].length() != 0)
{
lineValue = Float.parseFloat(values[i]);
// Metode-kald til slider men kun
// når værdierne ændrer sig
switch(i){
case 0:
if(Math.abs(lineValue-oldLineValueOne) > 3)
{
nodeValue = 1000 + i;
doSendSlider(lineValue,nodeValue);
oldLineValueOne = lineValue;
System.out.println("send value to slider: " + lineValue);
break;
}
case 1:
if(Math.abs(lineValue-oldLineValueTwo) > 3)
{
nodeValue = 1000 + i;
doSendSlider(lineValue,nodeValue);
oldLineValueTwo = lineValue;
System.out.println("send value to slider: " + lineValue);
break;
}
} //end switch
//for debugging
System.out.println("Afstand: " + lineValue + " Lydspor: 100" + i);
}
}
}
catch( IOException e ) {
error("readLine " + e );
}
}
}
