Avatar billede tula Nybegynder
25. maj 2004 - 17:08

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 );
    }
  }
  }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester