User Tools

Site Tools


text:text-webcam-de

Differences

This shows you the differences between two versions of the page.


text:text-webcam-de [2021/09/08 00:27] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +======Text: WebCam-Unterstützung======
 +[[:german#objekte|{{  :objects.png}}]][[:german|{{  :rocrail-logo-35.png}}]]
 +[[:german|Inhalt]] -> [[:german#Objekte|Objekte]] ->  **[[:text-de|Text]]**
 +  * [[:text-de|Übersicht]] | [[:text-gen-de|Allgemein]] | [[:text-int-de|Schnittstelle]] | [[:text-cont-de|Menü]]
 +    * [[:text-gen-de#dynamischer_text|Dynamischer Text]] | **[[:text:text-webcam-de|WebCam]]** | [[:text:text-webcam-server-de|WebCam auf dem Server]] | [[text:text-slider-de|Schiebe-Regler]]
 + \\
 + \\
 +=====Einführung=====
 +{{ http://www.logitech.com/assets/36163/webcam-c170-glamour-image-lg.png?0x200}}
 +Diese Funktion ist vor allem für die Überwachung unsichtbarer Stellen der Anlage von Interesse, z.B. in Schattenbahnhöfen.\\
 +Es können die preisgünstigen USB-WebCams verwendet werden; High-Definition-WebCams (hochauflösend) sind für für diese Anwendung unnötig. Für Test-Zwecke wurde eine [[http://www.logitech.com/de-de/product/webcam-c170|Logitech C170]] verwendet, die für ca. €20,- erhältlich ist.\\
 +Rocview zeigt die WebCam nicht als Bewegtbild, sondern als Standbild mit definierbarem Aktualisierungs-Intervall, der ausreicht, um zu sehen was passiert.\\ Es wird ein externes Erfassungs-Programm (capturing program) benötigt, um die Stand-Bilder bereitzustellen, die diese Funktion für Rocrail vom Betriebssystem unabhängig machen.\\
 +Siehe __**[[#erfassungs-script|Absatz "Erfassungs-Script"]]**__.\\
 + \\ 
 +Mit den hier beschriebenen Lösungen kann die WebCam-Darstellung nur für einem RocView-Client realisiert werden.\\
 +Bei mehreren Clients und für RocWeb ist __**[[:text:text-webcam-server-de|WebCam auf dem Server]]**__ erforderlich.\\  
  
 +
 +=====Text-Einstellung=====
 +{{:text:text-webcam-2-en.png}}\\
 +Der Inhalt des Text-Objektes muss auf das WebCam-Bild zeigen.\\
 +Die __**[[:text-de#aktualisieren|Aktualisierungs-Zeit]]**__ in ms muss einen Wert von min. 100 haben. Ein guter Wert ist 500.\\ 
 +Eine Größenänderung des Text-Objektes kann mit den Raster-Werten **cx** und **cy** auf der Registerkarte "Allgemein" erfolgen.\\
 +{{:text:text-webcam-size-de.png?400}}\\
 + \\
 +
 +=====Erfassungs-Script=====
 +====Mac OS X====
 +Das Tool [[http://webcam-tools.sourceforge.net|WACAW]] wird auf Mac's für das Erfassen (capture) von Stand-Bildern einer WebCam verwendet.\\
 +<code bash>
 +#!/bin/bash
 +while :
 +do
 +  if [ ! -f /Users/rob/webcam1/picture.png ]; then
 +    echo "Snapping a new picture of the webcam..."  
 +    ./wacaw -d 2 --png /Users/rob/webcam1/_picture
 +    mv /Users/rob/webcam1/_picture.png /Users/rob/webcam1/picture.png
 +  fi 
 +  sleep 0.25
 +done
 +</code>
 +(Nicht vergessen, dieses Script mit **chmod +x webcam1.sh** ausführbar zu machen.)\\
 +
 +Wenn die Farbe eines erfassten Bildes schlecht ist, muss der **-n**-Parameter verwendet werden:
 +<code bash>
 +    ./wacaw -d 2 -n 5 --png /Users/rob/webcam1/picture
 +</code>
 + 
 + \\
 +===Ermitteln der Geräte-Nr.===
 +Mit der Befehlszeilen-Option **-L** wird die Geräteliste angezeigt:
 +<code>
 +./wacaw -L
 +There are 3 devices in the list.
 +The current selection is 2.
 + 0 - DV Video [is available] [has no inputs]
 + 1 - IIDC FireWire Video [is available] [has no inputs]
 + 2 - USB Video Class Video [is available] [has inputs]
 +    There are 1 inputs for this device (2).
 +    The current selection is 0.
 +   0 - Webcam C170 [is available]
 +</code>
 +In diesem Beispiel ist die zu verwendende Geräte-Nr. 2: **-d 2**.\\
 + \\
 +
 +====Linux====
 +Unter Linux kann das **avconv**-Tool zur Bild-Erfassung verwendet werden:
 +<code>
 +sudo apt-get install libav-tools
 +</code>
 +<code bash>
 +#!/bin/bash
 +while :
 +do
 +  if [ ! -f /home/rob/webcam1/picture.png ]; then
 +    echo "Snapping a new picture of the webcam..."  
 +    avconv -f video4linux2 -i /dev/video1 -frames 1 /home/rob/webcam1/_picture.png
 +    mv /home/rob/webcam1/_picture.png /home/rob/webcam1/picture.png
 +  fi 
 +  sleep 0.25
 +done
 +</code>
 +===Geräte===
 +Mit
 +<code>
 +ls /dev/video*
 +</code>
 +wird eine Liste von Video-Geräten angezeigt.\\
 +Wenn der PC/Laptop eine eingebaute Kamera hat, wird diese als **/dev/video0** angezeigt.\\
 +Die erste externe WebCam wird in diesem Fall als **/dev/video1** angezeigt.\\ 
 + \\
 +
 +====Windows====
 +  * https://github.com/tedburke/CommandCam/blob/master/CommandCam.exe
 +
 +Dieses Script wurde nicht getestet und verwendet Irfanview als Erfassungs-Tool.\\
 +<code batch>
 +:startallover
 +IF NOT exist "C:\webcam1\picture.png"\ (
 +  REM Change the Twain Source
 +  REM http://www.gssezisoft.com/Products/CmdTwain/Download/SetTwainSource.zip
 +  REM  cscript.exe SetTwainSource.vbs driver
 +  
 +  i_view32.exe /scanhidden /dpi=(150,150) /convert="C:\webcam1\picture.png"
 +  
 +
 +ping -n 1 127.0.0.1 > NULL
 +GOTO startallover</code>
 +
 +===Alternative===
 +In der Startphase von Rocrail wird beim  System-Ereignis "init" das Bilderfassungs-Script **CamOn.bat** gestartet und bei "shutdown" wird die Bilderfassung mit Hilfe des Scripts **CamOff.bat** wieder bendet.\\
 +Die Aktionen und die Scripte wurden erfolgreich getestet und beim 10. Stammtisch Solingen vorgestellt.
 +
 +^Textfeld^ ^Aktionen^^
 +|{{:text:webcam-textfield-de.png?0x400}}| |{{:text:webcam-action-camon-de.png?0x400}}|{{:text:webcam-action-camoff-de.png?0x400}}|
 +|  Die Aktualisierung von 2000 ms \\ ist langsamer Hardware geschuldet  | |   Der Zeitgeber 1000 ms verhindert Fehler \\ beim Laden der Plandaten nach dem Start  |
 +\\
 +^System-Aktionssteuerungen^^
 +|{{:text:webcam-sysaction-camon-de.png?0x450}}|{{:text:webcam-sysaction-camoff-de.png?0x450}}|
 +
 +\\
 +===Batch-Scripts===
 +Das Script **CamOn.bat**:
 +
 +Im Script wird zuerst geprüft, ob die Bedingung für das Beenden des Scripts durch die Datei ''c:\camoff'' gegeben ist. Wenn JA, wird die Bedingung gelöscht und das Script beendet.\\
 +Der nächste Befehl im Script prüft, ob die Bilddatei durch Rocrail verarbeitet und gelöscht wurde. Wenn JA, wird eine neue Bilddatei erfasst und konvertiert.\\
 +<code batch>
 +echo off
 +:start
 +if exist c:\camoff goto stopp
 +if exist c:\picture.png goto start
 +c:\commandcam.exe /quiet /filename c:\picture.bmp /delay 10
 +c:\bmp2png.exe -Q c:\picture.bmp
 +goto start
 +:stopp
 +del c:\camoff
 +</code>
 +\\
 +Das Script **CamOff.bat**:
 +
 +Es wird die Datei **c:\camoff** generiert, die das Script **CamOn.bat** beendet.
 +<code batch>
 +echo off
 +echo. > c:\camoff
 +</code>
 +
 +>**Hinweis:** Der Code in den Scripten setzt voraus, dass sich alle Dateien im Wurzel-Verzeichnis des Laufwerks C: befinden. \\ Anderenfalls müssen die Pfadangaben entsprechend eines anderen oder unterschiedlicher Verzeichnisse ergänzt werden.
 +
 +Die im Bilderfassungs-Script **CamOn.bat** verwendeten **commandcam.exe** als Erfassungs- und **bmp2png.exe** als Konvertierungs-Tool sind zum Download hier zu finden:  
 +  * https://batchloaf.wordpress.com/commandcam/ -> Download und Doku (en)
 +  * http://sourceforge.net/projects/pmt/files/bmp2png/1.6.2/b2p162d.zip/download -> BMP2PNG.EXE aus der ZIP-Datei entpacken (auch für Win 10)
 +Für __**[[:text:text-webcam-server-de#windows|WebCam auf dem Server]]**__ wird anstelle **bmp2png.exe** das Tool **bmp2jpg.exe** im Batch-Script benötigt:
 +  * http://blog.microtom.net/os-management/convert-bmp-to-jpg-command-line-utility
 +
 +Informationen zur installierten Video-Hardware können so abgefragt werden:
 +<code>
 +commandcam.exe /devlistdetail
 +</code>
 +Sind mehrere Video-Geräte installiert, kann mit einer zusätzlichen Option das Gerät ausgewählt werden. \\
 +In diesem Beispiel ist das die Geräte-Nummer "2":
 +<code>
 +...
 +commandcam.exe /quiet /filename c:\picture.bmp /delay 10 /devnum 2
 +...
 +</code>
 +
 +Es wird empfohlen, __**[[:text:text-webcam-server-de#windows|WebCam auf dem Server]]**__ anstelle des hier beschriebenen Beispiels zu verwenden.\\
 +Bei der Server-Lösung sind Einstellungen einfacher, es wird nur eine Aktion und eine Aktionssteuerung benötigt, das Script zur Bild-Erfassung läuft nicht in einer Ressourcen belastenden Schleife und es können mehrere Rocview- und RocWeb-Clients auf die WebCam-Bilder zugreifen.\\  
 +
 +
 +=====Datei-Handshake=====
 +Nur eines von beiden Programmen, wacaw (oder jedes andere Erfassungs-Programm) und Rocview, darf Zugriff zur Bild-Datei haben, um ungültige Bilder zu vermeiden.\\
 +  - Das Script erfasst ein Bild und speichert es in der Datei "picture.png".
 +  - Rocview liest und zeigt es an.
 +  - Rocview löscht die "picture.png".
 +  - Das Script erkennt, das die "picture.png" gelöscht ist und erfasst das nächste Bild der WebCam.
 +  - Gehe zu Schritt 2...
 +\\