Programeer opdrachtenOpdracht : opdr2_hotelkamer.txt

Terug naar de opdrachten lijst
Opdracht 2, Hotelkamer
19 Jan 2005

Ook deze opdracht valt weer onder de catagorie technische informatica.

Een hotel heeft de verlichting op de kamers geautomatiseerd.
Op elke hotelkamer zijn twee lichtpunten te vinden.
Een lamp aan het plafon, centraal in de kamer,
en een schemerlamp bij het bed.
Er bevinden zich drie schakelaars op de kamer.
Een bij de deur, en twee bij het bed.
Deze schakelaars maken enkel contact gedurende de tijd dat zij ingedrukt worden
en geven een logische 1 aan de centrale computer.
Met de schakelaars bij het bed kunnen de twee lampen onafhankelijk van elkaar
worden bediend.
Waneer tijdens donkere toestand de schakelaar bij de deur wordt ingedrukt,
dan gaan beide lichtpunten aan.
Is de centrale lamp al aan dan gaan beide lampen uit.
Is de schemerlamp al aan, dan gaat de centrale lamp ook aan.
Na nog een keer drukken gaan beiden dan uit.

Bij de hotelbalie zit ook een schakelaar,
waarmee beiden lampen ineens uitgeschakeld kunnen worden.

De opdracht:
Maak een programma die dit systeem mogenlijk maakt.
Het programma krijgt voor de hotelkamer een enkele integer variabele binnen.
hiervoor gelden de volgende waardes
0) Er is geen schakelaar ingedrukt.
1) Centrale lamp schakelaar bij het bed is ingedrukt
2) Schemer lamp schakelaar bij het bed is ingedrukt.
3) Beide schakelaars bij het bed zijn gelijktijdig ingedrukt.
4) Schakelaar bij de deur is ingedrukt.
8) Schakelaar bij de balie is ingedrukt.

Het programma geeft ook weer een integer waarde terug
0) Alle lampen uit
1) Centrale lamp aan
2) Schemerlamp aan
3) Beide lampen aan

Als invoer mag je gewoon een regel vanaf een console lezen,
b.v. met scanf of readln, iets anders mag natuurlijk ook.
Als uitvoer mag je twee sterretjes of een kort berichtje neerzetten.

Echter het deel dat de schakel logica verzorgt mag enkel met 1 integer waarde worden aangeroepen,
en geeft ook weer een integerwaarde die de functie van de lampen aangeeft terug.
Wie goed oplet ziet dat het systeem heel gemakkelijk in werkelijkheid valt te realiseren mbv mijn lptdriver project.
Om die reden verdiend het mijn voorkeur om de communicatie van het aanroepende programma naar de stuurlogica via een socket te laten verlopen.
(Dit is echter niet verplicht, in een embedded systeem is het tenslote geen probleem om hardware direct via input en output instructies te gebruiken)

Het programma moet uiteraard zodanig geschreven worden, dat het gemakkelijk voor meerdere
hotelkamers is uit te bereiden.

Het resultaat weer posten in de thread
Uiterste inlever datum Vrijdag 4 Februari