oldValue og newValue...Switch eller noget andet!
Hej!Jeg skal sende værdier i intervallet 0-100 videre, når de ændre sig med mere end 3. Det betyder, at jeg skal holde styr på gamle og nye værdier. Det har jeg sådan set implementeret, problemet er nu, at jeg skal sende værdierne afsted enkeltvist, når der forekommer ændringer i dem. 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 );
}
}
}
