R&T Soft

From ICO wiki

Kirjeldus

Programmi Everest ning CPU-Z näitel tehtud programm, mis võimaldab saada süsteemi kohta rohket infot ühest kohast ning saadud info logida.

Tööjaotus

Programmeerijad:

  • Rasmus Kuusmann
  • Tanel Tumanski


Logi

28.10.2012

  • Wiki lehe tegemine

04.11.2012

08.11.2012

  • Käib kõva progemine - esimese klassi prototüüp on valmis
  • Arutasime ka UI lahendust, mingi ettekujutus on olemas aga mitte midagi kindlat

25.11.2012


Projekti analüüs

Planeeritud funktsionaalsus

  • Süsteemi riistvara konfiguratsiooni parameetrite vaatlemine - Võimalus vaadata riistvara konfiguratsiooni parameetreid nagu näiteks kiirus, mälu, transistorite arv jne.
  • Süsteemi riistvara muutuvate parameetrite logimine - Võimalus logida asju nagu protsessori kasutatavus, mälu kasutatus, temperatuurid jne.
  • Süsteemi riistvara konfiguratsiooni ajaloo salvestamine - Võimalus salvestada oma riistvara ajalugu ning seda hiljem vaadelda.
  • Riistvara konfiguratsiooni eksportimine - Võimalus oma konfiguratsioon eksportida ning seda hiljem vaadelda.
  • Kahe erineva konfiguratsiooni võrdlemine - Võimalus kasutajal võrrelda konfiguratsioone oma varasema konfiguratsiooniga, teise arvuti konfiguratsiooniga või teise kasutaja konfiguratsiooniga.

"Kui oskame ja aega on" funktsionaalsus

  • Keskse serveri tegemine - Server, kuhu saab luua kasutajat ning oma ajalugu salvestada.
  • Serverisse logide, konfiguratsioonide, ajaloo jne salvestamine
  • Mitme arvuti logimise võimalus - Üks kasutaja saab jälgida mitme arvuti konfiguratsioone ja logisid.
  • Konfiguratsioonide võrdlemine erinevate kasutajate vahel
  • E-Peen' võrdlus (konfiguratsioonide järgi) kasutajate vahel
  • Riistvara parameetrite logimine programmi kasutamise ajal, st. logi algab mil programm pandi tööle ning lõpeb, kui programm töö lõpetab

Mis on rakenduse eesmärk?

Rakendus teeb kasutajale lihtsalt kättesaadavaks tema arvuti (või mitme arvuti) riistvara jälgimise ning riistvara parameetrite logimise. Kasu võib olla näiteks draiverite installimiseks vajaliku riistvara nime ja mudeli nime leidmiseks ja programmi mälu/protsessorihõive leidmiseks.

Mida tavakasutaja sellega teha saaks?

Nagu öeldud, saab tavakasutaja sellega oma riistvara nime, mudelit ning staatilisi parameetreid vaadata ning jälgida muutuvaid parameetreid (temperatuur, mäluhõive jne).

Milliste osade realiseerimine võib osutuda problemaatiliseks?

Kuna meie programm on tihedalt seotud riistvaraga, siis kõige keerulisem katsumus on tõenäoliselt kõikide vajalike riistvara osade kohta informatsiooni saamine ning üleliigsete filtreerimine. Samuti saab olema keeruline mälu kasutuse ning protsessori kasutuse informatsiooni logimine. Kuna meil on plaanis programmile teha ka back-end server siis peame ehitama korraliku andmebaasi, kuhu kõik vajalik informatsioon kasutaja erinevate arvutite ning logide kohta salvestada. Tõenäoliselt kõige keerulisem funktsioon (kui üldse võimalik) on E-Peen' võrdlus eri konfiguratsioonide vahel. Probleem on selles, et kogu info riistvara parameetrite kohta ei pruugi olla vabalt saadaval või selle parsimine veebist on keerulisem kui paista võib. Samuti võib nn. punktisüsteem olla vigane, kuna erinevaid arhidektuure on keeruline omavahel võrrelda ning puhas transistorite arv ei pruugi anda täit ülevaadet süsteemi võimekusest. Kui me leiame mõne riistvara lehe, kus on suurem osa hetkel olemasolevast riistvara parameetritest välja toodud ning selle parsimine ei osutu väga keeruliseks siis on hea võimalus, et meie programmi võrdlusfunktsiooni kasutav kasutaja võib hakata oma rahakotti kergitama, sest sõbra E-Peen' on pikem.

Prototüüp

Üldine

Esialgne programm on mingis mõttes tehtud. Ilusast koodist on asi kaugel ning programm ise on pooleldi test aga asi areneb.

  • "Configuration" vaate alt tuleb veel kõvasti asju välja rookida, et kasutaja ei peaks mõtetu infoga tegelema.
  • "System" vaade peaks kunagi meenutama midagi sellist, iseasi kas me kõik vajalikud parameetrid kätte saame.
  • "Server" vaade on küll tehtud aga kuna serverit pole veel taha saanud (andmemudel enamvähem valmis) siis asi veel ei tööta.
  • Menüüga pole eriti tegelenud, asi on hetkel lihtsalt placeholder tuleviku jaoks.

Probleemid

  • Ei oska hetkel normaalse inimese moel ühe itemi vaadet vahetada.
  • SignedXML klass ei võta XDocumenti vastu ning millegipärast ei taha sama dokumendi signatuuri valideerida (kasutusel selleks, et juva vend ei saaks oma confi muuta ning sellega sõbrale "ära teha").
  • Suvalisel hetkel otsustab süsteem, et normaalse objekti asemel anname tagasi null väärtuse ning süsteem crashib, sest nulli ei saa töödelda. Try catch pole siin eriti abiks, sest objekt on vaja ikka saada. Refresh aitab kuid võtab 2x kauem aega (niigi võtab liiga kaua).
  • Mõnda asja ei oska eraldi threadi panna, kuna objekt on WPF aknaga seotud ning süsteem ei luba seda kasutada mujal.