Blog
Målsætning
En virksomhed har en række læsseramper, hvor der læsses pakker til levering i lastbiler. Før de enkelte pakker læsses, skal deres stregkoder aflæses af en medarbejder med en håndscanner. De scannede koder skal derefter gemmes med tidsstempel på et centralt sted i en database.
Den anvendte håndscanner har en RS232-port og er forbundet til en W&T Com-Server . Når en stregkode læses, sendes den til pure.box via netværket gennem COM-serveren, og pure.box læser de modtagne data og gemmer dem internt i en SQLite-database. Databasen kan derefter læses ud af andre programmer ved hjælp af den traditionelle SQL-syntaks.
Den PHP-fil, der er nødvendig for at implementere dette eksempel save_data.php, kan downloades her her . I den komprimerede fil finder du også filen show_data.php, som åbner, læser og viser databasen, når den åbnes i browseren.
Konfiguration af COM-serveren
For at den anvendte COM-server skal kunne sende de data, der læses af håndscanneren, via netværk til pure.box, er følgende konfigurationstrin nødvendige:
- Den serielle konfiguration (baud rate, handshake, paritet osv.) skal tilpasses håndscanneren, når COM-serveren sættes op.
- COM-serveren skal indstilles til TCP-klienttilstand, som gør det muligt at sende serielt modtagne data til en forudindstillet IP-adresse og et portnummer (her: Port 8000) på pure.box.
Konfiguration af pure.box
Gem filen save_data.php ved hjælp af FTP- eller SMB-signering i mappen med navnet programs på pure.box, og filen show_data.php i mappen med navnet Websites. Så er følgende konfigurationstrin nødvendige:
Åbn hjemmesiden for pure.box ved at indtaste IP-adressen i adresselinjen i din browser. | ![]() |
Vælg Login i menutræet, og log på med din adgangskode i den åbne dialogboks. | ![]() |
Naviger til siden Home >> Configuration >> User files. I filoversigten skal du klikke på den mappe, der hedder programmer. Filen save_data.php vises. | ![]() |
Hvis du klikker på ikonet Rediger filegenskaber (til venstre ved siden af save_data.php), åbnes dialogboksen Rediger. | |
Marker indstillingen Begivenhedsstyret. Vælg TCP, og sæt Port til 8000. Gem dine ændringer ved at klikke på Gem… du er færdig! | ![]() |
Når der nu sendes data fra håndscanneren via COM-serveren til TCP-port 8000 på pure.box, køres scriptet save_data.php. De modtagne data læses ind af scriptet, der tilføjes et tidsstempel, og dataene gemmes i en SQLite-database på pure.box Generelt skal du være opmærksom på, at kørsel af PHP-fortolkeren automatisk stoppes efter to minutter. Den programmerede handling bør derfor kunne behandles på kortere tid.
Kildetekst
I den første linje åbnes standardinput til læsning af data.
$in = fopen(’php://stdin’, ’r’);
De indgående data læses tegn for tegn i en løkke, og strengvariablen $input tilføjes. Løbet afsluttes, når der registreres et linjeskift (Line Feed, ASCII-tabel: 10).
$input = ’’;
do {
$input .= fread($in, 1);
} while(substr($input, -1, 1) != chr(10));Derefter lukkes standardinputtet igen.
fclose($in);
For at kunne gemme data i databasen skal der oprettes et databaseobjekt med skriveadgang, her: $db. Hvis databasen endnu ikke findes, f.eks. første gang scriptet kaldes, oprettes den nødvendige modtagelsestabel med de to kolonner, tid for tidsstemplet og data for de modtagne data.
$db = new PDO(’sqlite:../data.sqlite’); $db -> exec(’CREATE TABLE IF NOT EXISTS received (time INTEGER, data TEXT)’);
Ved hjælp af en SQL-INSERT-kommando tilføjes en ny post i den modtagne tabel. Det aktuelle klokkeslæt skrives til tidskolonnen i UTC-format, og data indeholder den modtagne tekst. Til sidst lukkes databasen igen.
$db -> exec(’INSERT INTO received (time, data) VALUES (’ . time() . ’, "’ . $input . ’")’); $db = null;
PHP-scriptet er nu kørt fuldt ud og afsluttes. Når data modtages igen, startes scriptet igen og kører som beskrevet ovenfor.
Hvis du tidligere har kopieret filen show_data.php til undermappen Websites, kan du åbne den i din browser ved hjælp af følgende URL.
http:///websites/show_data.php
Siden læser de data, der indtil videre er modtaget fra databasen, og viser dem i tabelformat.

Resumé
Simple serverapplikationer kan implementeres med pure.box uden forudgående kendskab til andet end PHP. Serverfunktionaliteten er allerede en del af Motherbox. Det eneste, der kræves, er, at den handling, du vil udføre, når der modtages data, er programmeret.
Er du interesseret? – Tag imod tilbuddet om at teste det selv:
Kom i gang - bestil en prøveversion i 30 dage.
Prøv vores produkter fra Wiesemann & Theis gratis i 30 dage ved at skrive det i ordrenoten:
Ønsker at teste produktet.
Hvis du ikke ønsker at gøre brug af din returret inden for 30 dage, skal du blot betale den medfølgende faktura. Gratis forsendelse i Danmark.



