private function show() { $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0; $sensor = $_SESSION['sensor']; $dataset = $_SESSION['dataset']; if (!is_null($sensor)) { // Populate the Sensor with its measurements $measurements = MeasurementsDB::getMeasurementsBy('sensor_id', $sensor->getSensorId()); $sensor->setMeasurements($measurements); // Update the session sensor $_SESSION['sensor'] = $sensor; SensorView::show(); } else { HomeView::show(); header('Location: /' . $_SESSION['base']); } }
private function newMeasurement() { $measurement = null; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $measurement = new Measurement($_POST); } $_SESSION['measurement'] = $measurement; if (is_null($measurement) || $measurement->getErrorCount() != 0) { MeasurementView::showNew(); } else { $newMeasurement = MeasurementsDB::addMeasurement($measurement); if ($newMeasurement->getErrorCount() == 0) { $_SESSION['measurement'] = $newMeasurement; } SensorView::show(); header('Location: /' . $_SESSION['base'] . '/sensor/show/' . $_SESSION['sensor']->getSensorId()); } }
public function testUpdateMeasurementValue() { $myDb = DBMaker::create('sensordatarepotest'); Database::clearDB(); $db = Database::getDB('sensordatarepotest', 'C:\\xampp\\myConfig.ini'); $testMeasurementId = 1; $measurements = MeasurementsDB::getMeasurementsBy('measurement_id', $testMeasurementId); $measurement = $measurements[0]; $this->assertEquals($measurement->getMeasurementValue(), '45.2', 'Before the update, the measurement should have value 45.2'); $params = $measurement->getParameters(); $params['measurement_value'] = '25.4'; $params['sensorType'] = 'HEADING'; $params['sequenceType'] = 'SEQUENTIAL'; $newMeasurement = new Measurement($params); $newMeasurement->setMeasurementId($testMeasurementId); $returnedMeasurement = MeasurementsDB::updateMeasurement($newMeasurement); $this->assertEquals($returnedMeasurement->getMeasurementValue(), $params['measurement_value'], 'After the update it should have the value ' . $params['measurement_value']); $this->assertTrue(empty($returnedMeasurement->getErrors()), 'The updated measurement should be error-free'); }
public static function run() { $action = array_key_exists('action', $_SESSION) ? $_SESSION['action'] : ""; $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : ""; if (is_numeric($arguments)) { $measurements = MeasurementsDB::getMeasurementsBy('sensor_id', $arguments); if (count($measurements) > 0) { $sensorId = $measurements[0]->getSensorId(); $sensorArray = SensorsDB::getSensorsBy('sensor_id', $sensorId); if (count($sensorArray) > 0) { $sensor = $sensorArray[0]; } else { HomeView::show(); } $datasetArray = DatasetsDB::getDatasetsBy('dataset_id', $sensor->getDatasetId()); if (count($datasetArray) > 0) { $dataset = $datasetArray[0]; } else { HomeView::show(); } $_SESSION['measurements'] = $measurements; $_SESSION['sensor'] = $sensor; $_SESSION['dataset'] = $dataset; } else { HomeView::show(); } switch ($action) { case "column": self::showColumnChart(); break; case "line": self::showLineChart(); break; default: HomeView::show(); } } else { HomeView::show(); } }
private function showDetails() { $user = array_key_exists('user', $_SESSION) ? $_SESSION['user'] : null; $dataset = array_key_exists('dataset', $_SESSION) ? $_SESSION['dataset'] : array(); $base = array_key_exists('base', $_SESSION) ? $_SESSION['base'] : ""; if (!is_null($dataset)) { echo '<h1>Dataset Summary</h1>'; $targetDatasetUserId = $dataset->getUserId(); if (self::CurrentUserCanEditTargetDataset($targetDatasetUserId)) { echo '<p>'; echo '<a class="btn btn-primary" '; echo 'role="button" '; echo 'href="/' . $base . '/dataset/update/' . $dataset->getDatasetId() . '"'; echo '>Update Dataset</a>'; echo '  '; echo '<a class="btn btn-success" '; echo 'role="button" '; echo 'href="/' . $base . '/sensor/create">Add Sensor</a>'; echo '</p>'; } echo '<section>'; echo '<fieldset><legend>Summary Info</legend>'; echo 'Dataset Name: ' . $dataset->getDatasetName() . '<br><br>' . "\n"; echo 'Created: ' . $dataset->getDateCreated() . '<br><br>' . "\n"; echo 'Created by: <a href="/' . $base . '/profile/show/' . $dataset->getUserId() . '">' . $user->getUsername() . '</a><br><br>' . "\n"; echo 'Description: ' . $dataset->getDescription() . '<br><br>' . "\n"; echo '</fieldset></section>'; echo '<section>'; echo '<h2>Dataset Sensors</h2>'; if (count($dataset->getSensors()) > 0) { echo '<div class="table-responsive">'; echo '<table class="table table-striped">'; echo '<thead>'; echo '<tr><th>Name</th><th>Type</th><th>Units</th><th>Num Records</th><th>Plot</th></tr>'; echo '</thead>' . "\n"; echo '<tbody>'; foreach ($dataset->getSensors() as $sensor) { $numRecords = count(MeasurementsDB::getMeasurementsBy('sensor_id', $sensor->getSensorId())); echo '<tr>'; echo '<td><a href="/' . $base . '/sensor/show/' . $sensor->getSensorId() . '">' . $sensor->getSensorName() . '</a></td>'; echo '<td>' . $sensor->getSensorType() . '</td>'; echo '<td>' . $sensor->getSensorUnits() . '</td>'; echo "<td>{$numRecords}</td>"; if ($numRecords > 0) { echo "<td>" . self::LinksToPlotTypes($sensor->getSensorType(), $sensor->getSensorId()) . "<td>"; } else { echo "<td>No data</td>"; } echo '</tr>' . "\n"; } echo '</tbody>'; echo '</table>'; echo '</div>'; } else { echo '<p>No sensors associated with this dataset</p>'; } echo '</section>'; } else { echo '<p>Unknown dataset</p>'; } echo '<br><br>'; }
public static function updateMeasurement($measurement) { try { $db = Database::getDB(); if (is_null($measurement) || $measurement->getErrorCount() > 0) { return $measurement; } $checkMeasurement = MeasurementsDB::getMeasurementsBy('measurement_id', $measurement->getMeasurementId()); if (empty($checkMeasurement)) { $measurement->setError('measurement_id', 'MEASUREMENT_DOES_NOT_EXIST'); return $measurement; } if ($measurement->getErrorCount() > 0) { return $measurement; } $query = "UPDATE Measurements SET measurement_index = :measurement_index,\r\n\t\t\t\t\tmeasurement_value = :measurement_value, measurement_timestamp = :measurement_timestamp,\r\n\t\t\t\t\tsensor_id = :sensor_id WHERE measurement_id = :measurement_id"; $statement = $db->prepare($query); $statement->bindValue(':measurement_index', $measurement->getMeasurementIndex()); $statement->bindValue(':measurement_value', $measurement->getMeasurementValue()); $statement->bindValue(':measurement_timestamp', $measurement->getMeasurementTimestamp()); $statement->bindValue(':sensor_id', $measurement->getSensorId()); $statement->bindValue(':measurement_id', $measurement->getMeasurementId()); $statement->execute(); $statement->closeCursor(); } catch (Exception $e) { $measurement->setError('measurement_id', 'MEASUREMENT_COULD_NOT_BE_UPDATED'); //echo $e->getMessage(); //echo 'file: '.$e->getFile().' line: '.$e->getLine(); } return $measurement; }