Ccam.cgi
From ElphelWiki
Revision as of 19:56, 28 September 2005 by Andrey.filippov (talk | contribs)
ccam cgi (source - ccam.c)
* _time=t (ms) will try to set current system time (if it was not set already. _stime - will always set) * if any of html, htmlr, htmll or htmlj are present will genmerate html page instead of an image * html= not present)- picture as before (or vrml) * 0 - nothing * 1 - all sensor parameters as javaScript * 2 - all sensor parameters as html * 3 - beam data as javaScript * 4 - beam data as html * 5 - state (5 -picture ready) as javaScript * 6 - state (5 -picture ready) as html * 7 - start image acquisition (option "s" or "t" should be present) * 8 - reset waiting for trigger * 10 - all sensor parameters as XML * 11 - beam data as XML * 12 - state (5 -picture ready) as XML * 13 - start image acquisition (option "s" or "t" should be present), return XML * 14 - reset waiting for trigger, return XML
* htmlr=n - Refresh each n seconds * htmll=(escape) - command executed onLoad in <body> tag * htmlj=(escape) - include *.js javaScript file
* vrmld - decimation to make a grid (>=8 for full frame) (default = 16) * vrmlb - number of individual blocks in each x/y (default=2) * vrmlm - maximal pixel. 1023 - full scale, less - increase contrast, 0 - automatic (default =1023)
* vrmli - indentation (default=1) * vrmlf - format - 0 - integer, 1 - one digit after "." (default 0) * vrmll - number of countours to build (default = 32) * vrmlo - options for isolines - e - elevated, f - flat (default=ef) * vrmlz - 0..9 output (gzip) compression level (0 - none, 1 - fastest, default - 6, best -9) * fpns - 0..3 fpga background subtraction: * 0 - none, * 1 (fine) - subtract 8-bit FPN from 10-bit pixel * 2 - multiply FPN by 2 before subtracting * 3 - multiply FPN by 4 before subtracting (full scale) * note: negative result is replaced by 0, decrease FPN data before applying for "fat 0" * fpnm - muliply by inverse sensitivity (sensitivity correction) mode: * 0 - no correction * 1 - fine (+/- 12.5%) * 2 - medium (+/- 25%) * 3 - maximal (+/- 50%) * pc - pseudo color string. Applies to monochrome images and vrml
* any of vrml* specified - vrml instead of a picture/html * * background measurement/subtraction will (now) work only with 10-bit images * gd = "digital gain" 0..5 (software) * iq = 0..100 - jpeg quality, "-1" - BMP non-compressed, "-2" - BMP RLE compressed * byr =0..3 Overwite Bayer phase shift, =4 - use calculated by driver. * vw - virtual frame width
* vh - virtual frame height
* wl = 0..1288 - left * wt = 0..1032 - top * ww = 1..1288 - width * wh = 1..1032 - height * pfh - photofinish mode strip height (0 - normal mode, not photofinish). In this mode each frame will consist of multiple pfh-high horizontal (camera should be oriented 90 deg. to make vertical) strips, and no extra lines will be added to the frames for demosaic for now: +65536 - timestamp for normal frames, +131072 - timestamps for photo-finish mode * ts - time stamp mode: 0 - none, 1 - in upper-left corner, 2 - added to the right of the image (photo-finish mode) * fsd - frame sync delay (in lines) from the beginning of a frame (needed in photofinish mode - 3 lines?)
* dh = 1 2 4 - decimation horizontal (both) MT9T001 dh= 1,2,3,4,5,6,7,8 * dv - decimation vertical MT9T001 dv= 1,2,3,4,5,6,7,8 * bh - binning horizontal or both (MT9T001 - 1<bh<=dh<=8, has some on-chip problems) * bv - binning vertical (MT9T001 - 1<bh<=dh<=8, has some on-chip problems) * bit - pixel depth (10/4/8) * shl - shift left (FPGA in 8 and 4-bit modes) - obsolete * clk - MCLK divisor - 80MHz/(2..129) - obsolete?
* fclk - 0-127 - fpga (compressor) clock (MHz) * sclk - 0-127 - sensor clock (MHz) - will be limited by sensor driver * xtra - number of pixel-cycles needed for compressor between frames - debugging only
* gr = 0..63 - analog gain red (or mono) * gg = 0..63 - analog gain green (or green-"red" line) * gb = 0..63 - analog gain blue * ggb = 0..63 - analog gain green ("blue" line - ZR32212 only) * bg = n - calculate background 1-2-4..16 times (does not need option s/t/v) * parameters for "instant on" quicktime * qfr = n - number of frames to send in a quicktime clip * qpad = % to leave for the frame size to grow (initial size 1-st frame * (100- 1.5*qpad)/100 * qdur = frame duration in 1/600 of a second * parameters for quicktime clips (send after shooting) * qsz = n - clip size in KB (w/o headers) (<=0 will use "instant on") - will be obsolete * qcmd= (mandatory for videoclip) 1 - start constant compression of all acquired frames 2 - stop constant compression. 3 - acquire the whole buffer and stop 4 - read movie from buffer 6 (and 5?) - stop, then read 7 - acquire buffer, then read
* qts = t - playback time/real time
* gam=gamma - gamma correction (gamma value 0.13..10) * pxl=00 lowest pixel value (on 8-bit scale) before table to be mapped to zero output value * pxh=255 hioghest pixel value (on 8-bit scale) before table to be mapped to 255 output value * fps= xx.xx - desired fps (will process to decimals) * hist=n - read frame from "history" applies only to rereading from memory after acquisition of a clipÃÂ n<=0 - from the end of clip (0 - last), n>0 - from the start (1 - first)
* e = 0..60000 - exposure (1 msec step) * csb= 0..710 - color saturation blue (%) * csr= 0..562 - color saturation red (%) hl - histogram top (all histogram parameters will be made even by truncating, all written derectly to FPGA - no shadows yet) ht - histogram left hw - histogram width hh - histogram height if ((vp=paramValue(gparams, "csb"))) ioctl(devfd, _CCCMD(CCAM_WPARS , P_COLOR_SATURATION_BLUE ), strtol (vp,&cp,10));
if ((vp=paramValue(gparams, "csr"))) ioctl(devfd, _CCCMD(CCAM_WPARS , P_COLOR_SATURATION_RED ), strtol (vp,&cp,10));
* opt = string of 1-character options: * h - use hardware compression * c - color mode * x - flip x * y - flip y * p - test pattern (ramp) * f - test pattern (ramp) fpga * b - buffer file * m - restart exposure after sending * if none of "st" is present - "reload mode" (all but iq and gd ignored) * s - software trigger * t - external trigger * v - video mode - will be obsolete soon (for now will only tell it is not "reload") * g - use background image - will be obsolete * q - sent quicktime movie * u - updates (some) parameters "on the fly", returns 1x1 pix dummy image * * - unlock "in use"