00001 #!/usr/local/sbin/php -q 00002 <?php 00044 $imgsrv='http://'.$_SERVER['HTTP_HOST'].':8081/'; 00045 $ahead=3; 00046 $delay=2; 00047 $parsForSnap=array(); 00048 $sensorSize=array('SENSOR_WIDTH'=>0,'SENSOR_HEIGHT'=>0); 00049 $sensorSize=elphel_get_P_arr($sensorSize); 00050 foreach($_GET as $key=>$value) switch ($key){ 00051 case 'ahead': 00052 $ahead=myval($value); 00053 break; 00054 case 'delay': 00055 $delay=myval($value); 00056 break; 00057 default: 00058 $parsForSnap[$key]=myval($value); 00059 } 00061 if (!$parsForSnap['WOI_WIDTH']) $parsForSnap['WOI_WIDTH']= $sensorSize['SENSOR_WIDTH']; 00062 if (!$parsForSnap['WOI_HEIGHT']) $parsForSnap['WOI_HEIGHT']=$sensorSize['SENSOR_HEIGHT']; 00063 if (!$parsForSnap['WOI_LEFT']) $parsForSnap['WOI_LEFT']= 0; 00064 if (!$parsForSnap['WOI_TOP']) $parsForSnap['WOI_TOP']= 0; 00065 if (!$parsForSnap['DCM_HOR']) $parsForSnap['DCM_HOR']= 1; 00066 if (!$parsForSnap['DCM_VERT']) $parsForSnap['DCM_VERT']= 1; 00067 if (!$parsForSnap['BIN_HOR']) $parsForSnap['BIN_HOR']= 1; 00068 if (!$parsForSnap['BIN_VERT']) $parsForSnap['BIN_VERT']= 1; 00069 $parsSaved=elphel_get_P_arr($parsForSnap); 00070 $thisFrameNumber=elphel_get_frame(); 00071 if ($ahead>5) { 00072 elphel_wait_frame_abs($thisFrameNumber+$ahead-5); 00073 $ahead-=5; 00074 $thisFrameNumber=elphel_get_frame(); 00075 } 00076 $pgmFrameNumber=$thisFrameNumber+$ahead; 00078 elphel_set_P_arr ($parsForSnap, $pgmFrameNumber); 00080 elphel_wait_frame_abs($thisFrameNumber+$delay); 00081 elphel_set_P_arr ($parsSaved, $pgmFrameNumber+$delay); 00083 elphel_wait_frame_abs($pgmFrameNumber+2); 00084 $circbuf_pointers=elphel_get_circbuf_pointers(1); 00085 $meta=end($circbuf_pointers); 00086 if (!count($circbuf_pointers) || ($meta['frame'] < $pgmFrameNumber)) { 00087 echo "compressor is turned off"; 00088 echo "<pre>\n";print_r($circbuf_pointers);echo "</pre>\n"; 00089 exit (0); 00090 } 00092 while($meta['frame'] > $pgmFrameNumber) { 00093 if (!prev($circbuf_pointers)) { 00094 printf ("<pre>could not find the frame %d(0x%x) in the circbuf:\n",$pgmFrameNumber,$pgmFrameNumber); 00095 print_r ($circbuf_pointers); 00096 echo "\n</pre>"; 00097 exit (0); 00098 } 00099 $meta=current($circbuf_pointers); 00100 } 00102 header('Location: '.$imgsrv.$meta['circbuf_pointer'].'/bimg'); 00103 exit(); 00104 00105 function myval ($s) { 00106 $s=trim($s,"\" "); 00107 if (strtoupper(substr($s,0,2))=="0X") return intval(hexdec($s)); 00108 else return intval($s); 00109 } 00110 00111 ?>