Diese Seite verwendet Cookies, um das bestmögliche Nutzererlebnis sicherzustellen. Wenn Sie die Seite weiter nutzen, stimmen Sie der Cookie-Nutzung zu.  mehr...  Einverstanden  Ablehnen

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
gespeichert werden, sobald ein Barcode gescannt wurde.

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.

Barcode Hardware

Der Scanner ist so konfiguriert, dass er als Präfix das Steuerzeichen < und als Suffix das Steuerzeichen > sendet.

Barcode scannen und Gewicht in SQL Datenbank speichern Vivotek IP Kamera

Auf der BEMABOX wird zunächst die Tabelle BARCODE mit folgenden Feldern definiert:

SQL-Datenbank Barcode

Dann wird die Regel BARCODE erstellt, die alle Meldungen verarbeitet, die mit dem Steuerzeichen < beginnen und mit > enden.
Dazwischen befinden sich maximal 18 Ziffern:

Regel BARCODE


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:

BARCODE Browser

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.