packages/web/353/php_top/snapfull.php

Go to the documentation of this file.
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 ?>

Generated on Fri Nov 28 00:06:25 2008 for elphel by  doxygen 1.5.1