Skip to content

Commit

Permalink
implementing Tire Pressure Monitoring System PHP version
Browse files Browse the repository at this point in the history
  • Loading branch information
arthuralmeidap committed May 11, 2013
1 parent a39f991 commit dd9b189
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 0 deletions.
35 changes: 35 additions & 0 deletions TDDMicroExercises/PHP/TirePressureMonitoringSystem/Alarm.php
@@ -0,0 +1,35 @@
<?php

class Alarm
{
const LOW_PRESSURE_TRESHOLD = 17;
const HIGH_PRESSURE_TRESHOLD = 21;

private $sensor;
private $alarmOn;
private $alarmCount;

public function __construct() {
$this->sensor = new Sensor();
$this->alarmOn = false;
$this->alarmCount = 0;
}


public function check()
{
$psiPressureValue = $this->sensor->popNextPressurePsiValue();

if ($psiPressureValue < Alarm::LOW_PRESSURE_TRESHOLD
|| Alarm::HIGH_PRESSURE_TRESHOLD < $psiPressureValue) {

$this->alarmOn = true;
$this->alarmCount += 1;
}
}

public function alarmOn()
{
return $this->alarmOn;
}
}
20 changes: 20 additions & 0 deletions TDDMicroExercises/PHP/TirePressureMonitoringSystem/Sensor.php
@@ -0,0 +1,20 @@
<?php


class Sensor
{
const OFFSET = 16;

public static function SamplePressure()
{
// placeholder implementation that simulate a real sensor in a real tire
$pressureTelemetryValue = floor(6 * rand() * rand());
return $pressureTelemetryValue;
}

public function popNextPressurePsiValue()
{
$pressureTelemetryValue = self::SamplePressure();
return self::OFFSET + $pressureTelemetryValue;
}
}

0 comments on commit dd9b189

Please sign in to comment.