CONTENTS
1. Installation, Configuration, and Usage - Compile Time.................... 4
1.A Introduction......................................................... 4
1.B Library Installation................................................. 4
1.C Compiling............................................................ 5
1.C.1 Stack......................................................... 5
1.C.2 Heap.......................................................... 5
1.C.3 Example: Watcom 32 Bit C/C++.................................. 6
1.D Compile Time Inclusions.............................................. 6
1.E Common Types and Structures.......................................... 6
1.E.1 Coordinates, Images, and Image Window Structures.............. 7
1.F Usage Assumptions.................................................... 9
1.G Error Codes.......................................................... 9
1.H Memory Allocation Hooks.............................................. 9
1.I 16 Bit Environment Notes............................................. 10
1.J Windows 3.x Environment Notes........................................ 10
1.J.1 Windows 3.x Environment - Callback Functions.................. 11
1.K Tenberry DOS4GW Environment Notes.................................... 12
1.L Windows 95 Environment Notes......................................... 12
2. Installation and Configuration - Run Time................................ 13
2.A Driver Configuration Parameters...................................... 13
2.B Tenberry DOS4GW Environment.......................................... 13
2.C Windows 95 Environment............................................... 14
2.C.1 Windows 95 Environment - Manual Installation.................. 14
2.C.2 Windows 95 Environment - Image Memory Allocation.............. 15
2.C.3 Windows 95 Environment - Forceable Image Memory Allocation.... 16
3. SCF Level Interface........................................................ 17
PIXCI: Open and Set Video Format - pxd_xcopen.............................. 17
Get Version ID String, Run Time - pxd_id................................... 19
Get Version ID String, Compile Time - pxd_idstr............................ 19
PIXCI: Close - pxd_close................................................... 20
Get Total Image Memory Size - pxd_imsize................................... 20
Set Video Mode and Buffer - pxd_video...................................... 21
Acquire: Snap Video into Buffer - pxd_snap................................. 22
Set Field for Video Switch - pxd_vidfield.................................. 23
Set Video Resolution &Size - pxd_vidsize.................................. 23
Get Horizontal Image Dimension - pxd_xdim.................................. 24
Get Vertical Image Dimension - pxd_ydim.................................... 24
Get Vertical Interlace Dimension - pxd_ylace............................... 24
Get Pixel Component Dimension - pxd_cdim................................... 24
Get Horizontal Display Dimension - pxd_xdim_disp........................... 24
Get Vertical Display Dimension - pxd_ydim_disp............................. 24
Get Vertical Interlace Display Dimension - pxd_ylace_disp.................. 24
Get Pixel Component Display Dimension - pxd_cdim_disp...................... 24
Get Current Image Buffer Number - pxd_imbuf................................ 26
Get Number of Image Buffers - pxd_imbufs................................... 26
Get Field Time - pxd_vidtime............................................... 26
Pixel Value: Read - pxd_pixread............................................ 27
Pixel Value: Write - pxd_pixwrite.......................................... 28
Imaging Board Buffer: Open Access to Buffer - pxd_iopen.................... 28
Imaging Board Buffer: Open Access to Color Buffer - pxd_iopencolor......... 28
Imaging Board Buffer: Read &Write, Char - pxd_ioc......................... 30
Imaging Board Buffer: Read &Write, Short - pxd_ios........................ 30
Imaging Board Buffer: Read &Write, Long - pxd_iol......................... 30
Imaging Board Buffer: Test End of Access - pxd_ioeof....................... 33
External Input Signal: Sense - pxd_extin................................... 34
External Output Signal; Set - pxd_extout................................... 35
Get PXIMAGE: Access Imaging Board Buffer - pxd_defimage.................... 35
Get PXIMAGE: Access Imaging Board Color Buffer - pxd_defimagecolor......... 35
Errors: Check &Report Insufficient Stack Space - pxd_chkstack............. 37
Errors: Check &Report Severe Fault - pxd_chkfault......................... 37
Save Image: BMP Format - pxd_bmpsave....................................... 38
Load Image: BMP Format - pxd_bmpload....................................... 38
Save Image: TIFF Format - pxd_tiffsave..................................... 39
Load Image: TIFF Format - pxd_tiffload..................................... 39
Save Image: PCX Format - pxd_pcxsave....................................... 41
Windows: Display Image Buffer On Device - pxd_StretchDIBits................ 42
4. Initialization &Support Functions......................................... 45
PIXCI® Driver: Open - xcdrv_open............................................ 45
PIXCI® Driver: Close - xcdrv_close.......................................... 46
Errors: Obtain Last Posted Fault Information - pxdrv_fault................. 46
Construct PXIMAGE: Access Imaging Board Buffer - pxvid_setpximage.......... 48
Construct PXIMAGE: Access Imaging Board Buffer - pxvid_setpximage2......... 48
Construct PXIMAGE3: Access Imaging Board Buffers - pxvid_setpximage3....... 51
Errors: Translate Error Code to String - pxerrnomesg....................... 52
5. Video Control.............................................................. 54
XCFORMAT: PIXCI, Video Format Specification - struct xcformat.............. 54
PXVIDPARM: Video Resolution Specification - Struct pxvidparm............... 55
PXVIDMODE: Video Mode Specification - Struct pxvidmode..................... 60
PXCAMCARD: Auxiliary Camera Control Card Specification - Struct pxcamcard.. 61
Video States, Define - pxvid_define........................................ 62
Video States, Define - pxvid_define4....................................... 62
Video States, Undefine - pxvid_undefine.................................... 66
Video States: Load - pxvid_load............................................ 67
Video States: Unload - pxvid_unload........................................ 68
Video State: Activate State &Mode - pxvid_gomode.......................... 68
Video State: Activate State &Buffer - pxvid_gobuf......................... 69
Video State: Activate State &Buffer - pxvid_go............................ 69
Video State: Activate State &Mode, Async. - pxvid_gomodea................. 70
Video State: Test Completion of Activate State, Async. - pxvid_gomodew..... 71
Video State: Get State's Video Components - pxvid_xstatevect............... 72
Video State: Get State's Video Resolution - pxvid_xparm.................... 72
Video State: Get State's Video Format - pxvid_xformat...................... 72
Video State: Get State's Video Mode - pxvid_xmode.......................... 72
Video State: Get State's Definition Options - pxvid_xdipopt................ 72
Video State: Get State's Device Independent Format - pxvid_xpformat........ 72
Video State: Get State's Current Image Buffer - pxvid_xbuf................. 72
Video State: Get State's Maximum Image Buffers - pxvid_xbufs............... 72
Video State: Get Current State - pxvid_xstate.............................. 74
Get Vertical Blanking Time - pxdrv_xvbtime................................. 74
Get Video Status - pxdrv_xstatus........................................... 75
Get Video State - pxdrv_xstate............................................. 76
Video States: Import - pxvib_defimport..................................... 77
Video States: Export - pxvib_defexport..................................... 77
6. Image Memory Access........................................................ 79
Image Memory: Translate X, Y Coordinate to Address - pxvid_xyadrs.......... 79
Image Memory: Read &Write - pxdrv_imio.................................... 80
Image Memory: Test Completion of Read &Write - pxdrv_imiow................ 81
Image Memory: Get Optimal Read &Write Length - pxdrv_imioz................ 81
Image Memory: Obtain Direct Mapping - pxdrv_imap........................... 82
Image Memory: Release Direct Mapping - pxdrv_imapr......................... 83
PXIMAGE: Image and Pixel Specifications - Struct pximage................... 84
PXIMAGE: Set &Get Area of Interest Window - pximage::xwind................ 88
PXIMAGE: Get Advice, Errors, Info &Options - pximage::aeiou............... 88
PXIMAGE: Set to Access Sequential Pixels - pximage::ioset.................. 90
PXIMAGE: Read Sequential Pixels - pximage::ioread.......................... 90
PXIMAGE: Write Sequential Pixels - pximage::iorite......................... 90
PXIMAGE: Wait for Sequential Access Completion - pximage::iowait........... 90
PXIMAGE: Obtain Sequential Access Pixel Count - pximage::iolen............. 90
PXIMAGE: Set to Access Non-Sequential Pixels - pximage::bxts............... 92
PXIMAGE: Prepare for Non-Sequential Pixel Access - pximage::bxtp........... 92
PXIMAGE: Access Non-Sequential Pixels - pximage::bxta...................... 92
PXIMAGE: Wait for Non-Sequential Access Completion - pximage::bxtw......... 92
PXIMAGE: Set to Obtain Pointer to Pixels - pximage::imapset................ 94
PXIMAGE: Obtain Pointer to Pixels - pximage::imap.......................... 94
PXIMAGE: Release Pointer to Pixels - pximage::imapr........................ 94
Sequential Access: Establish Access to Image Buffer - pxb8_iopen........... 98
Sequential Access: Read &Write Image Buffer - pxb8_io..................... 98
Sequential Access: Test End of Image Buffer - pxb8_ioeof................... 98
Sequential Access: Reposition within Image Buffer - pxb8_ioseek............ 98
Sequential Access: Read &Write Image Buffer, Async. - pxb8_iof............ 98
Sequential Access: Test Read &Write Complete - pxb8_iow................... 98
Sequential Access: Get Transfer Count - pxb8_iodone........................ 98
Sequential Access: Check or Wait upon Read &Write - pxb8_ioflush.......... 98
Sequential Access: Terminate Access - pxb8_ioclose......................... 98
Sequential Access: Obtain Number of Unused Handles - pxb8_iopens........... 98
Pixel List: Access &Modify Pixels - pxdrv_pixbxt.......................... 99
Pixel List: Test Access Completion - pxdrv_pixbxtw......................... 99
Pixel List: Get Optimal Asynchronous Length - pxdrv_pixbxtz................ 99
Pixel List: Translate Memory Addresses - pxdrv_pixlate..................... 99
Pixel List: Translate X, Y Coordinates - pxvid_pixlate..................... 99
7. Miscellaneous Services..................................................... 101
External Input Signal: Sense - pxdrv_extin................................. 101
External Output Signal: Set - pxdrv_extout................................. 101
External Output Signal: Test Completion of Set - pxdrv_extoutw............. 102
External Output Signal: Get Current Value - pxdrv_extoutv.................. 103
8. Multiple Imaging Boards.................................................... 104
9. Additional Features........................................................ 105
User-Defined Premature Termination Functions - pxabortfunc_t............... 105
Copy Image Buffer to Raw Image Address - pxip8_copyintoradrs............... 106
Copy Image Buffer from Raw Image Address - pxip8_copyfromradrs............. 106
Image Sequence: Save in Image Memory Format - pxio8_fmbwrite............... 107
Image Sequence: Load in Image Memory Format - pxio8_fmbread................ 107
Image Sequence: Acquire - pxvib_gosequence................................. 110
Acquire: Triggered Video Capture - pxvib_gotrig2........................... 111
Acquire: Triggered Video Capture - pxvib_gotrig............................ 111
10. Hints &Code Fragments..................................................... 114
10.A Saving and Restoring Image Buffers................................... 114
10.B Porting Custom Video Parameters...................................... 116
11. Release Notes.............................................................. 118
12. Distribution Contents...................................................... 119
13. Index...................................................................... 120
Specifications and prices subject to change without notice.
EPIX® imaging products are made in the USA.
EPIX, SILICON VIDEO, and PIXCI are registered trademarks of EPIX, Inc. 4MIP, SVIP, XCIP, XCAP, 4MEG VIDEO, 1MEG VIDEO, SILICON VIDEO MUX, QUICK SET VIDEO, 12-7 MUX, IMAGE MEMORY EXPANSION, COC40, COC402, CL3SD, 4MOBJ, SVOBJ, XCOBJ, XCLIB, PXIPL, and XCLIBIPL are trademarks of EPIX, Inc. Other brand, product, and company names are trademarks or registered trademarks of their respective owners.
Copyright © 2008 EPIX, Inc. All rights reserved.