######################################################### IDS - Imaging Development Systems GmbH FALCON/EAGLE Driver installation ######################################################### 2007, Imaging Development Systems GmbH ------------------ CONTENTS ------------------ 1 - REQUIREMENTS 2 - INSTALLED FILE STRUCTURE 3 - QUICK START (FOR ADVANCED USERS) 4 - DETAILED INSTALLATION 5 - THE DEMONSTRATION PROGRAM 6 - CURRENT API STATUS 7 - FUNCTIONS CURRENTLY NOT AVAILABLE FOR LINUX 1 - REQUIREMENTS ---------------- SOFTWARE REQUIREMENTS - at least a 2.4.19 LINUX kernel & kernel header files - libc/glibc, the standard C Library (min. v2) - gcc, the GNU Compiler Collection (min. v2.95) - POSIX threads library (POSIX threads enabled libc) - bash (Bourne again shell) or sh to run the script - GTK+2.0 and pkg-config for the demo program - LINUX Kernel 2.6 is not supported yet HARDWARE REQUIREMENTS - a x86 PC with a free PCI slot - an IDS FALCON or EAGLE framegrabber card plugged in OTHER REQUIREMENTS - You will need ROOT rights in order to install, and load the kernel module. You will also need these rights in order to modify system wide scripts to automatically load the kernel module on startup and specify the shared library location in /etc/ld.so.conf. - You must copy the files on a read/write enabled support. For example, into /usr/local/src. The install scripts needs a writable place to compile the driver. NEWS - Support for the newest hardware revisions - Better portability, fixed the SMP-Kernels issue - The installation script works better on more systems The requirements are also automatically checked by the install script, when the installation process is started. NOTE 1: Compiling the kernel driver is needed because the Linux kernel does not provide a binary driver interface. Different dependencies (compiler version and kernel version) do not allow to distribute a binary driver that can be loaded by all LINUX kernels. NOTE 2: The compiler used to compile the kernel module has to be of the same version as the compiler that has been used to compile the running kernel. If you installed a new compiler and removed the old one, then you certainly will have to recompile the kernel before installing the FALCON driver. 2 - INSTALLED FILE STRUCTURE ---------------------------- The created files will be installed in following directories: /lib/modules/.../falcon.o The LINUX kernel module /etc/ids/falcon/ PATH to the configuration files /usr/src/ids/falcon sources for the demo program /usr/lib/libfalcon.so The FALCON shared library /usr/include/falcon.h The development header file /usr/share/doc/falcon/ PATH to the documentation files 3 - QUICK START (FOR ADVANCED USERS) ------------------------------------ 1 - copy all the files in a directory on the hard disk (you need write access to it in order to decompress and compile the driver) 2 - go to the directory you copied the files into and run the setup program script by typing sh ./falcon-setup*.run 3 - if any problems occurred, contact our support and submit the report.log file (in the falcon setup directory) to support@ids-imaging.de 4 - modify the scripts to load automatically the kernel module (insmod falcon) on startup. Eventually you will also need to setup the path to the header file and the path to the shared library. 4 - DETAILED INSTALLATION ------------------------- 1 - copy all the files in a directory on the hard disk (you need write access to it in order to decompress and compile the driver) for example into /usr/local/src. 2 - If you are in a graphical environment, open a console by using the appropriate menus. 3 - Get the root rights by typing: (you will of course also need the password) $> su --login 4 - Change to the directory where you copied the files into: $> cd /usr/local/src 5 - Run the setup program script by typing: $> sh ./falcon-setup*.run 6 - Now the installation starts. Respond to the questions that may appear on the screen. The installation process may take some time. At the end, you will be informed if the installation was successful or not. 7 - If the installation was unsuccessful, contact our support and submit the generated report.log file /usr/local/src/report.log to the EMail address support@ids-imaging.de. 8 - If the installation was successful, then you may want to change your start scripts to load automatically the kernel module on startup. Refer to the documentation coming with your LINUX distribution in order to make this change. "insmod falcon.o" -> loads the kernel module into the kernel "rmmod falcon" -> removes the kernel module from the kernel "lsmod" -> dumps a list of all modules currently loaded 5 - THE DEMONSTRATION PROGRAM ----------------------------- The demonstration program is there to show how to use the API in order to make following actions: - Board detection and initialization - Setup memory for capturing - Setup the camera video mode - Modify the image parameters - Switch between the cameras - Read and Write to the I/Os - Making snapshots - Display the video in a GTK+ based application 6 - CURRENT API STATUS ---------------------- -- Board Initialization / Termination IDSEXP is_InitBoard (HIDS* phf, HWND hWnd); IDSEXP is_ExitBoard (HIDS hf); -- Getting information IDSEXP is_GetDLLVersion (); IDSEXP is_GetNumberOfDevices (); IDSEXP is_GetNumberOfBoards (INT* pnNumBoards); IDSEXP is_GetOsVersion (); IDSEXP is_GetBoardType (HIDS hf); IDSEXP is_GetBoardInfo (HIDS hf, PBOARDINFO pInfo); IDSEXP is_GetIRQ (HIDS hf, INT* pnIRQ); IDSEXP is_GetPciSlot (HIDS hf, INT* pnSlot); -- Memory management IDSEXP is_FreeImageMem (HIDS hf, char* pcMem, int id); IDSEXP is_AllocImageMem (HIDS hf, INT width, INT height, INT bitspixel, char** ppcImgMem, int* pid); IDSEXP is_InquireImageMem (HIDS hf, char* pcMem, int nID, int* pnX, int* pnY, int* pnBits, int* pnPitch); IDSEXP is_GetActiveImageMem (HIDS hf, char** ppcMem, int* pnID); IDSEXP is_SetImageMem (HIDS hf, char* pcMem, int id); IDSEXP is_GetImageMem (HIDS hf, void** pMem); IDSEXP is_GetImageMemPitch (HIDS hf, INT* pPitch); IDSEXP is_CopyImageMem (HIDS hf, char* pcSource, int nID, char* pcDest); IDSEXP is_CopyImageMemLines (HIDS hf, char* pcSource, int nID, int nLines, char* pcDest); -- Sequence IDSEXP is_AddToSequence (HIDS hf, char* pcMem, INT nID); IDSEXP is_ClearSequence (HIDS hf); IDSEXP is_GetActSeqBuf (HIDS hf, INT* pnNum, char** ppcMem, char** ppcMemLast); IDSEXP is_LockSeqBuf (HIDS hf, INT nNum, char* pcMem); IDSEXP is_UnlockSeqBuf (HIDS hf, INT nNum, char* pcMem); -- EEPROM access IDSEXP is_ReadEEPROM (HIDS hf, INT Adr, char* pcString, INT Count); IDSEXP is_WriteEEPROM (HIDS hf, INT Adr, char* pcString, INT Count); -- Board settings IDSEXP is_SetBrightness (HIDS hf, INT Bright); IDSEXP is_SetContrast (HIDS hf, INT Cont); IDSEXP is_SetSaturation (HIDS hf, INT ChromU, INT ChromV); IDSEXP is_SetHue (HIDS hf, INT Hue); IDSEXP is_SetAGC (HIDS hf, INT Mode); IDSEXP is_SetGamma (HIDS hf, INT Mode); IDSEXP is_SetSyncLevel (HIDS hf, INT Level); IDSEXP is_SetHorFilter (HIDS hf, INT Mode); IDSEXP is_SetVertFilter (HIDS hf, INT Mode); -- Error management IDSEXP is_GetError (HIDS hf, INT* pErr, char** ppcErr); IDSEXP is_SetErrorReport (HIDS hf, INT Mode); -- Capture settings IDSEXP is_ShowColorBars (HIDS hf, INT Mode); IDSEXP is_SetImageSize (HIDS hf, INT x, INT y); IDSEXP is_SetImagePos (HIDS hf, INT x, INT y); IDSEXP is_SetVideoMode (HIDS hf, INT Mode); IDSEXP is_SetColorMode (HIDS hf, INT Mode); IDSEXP is_SetScaler (HIDS hf, float Scalex, float Scaley); IDSEXP is_SetVideoSize (HIDS hf, INT xpos, INT ypos, INT xsize, INT ysize); IDSEXP is_SetRopEffect (HIDS hf, INT effect, INT param, INT reserved); -- Multiplexer IDSEXP is_SetVideoInput (HIDS hf, INT Source); -- Event notification InitEvent is using pthread conditional variables under Linux. NB: HANDLE MUST BE OF TYPE "pthread_cond_t*" UNDER LINUX IDSEXP is_InitEvent (HIDS hf, HANDLE hEv, INT which); IDSEXP is_ExitEvent (HIDS hf, INT which); IDSEXP is_EnableEvent (HIDS hf, INT which); IDSEXP is_DisableEvent (HIDS hf, INT which); -- I/O and triggers (EAGLE/FALCON+/...) IDSEXP is_SetIO (HIDS hf, INT nIO); IDSEXP is_SetExternalTrigger (HIDS hf, INT nTriggerMode); -- Capture functions IDSEXP is_StopLiveVideo (HIDS hf, INT Wait); IDSEXP is_CaptureVideo (HIDS hf, INT Wait); IDSEXP is_FreezeVideo (HIDS hf, INT Wait); IDSEXP is_IsVideoFinish (HIDS hf, BOOL* pbo); IDSEXP is_HasVideoStarted (HIDS hf, BOOL* pbo); IDSEXP is_GetCurrentField (HIDS hf, int* pField); IDSEXP is_GetVsyncCount (HIDS hf, long* pIntr, long* pActIntr); IDSEXP is_SetCaptureMode (HIDS hf, INT Mode); IDSEXPUL is_BoardStatus (HIDS hf, INT nInfo, ULONG ulValue); -- video, not tested, but should work IDSEXP is_SetToggleMode (HIDS hf, int nInput1, int nInput2, int nInput3, int nInput4); IDSEXP is_SetDecimationMode (HIDS hf, INT nMode, INT nDecimate); -- file functions IDSEXP is_SaveImage (HIDS hf, char* File); IDSEXP is_LoadImage (HIDS hf, char* File); IDSEXP is_SaveImageMem (HIDS hf, char* File, char* pcMem, int nID); -- Hardware dependent functions, not supported by all cards IDSEXP is_SetSync (HIDS hf, INT nSync); IDSEXP is_SetFlashStrobe (HIDS hf, INT nField, INT nLine); IDSEXP is_SetPassthrough (HIDS hf, INT Source); IDSEXP is_WatchdogTime (HIDS hf, long lTime); IDSEXP is_Watchdog (HIDS hf, long lMode); 7 - FUNCTIONS CURRENTLY NOT AVAILABLE FOR LINUX ----------------------------------------------- API FUNCTIONS NOT IMPLEMENTED UNDER LINUX IN THIS VERSION: Special functions: ------------------ IDSEXP is_PrepareStealVideo (HIDS hf, int Mode, ULONG StealColorMode); IDSEXP is_StealVideo (HIDS hf, int Wait); IDSEXP is_SetAllocatedImageMem (HIDS hf, INT width, INT height, INT bitspixel, char* pcImgMem, int* pid); // only FALCON duo/quattro IDSEXP is_SetVideoCrossbar (HIDS hf, INT In, INT Out); User Interface: (currently not supported) --------------- IDSEXP is_RenderBitmap (HIDS hf, INT nMemID, HWND hwnd, INT nMode); IDSEXP is_GetDC (HIDS hf, HDC* phDC); IDSEXP is_ReleaseDC (HIDS hf, HDC hDC); IDSEXP is_UpdateDisplay (HIDS hf); IDSEXP is_SetDisplayMode (HIDS hf, INT Mode); IDSEXP is_SetDisplaySize (HIDS hf, INT x, INT y); IDSEXP is_SetDisplayPos (HIDS hf, INT x, INT y); IDSEXP is_SetHwnd (HIDS hf, HWND hwnd); IDSEXP is_SetParentHwnd (HIDS hf, HWND hwnd); IDSEXP is_SetUpdateMode (HIDS hf, INT mode); IDSEXP is_GetColorDepth (HIDS hf, INT* pnCol, INT* pnColMode); DirectDraw: (currently not supported) ----------- IDSEXP is_ShowDDOverlay (HIDS hf); IDSEXP is_HideDDOverlay (HIDS hf); IDSEXP is_ScaleDDOverlay (HIDS hf, BOOL boScale); IDSEXP is_SetDDUpdateTime (HIDS hf, INT ms); IDSEXP is_LockDDOverlayMem (HIDS hf, void** ppMem, INT* pPitch); IDSEXP is_UnlockDDOverlayMem (HIDS hf); IDSEXP is_LockDDMem (HIDS hf, void** ppMem, INT* pPitch); IDSEXP is_UnlockDDMem (HIDS hf); IDSEXP is_GetDDOvlSurface (HIDS hf, void** ppDDSurf); IDSEXP is_EnableDDOverlay (HIDS hf); IDSEXP is_DisableDDOverlay (HIDS hf); IDSEXP is_OvlSurfaceOffWhileMove (HIDS hf, BOOL boMode); IDSEXP is_SetKeyColor (HIDS hf, INT r, INT g, INT b); IDSEXP is_SetKeyOffset (HIDS hf, INT nOffsetX, INT nOffsetY);