Stap 5: Script om te vangen en gegevens invoegen
Ik ben een shellscript uitgevoerd als een achtergrond-proces dat het seriële apparaat opent en controleert voortdurend gegevens. Bij het lezen van een lijn, zal het het hakken van (vanaf de ruwe gegevens, een enkele spatie is scheidingsteken) en het invoegen van een rij in de database. Ik zal met behulp van PHP als de scripting taal en "Bob" als de api-extensie verbinden met de database. Hieronder staan enkel de belangrijkste onderdelen van de code - het hele bestand heet poxs.php en is in het zip-bestand dat is gekoppeld aan de "Software" stap hierboven.
$ser = fopen("/dev/ttyUSB0","r"); $dbh=new PDO('sqlite:/var/www/pulseox.db'); $query=$dbh->prepare("INSERT into pulseox (stampdate, stamptime, spo2, bpm) VALUES ( :param0, :param1, :param2, :param3);"); while (!feof($ser)) { $buffer = fgets($ser); $din = explode(" ", $buffer); $query->bindParam(':param0', $din[0]); # stampdate - 12/30/14 $query->bindParam(':param1', $din[1]); # stamptime - 08:00:00 $query->bindParam(':param2', $din[3]); # spo2 - SPO2=100% $query->bindParam(':param3', $din[4]); # bpm - BPM=123 $query->execute(); }
Ik heb voor beknoptheid, foutdetectie verwijderd uit de code hierboven, zoals controleren als de serial device kan niet worden geopend of controleren op verschillende database-fouten.
Zoals elke regel wordt gelezen, hakt de opdracht "ontploffen" de regel in elk stukje van de gegevens. Dan is elk stuk van gegevens naar de juiste locatie in de SQL-instructie voor het uitvoeren van de SQL-database gebonden.