Kravspecifikation (Sun SPOT)

Fra DAMNWiki
Spring til navigationSpring til søgning

Denne artikel er en begyndelse til rapportens kravspecifikation. Hvert større afsnit kan ses i indholdsfortegnelsen.

Generelle programkrav

Programmet skal have følgende basale funktionalitet.

  • Opstillinger skal kunne gemmes og hentes.

GUI

Den grafiske brugerflade skal minde om det program, vi lavede i ingeniørarbejde på første semester. Det betyder i store træk, at vi skal have en plade med sensorplaceringer samt kontrol af disse.

GUI'en skal både bruges til simuleringer med virtuelle sensorer samt konkret visualisering af en opsætning af sensorer. Den ene mulighed udelukker den anden. Vi kan således ikke både have konkrete sensorer samt simulererede sensorer i samme opstilling på grund af radiokommunikationsproblematikker.

Layout og funktionalitet

  • Blank baggrund i 2D som udgangspunkt.
  • Prikker som symboliserer sensorer i korrekt position - enten beregnet eller angivet manuelt.
Prikkerne kan have forskellige farver alt efter status (basissensor, simuleret sensor, sensor uden for rækkevidde)
  • Kommunikation symboliseres med pile.
  • Kontrolpanel til indstilling af parametre, herunder:
    • Tilføjelse af ny sensor, basissensor og basisstation.
    • Ændring af hver sensors position.
    • Ændring af radiostyrken på hver sensor.
    • Aflæsning af sensormålinger, accelerometer, lys og temperatur.
  • Koordinatsystem indlagt:
    • Akserne skal kunne slås til og fra.
    • Akserne skal kunne flyttes rundt på skærmen.
    • Basisstationen ligger altid i nulpunktet.
  • Der skal kunne zoomes ud og ind på et område.
En skala (1:1, 1:2 osv.) skal kunne defineres.
  • Ruten mellem alle sensorer skal til hver en tid kunne slås til og fra.

Potentielle udvidelser

  • 3D visualisering

Protokol

Kravspecifikationen for protokollen samt tilhørende program til kommunikation mellem sensorer.

Generelle krav

Basisstationen er udgangspunkt for kommunikation mellem alle sensorer. Basisstationen har kontakt med programmet, som bl.a. viser GUI'en samt står for de egentlige beregninger af position osv.

Protokollen er en integreret del af programmet for både basisstation og de enkelte Sun SPOTs. Den samme protokol benyttes både til konkrete opstillinger af et netværk med Sun SPOTs samt simulering af et netværk.

Sensor SPOTs

På hver SPOT forestiller vi os følgende funktionalitet for protokollen:

  • Viden om andre SPOTs inden for rækkevidde.
Hver sensor skal vide, hvilke andre sensorer, de potentielt kan kommunikere med. Det er ikke sikkert, at der skal kommunikeres med alle sensorer inden for rækkevidde. Det er f.eks. ikke tilfældet, hvis den anden sensor har mulighed for at kommunikere direkte med basisstationen.
Samtidig skal radiostyrken for hver sensor gemmes. Dette bruges til rutebestemmelse og positionsbestemmelse.
  • Viderekommunikation af basisstations meddelelser til andre SPOTs.
Hver sensor kunne sende relevant information videre til andre SPOTs, som ikke er i direkte kontakt med basisstationen. Dette kan f.eks. være ændringer i radiostyrke, forespørgsler om data og lignende.
  • Formidling af data fra andre SPOTs ind til basisstationen.
Hver sensor skal vide, i hvilken retning den skal sende information for at det når frem til basisstationen.
En sensor behøver kun at videresende data til en enkelt anden sensor i ruten til basisstationen. Denne enkelte sensor har speciel status.
  • Hver sensor skal med et fast defineret mellemrum sende et "ping" til basisstationen for at sikre forbindelsen. Dette ping foregår via den ifølge protokollen bestemte rute.

Basisstation

Basisstationen skal have følgende funktionalitet for protokollen:

  • Viden om egen position.
Basisstationen udgør referencepunktet/nulpunktet for hele sensornetværket.
  • Viden om alle sensorers positioner.
Dette punkt omfatter bl.a., at basisstationen også er klar over, hvilke sensorer der kan kommunikere med hinanden. Basisstationen kender ruten til hver enkelt sensor.
  • Viden om sensorer inden for rækkevidde.
I modsætning til de frie sensorer, vil basisstationen kommunikere med alle sensorer inden for dens rækkevidde. En undtagelse er, hvis en forbindelse er meget dårlig. I dette tilfælde kan en rute via en anden sensor være en bedre løsning.
  • Håndtering af fejlsituationer, herunder
    • Hvis en sensor ikke svarer = kommunikationsfejl.
Basisstationen skal beregne en ny rute til de sensorer, som bliver påvirket af fejlen.
  • Håndtering af udvidelser eller omrokeringer af netværket.
    1. En sensor flyttes til en anden position.
      Accelerometeret kan muligvis benyttes til at bestemme, om en sensor flyttes.
      Basisstationen skal beregne en ny rute til de sensorer, som bliver påvirket.
    2. En sensor fjernes manuelt (ikke kommunikationsfejl) fra netværket.
      Basisstationen skal beregne en ny rute til de sensorer, som bliver påvirket.
    3. En sensor genstartes.
      Svarer til, at en sensor fjernes og en ny tilføjes til netværket.
      Der vil opstå problemer, hvis sensoren bruges til en rute i netværket. I så fald skal denne rute genberegnes.

Positionsbestemmelse

Matematikken og teorien bag positionsbestemmelsen findes i artiklen Positionsbestemmelse (Sun SPOT). Dette afsnit omhandler de konkrete krav til programmet i forbindelse med positionsbestemmelsen.

Hurtig ide: Statistisk analyse til bedre beregning af position og ikke mindst USIKKERHEDER ved positionsbestemmelse

Denne del af kravspecifikationen udarbejdes senere.

Interface til brugere

Programmet skal kunne benyttes og eventuelt udvides af førsteårsstuderende på softwareteknologi linjen på DTU. Til dette formål skal programmet udvikles, så det også fungerer som et interface til videre udvikling. Dette punkt er på nuværende tidspunkt ikke fastlagt.

Ideer

  • "Høj niveua" sprog til afvikling af protokol.
Vi forestiller, at man kan styre sensorer ved simple kommandoer som send(id, message), message = modtagFra(id) osv. På denne måde er det muligt at udvikle og afprøve sin egen protokol på den konkrete opstilling.
  • Positionsbestemmelse optimering eller implementering.
Mulighed for at de studerende kan benytte deres teori omkring positionsbestemmelse til at beregne sensorenes positioner. Dette kan f.eks. indebære at udvikle en algoritme til positionsbestemmelse, som så kan blive holdt op imod vores positionsbestemmelsesalgoritme.