
PROBLEM
To combine software engineering and C# programming to develop a controller for a simple domestic gas cooker and must provide a suitable User Interface (UI).
Programme Requirements:
• Mains power on/off
• Switch on/off one or more burners
• Clock display and time setting
• Appropriate user feedback
• Piezoelectric igniter and thermocouple on every burner
• Cut gas supply if burner does not reach 200 deg.C within 10 seconds.
Essential components for the cooker controller

SOLUTION
My solution was a high fidelity programme which explored all of the capabilities of C#. This featured many innovations such as using sound effects for increased interactivity, fail safe code for gas supply, cooking egg animation and creating my own dials for the gas temperature.
All burners on
Oven door open with chicken
eggs cooked
egg cooking

RADIAL KNOB CONTROLS
To increase the fidelity of the programme, I created my own radial knobs rather than using the standard windows slider controls. I used drawing controls to constrain bitmaps within specific angles and output them to be read as integers.
Knob control screenshot
Sample of Knob control code
FAILED IGNITION
Using a random number generator, I was able to code a system to have a 20% fail rate. "Hob failed to ignite!! Try again" message will notify the user of this.
COOKING EGGS
I wanted to give a sense of speed of time in the programme and increase the fidelity. By putting images into an array i was able to create a slide show effect of eggs cooking.

Raw egg

Perfectly Cooked Egg

Overcooked Egg
