00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 $focus_rdonly=array(
00037 "FOCUS_SHOW"=>0,
00038 "FOCUS_SHOW1"=>0,
00039 "FOCUS_VALUE"=>0,
00040 "FOCUS_LEFT"=>0,
00041 "FOCUS_WIDTH"=>0,
00042 "FOCUS_TOP"=>0,
00043 "FOCUS_HEIGHT"=>0,
00044 "FOCUS_FILTER"=>0
00045 );
00046 $filter=array(
00047 array(0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00048 0.1, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00049 0.25, 0.25, 0.5, 1.0, 1.0, 0.5, 0.25, 0,
00050 0.5, 0.5, 1.0, 1.0, 0.5, 0.25, 0.15, 0,
00051 1.0, 1.0, 1.0, 0.5, 0.25, 0.15, 0.1, 0,
00052 1.0, 1.0, 0.5, 0.25, 0.15, 0.1, 0, 0,
00053 0.5, 0.5, 0.25, 0.15, 0.1, 0, 0, 0,
00054 0, 0, 0, 0, 0, 0, 0, 0),
00055
00056 array(0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00057 0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00058 0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00059 0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00060 0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00061 0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00062 0, 0.1, 0.25, 0.5, 1.0, 1.0, 0.5, 0,
00063 0, 0, 0, 0, 0, 0, 0, 0),
00064
00065 array(0, 0, 0, 0, 0, 0, 0, 0,
00066 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
00067 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25,
00068 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
00069 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
00070 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
00071 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5,
00072 0, 0, 0, 0, 0, 0, 0, 0),
00073
00074 array(0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00075 0, 0.1, 0.15, 0.4, 0.9, 1.0, 1.0, 0,
00076 0.1, 0.15, 0.4, 0.6, 1.0, 1.0, 1.0, 0,
00077 0.3, 0.4, 0.6, 1.0, 1.0, 1.0, 1.0, 0,
00078 0.8, 0.9, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00079 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00080 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00081 0, 0, 0, 0, 0, 0, 0, 0),
00082
00083 array(0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00084 0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00085 0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00086 0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00087 0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00088 0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00089 0, 0, 0.1, 0.3, 0.8, 1.0, 1.0, 0,
00090 0, 0, 0, 0, 0, 0, 0, 0),
00091
00092 array(0, 0, 0, 0, 0, 0, 0, 0,
00093 0, 0, 0, 0, 0, 0, 0, 0,
00094 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1,
00095 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3,
00096 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8,
00097 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
00098 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
00099 0, 0, 0, 0, 0, 0, 0, 0),
00100
00101 array(0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00102 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00103 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00104 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00105 0.2, 0.2, 0.2, 0.2, 0.2, 1.0, 1.0, 0,
00106 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00107 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00108 0, 0, 0, 0, 0, 0, 0, 0),
00109
00110 array(0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00111 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00112 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00113 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00114 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00115 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00116 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00117 0, 0, 0, 0, 0, 0, 0, 0),
00118
00119 array(0, 0, 0, 0, 0, 0, 0, 0,
00120 0, 0, 0, 0, 0, 0, 0, 0,
00121 0, 0, 0, 0, 0, 0, 0, 0,
00122 0, 0, 0, 0, 0, 0, 0, 0,
00123 0.2, 0.2, 0.2, 0.2, 0.2, 1.0, 1.0, 0,
00124 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00125 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00126 0, 0, 0, 0, 0, 0, 0, 0),
00127
00128 array(0, 0, 0, 0, 0, 0.2, 1.0, 0,
00129 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00130 0, 0, 0, 0.2, 1.0, 1.0, 1.0, 0,
00131 0, 0, 0.2, 1.0, 1.0, 1.0, 1.0, 0,
00132 0, 0.2, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00133 0.2, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00134 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00135 0, 0, 0, 0, 0, 0, 0, 0),
00136
00137 array(0, 0, 0, 0, 0, 0.2, 1.0, 0,
00138 0, 0, 0, 0, 0, 0.2, 1.0, 0,
00139 0, 0, 0, 0, 0, 0.2, 1.0, 0,
00140 0, 0, 0, 0, 0, 0.2, 1.0, 0,
00141 0, 0, 0, 0, 0, 0.2, 1.0, 0,
00142 0, 0, 0, 0, 0, 0.2, 1.0, 0,
00143 0, 0, 0, 0, 0, 0.2, 1.0, 0,
00144 0, 0, 0, 0, 0, 0, 0, 0),
00145
00146 array(0, 0, 0, 0, 0, 0, 0, 0,
00147 0, 0, 0, 0, 0, 0, 0, 0,
00148 0, 0, 0, 0, 0, 0, 0, 0,
00149 0, 0, 0, 0, 0, 0, 0, 0,
00150 0, 0, 0, 0, 0, 0, 0, 0,
00151 0.2, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00152 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00153 0, 0, 0, 0, 0, 0, 0, 0),
00154
00155 array(0, 0, 0, 0, 0, 0, 0.2, 0,
00156 0, 0, 0, 0, 0, 0.2, 1.0, 0,
00157 0, 0, 0, 0, 0.2, 1.0, 1.0, 0,
00158 0, 0, 0, 0.2, 1.0, 1.0, 1.0, 0,
00159 0, 0, 0.2, 1.0, 1.0, 1.0, 1.0, 0,
00160 0, 0.2, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00161 0.2, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0,
00162 0, 0, 0, 0, 0, 0, 0, 0),
00163
00164
00165 array(0, 0, 0.1, 0.3, 0.8, 1.0, 0.2, 0,
00166 0, 0.1, 0.15, 0.4, 0.9, 1.0, 0.2, 0,
00167 0.1, 0.15, 0.4, 0.6, 1.0, 0.8, 0.2, 0,
00168 0.3, 0.4, 0.6, 1.0, 1.0, 0.5, 0.2, 0,
00169 0.8, 0.9, 1.0, 1.0, 1.0, 0.5, 0.2, 0,
00170 1.0, 1.0, 0.8, 0.5, 0.5, 0.2, 0.2, 0,
00171 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.1, 0,
00172 0, 0, 0, 0, 0, 0, 0, 0),
00173
00174 array(0, 0, 0.1, 0.3, 0.8, 1.0, 0.2, 0,
00175 0, 0, 0.1, 0.3, 0.8, 1.0, 0.2, 0,
00176 0, 0, 0.1, 0.3, 0.8, 1.0, 0.2, 0,
00177 0, 0, 0.1, 0.3, 0.8, 1.0, 0.2, 0,
00178 0, 0, 0.1, 0.3, 0.8, 1.0, 0.2, 0,
00179 0, 0, 0.1, 0.3, 0.8, 1.0, 0.2, 0,
00180 0, 0, 0.1, 0.1, 0.1, 1.1, 0.1, 0,
00181 0, 0, 0, 0, 0, 0, 0, 0)
00182 );
00183 $scale=$_GET["SCALE"]*1.0;
00184 $nowait=false;
00185
00186 if (!(($scale>0) && ($scale<100000))) $scale=4096;
00187 if (count($_GET) > 0 ) {
00188 $pars=array();
00189 foreach($_GET as $key=>$value) {
00190 if ($key=="SCALE") {
00191 } else if ($key=="TABLE") {
00192 $fn=$value+0;
00193 if ($fn<0) $fn=0;
00194 else if ($fn>14) $fn=14;
00195 for ($i=0; $i<64; $i++) {
00196 $filter[$fn][$i]=intval($scale*$filter[$fn][$i]);
00197 if ($filter[$fn][$i]>65535) $filter[$fn][$i]=65535;
00198 }
00199 $binary_tab="";
00200 for ($i=0; $i<64; $i++) $binary_tab.=pack("L",$filter[$fn][$i]);
00201 $tables_file = fopen('/dev/fpga_tables', 'w');
00202 fseek ($tables_file, 0x2000+256*$fn) ;
00203 fwrite($tables_file, $binary_tab);
00204 fclose($tables_file);
00205 elphel_set_P_value(ELPHEL_FOCUS_FILTER,$fn);
00206 $pars["FOCUS_FILTER"]=$fn;
00207 } else if ($key=="NOWAIT") {
00208 $nowait=true;
00209 } else {
00210 $pars[$key]=$value+0;
00211 }
00212 }
00213 }
00215 if (count($pars) > 0 ) {
00216 elphel_set_P_arr ($pars);
00217 elphel_program_sensor (1);
00218 }
00221 if (!$nowait) elphel_wait_frame();
00222 $state=elphel_get_P_arr ($focus_rdonly);
00223 $msg="<?xml version=\"1.0\"?>\n<focus>\n";
00224 foreach($state as $key=>$value) {
00225 $msg.=sprintf("<%s>%d</%s>\n",$key,$value,$key);
00226 }
00227 $msg.="</focus>\n";
00228 header("Content-Type: text/xml");
00229 header("Content-Length: ".strlen($msg)."\n");
00230 header("Pragma: no-cache\n");
00231 printf($msg);
00232 ?>