lms-video/Gem/plugins/videoPYLON
Santi Noreña e85d191b46 - Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector
- Añadidas fuentes de Gem y Pure Data
- pix2jpg incluído en Gem. Archivos de construcción de Gem modificados.
- Añadido fichero ompiling.txt con instrucciones de compilación
2013-02-04 18:00:17 +01:00
..
win-vs2003 - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
win-vs2008 - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
CameraProperties.cpp - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
CameraProperties.h - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
configure.ac - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
LICENSE.txt - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
Makefile.am - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
pylon-videoplugin.pd - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
pylon.m4 - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
README.txt - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
StreamGrabberProperties.cpp - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
StreamGrabberProperties.h - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
videoPYLON.cpp - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00
videoPYLON.h - Reestructuración de ficheros y directorios general 2013-02-04 18:00:17 +01:00

videoPYLON
===========

PYLON-backend for pix_video

PYLON is a proprietary library that can do image-acquisition from 
a number of  GigE-cameras, available from Basler Vision Technologies.
You have to download pylon yourself.
At time o writing pylon is free as in beer, however it is not OpenSource.

	http://www.baslerweb.com/ (and search for "pylon")


installation instructions for linux
===================================
0. obvious prerequisites
you need a C++-compiler, Pd (inclusing headers) and the Gem-sources (including
the videoPYLON plugin)
you should have Gem running (preferrably self-compiled)

1. getting PYLON

get PYLON and install it onto your computer (and make sure to read their
installation instructions).
the directory you installed into shall henceforward be referred to as PYLON_ROOT

note: when running anything PYLONic, you will need to set PYLON_ROOT, GENICAM_ROOT_V1_1 as
environment-variables; 
you will also have to set your library path, so the dynamic linker will find the 
pylon libraries as needed.
for testing it makes also sense to add the pylon's bin-path to your PATH.
it's a good idea to do so right now:
e.g.
$ export PYLON_ROOT=${HOME}/lib/pylon
$ export GENICAM_ROOT_V1_1=${PYLON_ROOT}
$ export PATH=${PYLON_ROOT}/bin/:${PATH}
$ export LD_LIBRARY_PATH=${PYLON_ROOT}/lib
$ PylonViewerApp

if all went well, you should see a number of files from the pylon installation.
if not, adapt PYLON_ROOT to your system (and/or read PYLON's README again)

notes on LD_LIBRARY_PATH:
- if you already have set the LD_LIBRARY_PATH to something else before, make 
sure _add_ to it:
$ export LD_LIBRARY_PATH=${PYLON_ROOT}/lib:${LD_LIBRARY_PATH}
- on 64bit systems, you might need to set it to 
$ export LD_LIBRARY_PATH=${PYLON_ROOT}/lib64
instead

2. compiling videoPYLON

open a terminal and enter this directory
$ cd [Gem]/src/plugins/videoPYLON/

if you haven't done so yet, run autoreconf
$ autoreconf -fiv
(if you built Gem from source, you might have already done so)

now run configure
you will have to tell configure where to find your PYLON.
if you have set PYLON_ROOT, then the PYLON-framework
should be detected automatically, so just run:
$ ./configure

if you haven't set the environment variables, you can specify them via
configure-flags, e.g.:
$ ./configure --with-pylon=${HOME}/lib/pylon

you might also have to tell configure where to find the Pd-sources by specifying
the /path/to/pd with the "--with-pd=" flag.
for more information try:
$ ./configure --help


if all went well, you should see a line "checking for PYLON... yes" near the
end of configure's output.

now run the build:
$ make

you will get an error-message if something failed.

if you want, you can install the plugin into /usr/local/lib/pd/extra/Gem (or
wherever you specified with the "--libdir=" flag, by running
$ make install

you can also manually install the plugin, by copying the file
".libs/gem_videoPYLON.so" next to your Gem-binary.


3. using videoPYLON

start Pd/Gem
create an object [pix_video]
on the Pd-console, you should see (among other things) something like:
"[pix_video]: backend #0='pylon'        : pylon gige"
the backend-# will be different) depending on the number of video-backends found
on your system; it's only important that you find one backend named "pylon"

probably this won't work, with Gem complaining that it cannot find
"libpylonbase.so" or similar.
in this case should tell the linker where to find the pylon-libraries, using
the LD_LIBRARY_PATH variable:
$ LD_LIBRARY_PATH=${PYLON_ROOT}/lib pd -lib Gem
should do the trick. (see above, section 2)

once the plugin loaded correctly, you can start using it.
tell [pix_video] to open a device named like 
"Basler scA640-120gm#0030530F8E64#192.168.1.100:3956"
(that's a single long symbol with _spaces_ (and without quotes)!)
The name consists of vendor, modelname, MAC-address, IP-address and port, which
allows one to quite uniquely identify your camera.
Since such names are a bit awkward to use, you probably want to:
1: connect to your camera with something like "PylonViewerApp" and change
"user defined name" to something like "mycam"
2: enumerate all available devices (using the "enumerate" message to 
[pix_video]
3: access the device with it's short name "mycam".

you really have to run the "enumerate" in order to make [pix_video] aware of the 
user definee name!

examples:
[list Basler scA640-120gm#0030530F8E64#192.168.1.100:3956(
|
[symbol2list]
|
[device $1(
will search for a GigE-camera (scout scA640-120g) at the specified IP/MAC-address 
and connect.

[enumerate, device mycam(
will search for the cam named "mycam"

possible issues (FAQ)
=====================

Q1: my image quality is bad (white stripes)
A1: make sure you have a Gigabit-Ethernet card and enable "Jumbo Frames"
    you can do so by setting the MTU of your network card to 8000-9000
    e.g. use (as root):
    # ifconfig eth1 mtu 9500

Q2: i called the "resetDevice" command on the camera, and now it stopped working
    (it grabs some images and then stops)
A2: make sure you have "Jumbo Frames" also enabled on the _camera_!
    there is a parameter (in PylonViewerApp it is only visible in professional mode
    and it is somewhere in the "Transport" section) called either "PayloadSize" or
    "GevSCPSPacketSize" which you should set to the same value as your MTU.
    see the pylon documentation for more info

Q3: it doesn't work reliably (e.g. it works a bit, and then stops)
A3: make sure you have "Jumbo Frames" on both your network card and your camera

    






fmgasdr
IOhannes m zmölnig
Graz, 18.11.2010