itifg(4)

NAME
itifg - Imaging Technology Inc. frame grabber loadable kernel module (version 0.7.1)

SYNOPSIS
insmod itifg [major=xxx]
rmmod itifg
/dev/MAKEDEV.itifg
/etc/rc.d/init.d/itifg {start|stop|restart}

DESCRIPTION (Hardware)

  1. Generation:
IC-VS,IC-FA,IC-CLR,IC-RGB,IC-COMP,IC-DIG,IC-MTD

IC-VS (analog; B/W) (*)

IC-FA (analog; B/W)

IC-CLR (analog; color and B/W) (**)

IC-RGB/IC-COMP (analog; color and B/W) (**)

IC-DIG (digital; color and B/W) (*)

IC-MTD (digital; B/W)

  2. Generation:
PCVision, PCRGB, PCDig

PCVision (analog; B/W) (*)

PCRGB (analog; color and B/W)

PCDig (digital; color and B/W) (*)

For further information, please visit http://www.imaging.com.

DESCRIPTION (Software)
/* FILLME */

  1. Data flow:

                        on board memory
     |--------|    |-----------------------|     pagewise transfer
     | camera | -> | 1 | 2 | 3 | 4 | 5 | 6 | --> ------------------|
     |--------|    |-----------------------|      trough pci bus   |
                                                                   ~

                                                                   ~
     1. via read(2)         |--------------------------------------|
                       MMU  |
                   virt<->phys |
                   |-|     |-| |
                   |1|--|--|2| |
                   |-|  |  |-| |
                   |2|--|--|4| |
                   |-|  |  |-| |
                   |3|--|--|3| |
                   |-|  |  |-| |
                   |4|--|--|6| |
                   |-|  |  |-| |
                   |5|--|--|1| |
                   |-|  |  |-| |
                   |6|--|--|5| |
                   |-|     |-| |
                               |
                   user space  | kernel space
                    (malloc)

                                                                   ~
     2. via mmap(2)                       |------------------------|
                                     MMU  |
                   virt        | virt<->phys
                   |-|         | |-|     |-|
                   |1|         | |1|--|--|2|
                   |-|         | |-|  |  |-|
                   |2|   / M \   |2|--|--|4|
                   |-|  /     \  |-|  |  |-|
                   |3| /   M   \ |3|--|--|3|
                   |-|<         >|-|  |  |-|
                   |4| \   A   / |4|--|--|6|
                   |-|  \     /  |-|  |  |-|
                   |5|   \ P /   |5|--|--|1|
                   |-|         | |-|  |  |-|
                   |6|         | |6|--|--|5|
                   |-|         | |-|     |-|
                               |
                   user space  | kernel space
                                  (vmalloc)

  2. Control flow

    1. blocking via read(2)
                               process                    process
                                  |                          |
                                  |                          |
    user space                    |                          |
                                 \ /                         |
                               read(2)                     read(2)
                           image buffer/size            error value
                                  |                          |
    ---------------------------------------------------------------------
                                  |                          |
                             start image                     |
      upper half             acquisition                     |
                                  |                          |
                       give up control (sleep)               |
                                                             |
    kernel space                  .                          |
                                  .                          |
                                  .                   process resumes
                                  .                       (wakeup)
      bottom half      'Image transfered' signal            / \
                         from the camera (VSync)             |
                                  |                          |
                                  |--------------------------|

    2. non blocking via mmap(2)
         a) signal(2)                              b) select(2)
                               map buffers
                                 mmap(2)
                                   | |
    		      start image acquisition
    			ioctl(2) (SET_START)
                                   | |
               |-------------------| |-------------------|
               |                                         |
            install                                      |
         signal handler                                  |
            signal(2)                                    |
               |                                         |
    |--------->|                                         |<----------------|
    |          |                                         |                 |
    |      wait using                              wait for events         |
    |     sigsupend(2)                                select(2)            |
    |          |                                         |                 |
    |          |----------|                   branch into the events       |
    |                     |                              |                 |
    |               signal handling                      |                 |
    |                     |                   |----------|----------|      |
    |          |----------|                   |          |          |      |
    |          |                                 image processing          |
    |  image processing                    camera 1     ...      camera n  |
    |          |                              |          |          |      |
    |<---------|                              |----------|----------|      |
               |                                         |                 |
               |                                         |---------------->|
               |                                         |
               |-------------------| |-------------------|
                                   | |
                         stop image acquisition
                            ioctl(2) (SET_STOP)
                                   | |
                              unmap buffers
                                munmap(2)

DESCRIPTION (interface)

open
    /* FILLME */

close
    /* FILLME */

read
    /* FILLME */

write
    /* FILLME */

mmap
    /* FILLME */

select
    /* FILLME */

poll
    /* FILLME */

signal
    /* FILLME */

fcntl
    /* FILLME */

ioctl
    Due to the big number of calls, please see the special page itifg_ioctl(2).

FILES (device special)
/dev/ic0xxx, /dev/ic1xxx, /dev/ic2xxx...

FILES (installation)

    / --+-- lib/modules/`kernel version`/misc/ --+-- itifg.o
        |                                        `-- itifg_g.o
        |
        +-- etc/rc.d/ --+-- init.d/ -- itifg
        |               |
        |               `-- rc[235].d/ --+-- S25itifg
        |                                `-- K15itifg
        |
        +-- bin/config_pcdig
        |
        +-- dev/ --+-- MAKEDEV.itifg
        |          |
        |          +-- ic[01234567]idI
        |          `-- ic[01234567]ioP
        |
        `-- INSTALL_PREFIX --+-- bin/ --+-- test_itifg
             '/usr/local'    |          |-- extime_itifg
                             |          |-- swtrig_itifg
                             |          `-- ioport_itifg
                             |
                             +-- man/ --+-- man1/ --+-- test_itifg.de.1
                             |          |           `-- test_itifg.1
                             |          |
                             |          `-- man4/ --+-- itifg.de.4
                             |                      |-- itifg.us.4
                             |                      |-- itifg.4
                             |                      |-- itifg_ioctl.de.4
                             |                      |-- itifg_ioctl.us.4
                             |                      `-- itifg_ioctl.4
                             |
                             +-- lib/ --+-- libiticonfig.a
                             |          `-- libiticonfig_g.a
                             |
                             +-- include/ --+-- itifgExt.h
                             |              `-- iticonfig.h
                             |
                             `-- share/ -- itifg/ --+-- conffiles/*.cam
                                                    `-- fpgafiles/*.exo

EXAMPLES

BUGS

SEE ALSO
itifg_ioctl(4), test_itifg(1), insmod(1), rmmod(1), mknod(1), open(2), close(2), read(2), write(2), mmap(2), select(2), poll(2), ioctl(2), signal(2), fcntl(2)

HISTORY
The following persons are involved in the driver developement:

Dirk Bergmann | (D.Bergmann@gom.com) | (Contact person)
Matthias Stein | (M.Stein@gom.com) | (base module, remaining acqu. modules)
Werner Jaeger | (e9026603@student.tuwien.ac.at) | (IC-CLR)
Rin-ichiro Taniguchi | (rin@limu.is.kyushu-u.ac.jp) | (IC-RGB)
Rolando Cantarutti | (rcantarutti@ctios2.ctio.noao.edu) | (IC-COMP)

The driver was mainly developed (with execption of the color acqu. module patches) at :

         Copyright (C) 1996-2000 GOM mbH.
    Rebenring 33, 38106 Braunschweig, GERMANY.
             Tel. ++49 531 3804-330
             Fax, ++49 531 3804-333
              All rights reserved.

The module is now under GPL 2.0, so commercial use is allowed without further agreements.

The company GOM is in the area of optical measurement since 1990. GOM offers measurement systems (hardware and software) in the fields of 3D measurement technique, image processing, object digitising, reverse engineering and strain and deformation measurement.

http://www.gom.com

ftp://ftp.gom.com/pub/ITI-FG/itifg-0.7.1.tar.gz,
ftp://sunsite.unc.edu/pub/Linux/kernel/misc-cards/itifg-0.7.1.tar.gz