Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  1. Suunnittele luokkamalli koneelle. Luokka Kone koostuu luokista Toimilaite ja Prosessi. Toimilaite koostaa luokan Liikeanturi ja VoimaAnturi. Nämä luokat taas perivät luokan Anturi. Tee luokista ensin UML-malli  Dia:lla ja sitten Qt:llä.
  2. Muokkaa mallia siten, että teet luokan dialogi ja laitat sen jäseneksi luokan Kone. Periytä Kone luokasta QThread. 
  3. Korjaa Dialla tekemä malli edellisen tehtävän mukaiseksi.
  4. Wiki Markup
    Lisää anturille jäsenet double vahvistus, double offset, double tulo, double tuloSiYksikkona, double taarattuTuloSiYksikkona, double KeskiarvoistusVektori\[10\], i , int paikkaVektorissa,  double Summa
  5. Tee käyttöliittymään nappi MittaaTulo ja  sille Dialog luokkaan slot Mittaa. Laita myös LineEdit tai lcd, josta voit lukea mitatun arvon.
  6. Tee Dialog luokkaan signaali MittaaTulonArvo.
  7. Tee luokkaan Anturi slot void PaivitaTulo();
  8. Yhdistä signaali MittaaTulonArvo slotiin PaivitaTulo.
  9. Emitoi (lähetä) signaali MittaaTulonArvo käyttöliittymän slotissa Mittaa.
  10. Tee luokkaan Anturi signaali LahetaMitattuArvo(double) ja ota se vastaan käyttöliittymässä.

    ui

    Dialog

     

    Anturi

    MittaaTulo->

    ->Mittaa

     


     

    MittaaTulonArvo->

     

    ->PaivitaTulo

     

    ArvonNaytto<-

     

    <- LahetaMitattuArvo(double)

  11. Laita jokin arvo emitoimaasi signaaliin LahetaMitattuArvo(double) ja testaa, että arvo tulee näytölle.
  12. Tee käyttöliittymään Horizontal Slider ja välitä se signaali - slot mekanismilla  Anturi- luokan muuttujaan tulo.
  13. Tee Anturi-luokkaan funktio Paivita. Kutsu tätä edellisessä tehtävässä tekemästäsi slotista.
  14. Laita Paivita - funktion sisällöksi tuloSiYksikkona=tulo*vahvistu+offset;
  15. Testaa, että vahvistettu tulo tulee näytölle.
  16. Tee  Umbrello -ohjelmalla UML-malli tähän asti tekemästäsi softasta.
  17. Tässä tehtävässä toteutamme asynkronisen säikeen, joka lukee anturia ja lähettää signaalilla tiedon käyttöliittymälle. Tee Kone luokkaan run-funktio ja  siihen forever toistorakenne. Katso mallia säikeistetystä ohjelmasta.
    Code Block
    
    forever
      {
            
              if (displayUpdateTimer.elapsed() > displayUpdateCycleTime)
              {
                  displayUpdateTimer.restart();
                  emit SendData( type,testState,force[0],displacement[0],fineStrain[0]);
              }
    
    }
    
    
  18.  
  19.  
  1. Tee esimerkki Qwt plot esimerkki.
  2. Hyödynnä esimerkkiä ja tulosta anturin arvo qwtplotissa.
  3. Päivitä Umbrella malli.