Snapshots von IP Kamera archivieren und Gewicht in SQL Datenbank speichern
In einer SQL-Datenbank sollen- Barcode
- Bruttogewicht
- Foto Vorderseite
- Foto Rückseite
- Datum/Uhrzeit
- Status
Die BEMABOX ist per RS232-Kabel mit der Basisstation BC9030 eines Datalogic PM9500 Funk-Barcode-Scanners verbunden.
Die Waage ist über einen COM-Server mit dem Ethernet verbunden.
Der Scanner ist so konfiguriert, dass er als Präfix das Steuerzeichen < und als Suffix das Steuerzeichen > sendet.
Auf der BEMABOX wird zunächst die Tabelle BARCODE mit folgenden Feldern definiert:
Dann wird die Regel BARCODE erstellt, die alle Meldungen verarbeitet, die mit dem Steuerzeichen < beginnen und mit > enden.
Dazwischen befinden sich maximal 18 Ziffern:
Sobald die Ware auf der Waage liegt, wird der Barcode gescannt.
Die Regel PALETTE ermittelt dann das Gewicht und erstellt 2 Fotos der Ware in Full HD (1920x1080).
Die Fotos werden per FTP-Kommando an einen Archiv-Server gesendet und die Daten werden in der Tabelle BARCODE gespeichert.
Das erfolgreiche Wiegen und Fotografieren wird mit zwei Signaltönen durch den Scanner quittiert. Im Fehlerfall werden 3 kurze, 3 lange und anschließend 3 kurze Signaltöne ausgegeben.
Die Daten können anschließend im Browser angezeigt werden:
XGETSID( $sid , $role , $master , $sysloglevel , $syslogdays ) XCUST( 'ScaleIp' , $scaleip ) XCUST( 'ScalePort' , $scaleport ) XCUST( 'CamHost' , $chost ) XCUST( 'CamUser' , $cuser , $cpwd ) XCUST( 'FtpHost' , $fhost ) XCUST( 'FtpUser' , $fuser , $fpwd ) XCUST( 'FtpPath' , $fpath ) XTTYOPN( 0 ) XLOGW( "Scale: $scaleip Port: $scaleport" ) $cmd = "READ\r\n"; $regex = '~^(ST|US|OL|UL),(GS|NT), *([0-9\.\-]{1,8}),(kg|lb)\r\n~i'; XTCP( $scaleip , $scaleport , $cmd , $regex , &$data ) if (!empty($syserror)) { XLOGW( $syserror ) XSOS( 'D...---...E' ) return $syserror; } $weight = $sysmatch[3]; $unit = $sysmatch[4]; XGETN( 'lfdnrb' , $lfdnr , 8 ) $lfdnr = $sid . $lfdnr; $dattim = date('Y-m-d H:i:s'); $sendflg = 'N'; $reso = '1920x1080'; $qual = '3'; $bild1 = $lfdnr . '1.jpg'; XCAM( $chost , $cuser , $cpwd , $fhost , $fuser , $fpwd , $fpath , $bild1 , $reso , $qual ) if (!empty($syserror)) { XLOGW( $syserror ) XSOS( 'D...---...E' ) return $syserror; } sleep(1); $bild2 = $lfdnr . '2.jpg'; XCAM( $chost , $cuser , $cpwd , $fhost , $fuser , $fpwd , $fpath , $bild2 , $reso , $qual ) if (!empty($syserror)) { XLOGW( $syserror ) XSOS( 'D...---...E' ) return $syserror; } XLOGW( "Lfdnr: $lfdnr Weight: $weight $unit" ) XDBOPEN( 'barcode' ) XCHECKREPLY( $syserror , "" ) XDBPUT( $lfdnr , $barcode , $weight , $unit , $bild1 , $bild2 , $dattim , $sendflg ) XCHECKREPLY( $syserror , "" ) XSOS( '--' ) $sysreply = '';
zurück zur BEMACON Process-Engine
Alle Namen von Produkten und Dienstleistungen sind Marken der jeweiligen Firmen.