elevatorpro 0.1.0

TTK4145 Real-time Programming elevator project, Group 25, spring 2025
Documentation


# **Sjekkliste for Testing av Elevator Project**  

✅ = Bestått  
❌ = Feil funne  
🟡 = Delvis bestått / treng meir testing  

---

## **1. Hovudkrav**


### **1.1. Servicegaranti for knappelys**

- [ ] Når ei hall call-knapp blir trykt inn, lyser knappen og ein heis kjem til etasjen  
- [ ] Når ei cab call-knapp blir trykt inn, lyser knappen og **berre** den aktuelle heisen tek bestillinga  

### **1.2. Ingen samtaler (calls) skal gå tapt**

- **Nettverk og systemfeil:**
  - [ ] Simuler nettverksfeil: Ein heis mistar tilkopling – skal fortsatt handtere eksisterande bestillingar  
  - [ ] Simuler strømtap på ein heis – bestillingar blir ikkje gløymde etter restart  
  - [ ] Simuler programkrasj – systemet må kunne hente inn igjen bestillingane ved oppstart  
  - [ ] Simuler motorfeil – andre heisar tek over eksisterande hall calls  
  - [ ] Simuler at ein ny heis blir lagt til nettverket – han skal kunne hente bestillingar  

- **Kva skjer under nettverksfeil?**
  - [ ] Heis kan framleis ta nye cab calls og utføre eksisterande bestillingar  
  - [ ] Hall call-lys fungerer korrekt, men kan ha forsinka oppdatering  

### **1.3. Korrekt oppførsel av knappar og lys**

- [ ] Hall call-knappar på alle arbeidsstasjonar viser same status under normale forhold  
- [ ] Ved nettverkspaketttap, er det berre ei forsinking i oppdatering av lys  
- [ ] Cab call-lys er **ikkje** delt mellom heisar  
- [ ] Knappelys skrur seg på straks etter knappetrykk  
- [ ] Knappelys skrur seg av etter at bestillinga er gjennomført  

### **1.4. Dørkontroll**

- [ ] Dør-lyset skal ikkje vere på medan heisen beveger seg  
- [ ] Døra held seg open i **3 sekund** ved etasjestopp  
- [ ] Simuler dørhindring: Døra må ikkje lukke seg før hindringa forsvinn  
- [ ] Obstruksjonsbrytar kan aktiverast/deaktiverast når som helst utan feil  

### **1.5. Logisk og effektiv heisoppførsel**

- [ ] Heisen stoppar **berre** på relevante etasjar (ikkje alle for sikkerheit)  
- [ ] Heis som kjem til ein etasje med både opp og ned-bestillingar:  
  - [ ] Riktig retningskall blir prioritert  
  - [ ] Dersom ingen i heisen skal opp, men fleire skal ned, skal retningskall ryddast korrekt  

---

## **2. Sekundærkrav – Effektiv fordeling av oppdrag**

- [ ] Test at bestillingar blir fordelt mellom heisar for minimal ventetid  
- [ ] Simuler scenario med fleire samtidige bestillingar – raskaste heis bør bli tildelt oppdraget  

---

## **3. Tillatne antakingar**

- [ ] Systemet fungerer når minst éin heis ikkje er i feiltilstand  
- [ ] I eit system med fleire heisar, mistar ikkje ein isolert heis fleire funksjonar  
- [ ] Ingen nettverks-partisjonering (dvs. aldri fullstendig splitta nettverk)  

---

## **4. Test av uspesifisert oppførsel**

- [ ] Test om systemet startar i "single-elevator mode" om nettverket manglar  
- [ ] Test kva som skjer med hall call-knappar på ein isolert heis (valfri implementasjon)  
- [ ] Test kva "stopp-knappen" gjer dersom implementert  

---

## **5. Fleksibilitet i konfigurasjon**

- [ ] Test systemet med `n = 1, 2, 3` heisar  
- [ ] Test systemet med `m = 4` etasjar  
- [ ] Test om det er lett å legge til ein fjerde heis utan kodeendringar  
- [ ] Test om `--id <number>` flagget fungerer for å sette ID på ein heis  

---