Commit 28517d8b authored by Oleg Dzhimiev's avatar Oleg Dzhimiev
Browse files

more changes

parent 9362d75a
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -56,9 +56,11 @@ function camogm_create_table(){
    
    if (camogm_en) {
	table_html = "<tr>\n\t<td></td>\n\t<td align='center'>SSD free space</td>\n<td>&nbsp;&nbsp;Buffer (important when recording)</td></tr>";
	for (var i=0;i<n;i++) {
	  table_html +=  "<tr>\n\t<td>camera "+(i+1)+"</td><td id='cam"+(i+1)+"_hdd' align='right'></td><td><div id='buffer"+(i+1)+"_sum' class='buffer'><div id='buffer"+(i+1)+"' style='width:200px;' class='buffer_free'>free</div></div></td></tr>";
        
	for (var i=0;i<cams.length;i++) {
	  table_html +=  "<tr>\n\t<td>channel "+(i+1)+"</td><td id='cam"+i+"_hdd' align='right'></td><td><div id='buffer"+i+"_sum' class='buffer'><div id='buffer"+i+"' style='width:200px;' class='buffer_free'>free</div></div></td></tr>";
	}
	
    }
    $("#hdd_free_space").html(table_html);
    
@@ -110,7 +112,12 @@ function camogm_parse_status(data){
    var buf_used;
    var buf_sum;
    
    for (var i=0;i<n;i++) {
    
    //$(data).find('cam')
    
    
    for (var i=0;i<cams.length;i++) {
        
	buf_free = +$(data).find('cam'+(i+1)).find('camogm_state').find('buffer_free').text();
	buf_used = +$(data).find('cam'+(i+1)).find('camogm_state').find('buffer_used').text();
	buf_sum = buf_free+buf_used;
+47 −13
Original line number Diff line number Diff line
@@ -4,20 +4,41 @@ $cmd = "do_nothing";

if (isset($_GET['cmd'])) $cmd = $_GET['cmd'];
if (isset($_GET['interval'])) $interval = $_GET['interval'];
if (isset($_GET['master_ip'])) $master_ip = $_GET['master_ip'];
else                           $master_ip = "221";
if (isset($_GET['n'])) $n = $_GET['n'];

//skip mask isnot needed
if (isset($_GET['mask'])) $mask = $_GET['mask'];

if      ($cmd=="launch")   launch();
else if      ($cmd=="set_path") set_path($cmd,$_GET['path'],$master_ip,$n,$mask,$_GET['subfolder'],$_GET['limit']);
else                            get_state($cmd,$interval,$n,$mask,$master_ip);
// keys assign
//example: rq=192.168.0.161:2323:0:0,192.168.0.162:2324:1:1
$cams = array();
if (isset($_GET['rq'])){
  $pars = explode(",",$_GET['rq']);
  foreach($pars as $val){
    $ip = strtok($val,":");
    $port = strtok(":");
    $channel = strtok(":");
    $master = strtok(":");
    array_push($cams,array('ip'=>$ip,'port'=>$port,'channel'=>$channel,'master'=>$master));
    if ($master=="1"){
        $master_ip = $ip;
        $master_port = $port;
        $master_channel = $channel;
    }
  }
}

if ($cmd=="launch") {
    launch();
}else if ($cmd=="set_path"){
    set_path($cmd,$_GET['path'],$mask,$_GET['subfolder'],$_GET['limit']);
}else{
    get_state($cmd,$interval,$mask);
}

function launch(){
    $status = system("./eyesis_daemon.php >> /data/footage/daemon_log.txt &");
    $status = system("./eyesis_daemon.php > /data/footage/daemon_log.txt &");

    echo "daemon started";
    echo "Daemon started";

//     if (!$status) {
//       $response = "fail";
@@ -38,16 +59,29 @@ function launch(){

}

function get_state($cmd,$interval,$n,$mask,$ip){
    $cmd = "<msg><cmd>$cmd</cmd><interval>$interval</interval><ip>$ip</ip><n>$n</n><mask>$mask</mask></msg>";
function get_camstr(){
    global $cams;
    $msg = "";
    for($i=0;$i<count($cams);$i++){
        $msg .= "<cam>\n";
        $msg .= "  <ip>{$cams[$i]['ip']}</ip>";
        $msg .= "  <port>{$cams[$i]['port']}</port>";
        $msg .= "  <channel>{$cams[$i]['channel']}</channel>";
        $msg .= "  <master>{$cams[$i]['master']}</master>";
        $msg .= "</cam>\n";
    }
    return $msg;
}

function get_state($cmd,$interval,$mask){
    $cmd = "<msg><cmd>$cmd</cmd><interval>$interval</interval>".get_camstr()."<mask>$mask</mask></msg>";
    send_msg($cmd);
}

function set_path($cmd,$path,$ip,$n,$mask,$subfolder,$limit){
function set_path($cmd,$path,$mask,$subfolder,$limit){
    $msg  = "<msg>\n";
    $msg .= "<cmd>$cmd</cmd>\n";
    $msg .= "<n>$n</n>\n";
    $msg .= "<ip>$ip</ip>\n";
    $msg .= get_camstr();
    $msg .= "<mask>$mask</mask>\n";
    $msg .= "<path>$path</path>\n";
    $msg .= "<subfolder>$subfolder</subfolder>\n";
+58 −58
Original line number Diff line number Diff line
@@ -34,18 +34,27 @@ var pc_gps_imu_device_name = "/dev/sda1";

var camogm_rec_delay = 5;

var cams = new Array(
  Array(1,1,1),
  Array(1,1,1),
  Array(1,1,1),
  Array(1,1,1),
  Array(1,1,1),
  Array(1,1,1),
  Array(1,1,1),
  Array(1,1,1),
  Array(1,0,0),
  Array(1,0,0)
);
var cams = [
  {"ip":"192.168.0.161","port":2326,"channel":3,"master":0},
  {"ip":"192.168.0.161","port":2325,"channel":2,"master":0},
  {"ip":"192.168.0.161","port":2323,"channel":0,"master":0},
  {"ip":"192.168.0.161","port":2324,"channel":1,"master":0},
  {"ip":"192.168.0.162","port":2326,"channel":3,"master":0},
  {"ip":"192.168.0.162","port":2325,"channel":2,"master":0},
  {"ip":"192.168.0.162","port":2323,"channel":0,"master":0},
  {"ip":"192.168.0.162","port":2324,"channel":1,"master":0},
  {"ip":"192.168.0.163","port":2325,"channel":2,"master":1},
  {"ip":"192.168.0.163","port":2326,"channel":3,"master":0}
];

function get_master_index(){
    for (var i=0;i<cam.length;i++){
        if (cams[i].master==1){
            return i;
        }
    }
    return -1;
}

function check_footage_path(){
    $.ajax({
@@ -120,13 +129,12 @@ function init(){
      camogm_cmd("run_status",false,camogm_parse_state);
    }
    //master_ip = $("#address_field1").val().substr(-3,3);
    var tmp = "192.168.0."+master_ip;
    var tmp = cams[get_master_index()];
    master_ip = tmp.substr(-3,3);
    
    var param_string="/parsedit.php?title=Parameters&COLOR&AUTOEXP_ON&EXPOS&AUTOEXP_EXP_MAX&AEXP_LEVEL&AEXP_FRACPIX&QUALITY&CORING_INDEX&MULTI_MODE&MULTI_SELECTED&MULTI_FLIPH&MULTI_FLIPV&TRIG&TRIG_PERIOD&HISTWND_RLEFT&HISTWND_RTOP&HISTWND_RWIDTH&HISTWND_RHEIGHT&HDR_DUR&HDR_VEXPOS&EXP_AHEAD'>Parameters page</a>&nbsp";
    
    for (var i=0;i<n;i++) {
	$("#cam"+(i+1)+"_parameters").html("&nbsp<a href='http://192.168.0."+(+master_ip+i)+param_string);
    for (var i=0;i<cams.length;i++) {
        var param_string="/parsedit.php?title=Parameters&sensor_port="+cams[i].channel+"&COLOR&AUTOEXP_ON&EXPOS&AUTOEXP_EXP_MAX&AEXP_LEVEL&AEXP_FRACPIX&QUALITY&CORING_INDEX&MULTI_MODE&MULTI_SELECTED&MULTI_FLIPH&MULTI_FLIPV&TRIG&TRIG_PERIOD&HISTWND_RLEFT&HISTWND_RTOP&HISTWND_RWIDTH&HISTWND_RHEIGHT&HDR_DUR&HDR_VEXPOS&EXP_AHEAD'>Parameters page</a>&nbsp";
        $("#cam"+i+"_parameters").html("&nbsp<a href='http://"+(cams[i].ip)+param_string);
    }
    
    $("#input_skip_frames").attr('title',"Lower 8-bits set the mask, where 1=enabled, 0=disabled (the sequence period is 8 frames). For example, to skip every second frame apply 0x155");
@@ -159,6 +167,7 @@ function init(){

    //update_cf_index();
    master_ip_change_init();
    
    $("#single_shots_div").attr("href","single.html?ip="+master_ip+"&n="+n+"&mode=5"+"&period="+($("#input_trigger_period").val()*96000));
    
    $("#system_tests_div").attr("href","tests.html?master_ip="+master_ip+"&n="+n);
@@ -291,7 +300,7 @@ function send_cmd(cmd){
	}else{
	    console.log("Trigger interval is "+download_interval);
	    $.ajax({
	      url: "client.php?cmd="+cmd+"&master_ip="+master_ip+"&n="+n+"&interval="+download_interval+"&mask="+mask,
	      url: "client.php?cmd="+cmd+"&rq="+get_rq_str()+"&interval="+download_interval+"&mask="+mask,
	      success: function(data){
		$("#status").html(data);
		$("#daemon_state").html(data);
@@ -314,6 +323,17 @@ function send_cmd(cmd){
	}
}

function get_rq_str(){
    var rq_str = "";
    for(var i=0;i<cams.length;i++){
        if (i!=0){
            rq_str += ",";
        }
        rq_str += cams[i].ip+":"+cams[i].port+":"+cams[i].channel+":"+cams[i].master;
    }
    return rq_str;
}

function settings_activate() {
    if (!$("#settings").is(":visible")) {
	$("#settings").css({top:'50px',left:'10px','z-index':3}).fadeToggle(300,function(){
@@ -525,29 +545,17 @@ function refresh_images(){
      refresh_images_eyesis();
}

function convert_source_393(mip,mip_index){
  var d = new Date();
  var curr_time = d.getTime();
  
  //var cam = 0,1,2,3,  4,5,6,7, 8
  var tmp_port = 2323+Math.floor(mip_index/4);
  var tmp_ip = "http://192.168.0."+(+mip+(Math.floor(mip_index/4)))+":"+tmp_port+"/bimg?"+curr_time;
  return tmp_ip;
}

function refresh_images_eyesis(){
  var d = new Date();
  var curr_time = d.getTime();
  
  var pic = new Object();
  
  for(i=0;i<n;i++) {
  for(var i=0;i<cams.length;i++){
    
    pic[i] = new Image();
    //add ip increment here
    //pic[i].src="http://192.168.0."+(+master_ip+i)+":8081/bimg?"+curr_time;
    pic[i].src=convert_source_393(master_ip,i);
    pic[i].src = "http://"+cams[i].ip+":"+cams[i].port+"/bimg?"+curr_time;
    pic[i].index = i;

    pic[i].onload = function(){

      var w = 200;
@@ -555,7 +563,7 @@ function refresh_images_eyesis(){
      var W = 2592;
      var H = 1944;

      var cnv = document.getElementById('cam'+(this.index+1)+'_canvas');
      var cnv = document.getElementById("cam_"+this.index+"_canvas");
      var cContext = cnv.getContext('2d');
      cnv.setAttribute('width',h);cnv.setAttribute('height',3*w);
      cContext.rotate(90*Math.PI/180);
@@ -566,24 +574,16 @@ function refresh_images_eyesis(){
      //if ((this.index==0)||(this.index==1)||(this.index==7)) k = 3;
      
      if (this.index%2==0) {
	  if (cams[this.index][0]==1) cContext.drawImage(this, 0,0*H,W,H, 0*w,-1*h,w,h);
	  if (cams[this.index][1]==1) cContext.drawImage(this, 0,1*H,W,H, 1*w,-1*h,w,h);

	  //for those who has 3 images
	  if (k==3) {
        cContext.drawImage(this, 0,0*H,W,H, 0*w,-1*h,w,h);
        cContext.drawImage(this, 0,1*H,W,H, 1*w,-1*h,w,h);
        cContext.scale(-1,1);
	      if (cams[this.index][2]==1) cContext.drawImage(this, 0,2*H,W,H, -3*w, -1*h, w, h);
	  }
	  
        cContext.drawImage(this, 0,2*H,W,H, -3*w, -1*h, w, h);
      }else{
	  cContext.scale(1,-1); //mirror is needed
	  if (cams[this.index][0]==1) cContext.drawImage(this, 0,0*H,W,H, 0*w,0*h,w,h);
	  if (cams[this.index][1]==1) cContext.drawImage(this, 0,1*H,W,H, 1*w,0*h,w,h);
	  //for those who has 3 images
	  if (k==3) {
	  cContext.drawImage(this, 0,0*H,W,H, 0*w,0*h,w,h);
	  cContext.drawImage(this, 0,1*H,W,H, 1*w,0*h,w,h);
          cContext.scale(-1,1);
	      if (cams[this.index][2]==1) cContext.drawImage(this, 0,2*H,W,H, -3*w,h*(0),w,h);
	  }
	  cContext.drawImage(this, 0,2*H,W,H, -3*w,h*(0),w,h);
      }
      
    };
@@ -624,10 +624,10 @@ function refresh_histograms(){
  var d = new Date();
  var curr_time = d.getTime();
  
  for (var i=0;i<n;i++){
    var src = "http://192.168.0."+((+master_ip)+i)+"/pnghist.cgi?sqrt=1&scale=5&average=5&height=128&fillz=1&linterpz=0&draw=2&colors=41&_time="+curr_time;
    $("#cam"+(i+1)+"_hist").attr("src", src);
    $("#cam"+(i+1)+"_hist_front").attr("src", src);
  for (var i=0;i<cams.length;i++){
    var src = "http://"+cams[i].ip+"/pnghist.cgi?sensor_port="+cams[i].channel+"&sqrt=1&scale=5&average=5&height=128&fillz=1&linterpz=0&draw=2&colors=41&_time="+curr_time;
    $("#cam"+i+"_hist").attr("src", src);
    $("#cam"+i+"_hist_front").attr("src", src);
  }
  
}
+1 −4
Original line number Diff line number Diff line
@@ -44,13 +44,10 @@ if (isset($elp_const["elphel"])) {
}

//defaults
$master_ip = 221;
$n = 1;
$res_xml = "";

$cams = array();

// keys assign
$cams = array();
if (isset($_GET['rq'])){
  $pars = explode(",",$_GET['rq']);
  foreach($pars as $val){
+32 −6
Original line number Diff line number Diff line
@@ -21,7 +21,10 @@ $socket = stream_socket_server("tcp://$address:$port", $errno, $errstr);

$status = "idle";

$ip = 221;
$master_ip = "";
$master_port = "";
$master_channel = "";

$interval = 1000;

$old_status_en = true;
@@ -43,8 +46,20 @@ if (!$socket) {

    $cmd = $xml->cmd;
    $interval = $xml->interval;
    $ip = $xml->ip;
    $n = $xml->n;
    
    $cams = array();
    foreach($xml->cam as $item){
        array_push($cams,array('ip'=>($item->ip),'port'=>($item->port),'channel'=>($item->channel),'master'=>($item->master)));
        if ($item->master=="1"){
            $master_ip = $item->ip;
            $master_port = $item->port;
            $master_channel = $item->channel;
        }
    }
    
    //$ip = $xml->ip;
    //$n = $xml->n;
    
    $mask = $xml->mask;

    if ($cmd=="set_path") {
@@ -68,8 +83,10 @@ if (!$socket) {
    if ($cmd=="stop")  {
	system("killall -9 recorder.php");
	$ci = $interval*96000;
	$fp = fopen("http://192.168.0.$ip/camogmgui/camogm_interface.php?cmd=set_parameter&pname=TRIG_PERIOD&pvalue=".($ci+1), 'r');
	$fp = fopen("http://192.168.0.$ip/camogmgui/camogm_interface.php?cmd=set_parameter&pname=TRIG_PERIOD&pvalue=".($ci), 'r');
	
	$fp = fopen("http://$master_ip/camogmgui/camogm_interface.php?sensor_port=$master_channel&cmd=set_parameter&pname=TRIG_PERIOD&pvalue=".($ci+1), 'r');
	$fp = fopen("http://$master_ip/camogmgui/camogm_interface.php?sensor_port=$master_channel&cmd=set_parameter&pname=TRIG_PERIOD&pvalue=".($ci), 'r');
	
	$status = "idle";
    }

@@ -105,7 +122,7 @@ if (!$socket) {

	$footage_index = update_subsubdir("$footage_root_path/$footage_subfolder",$footage_index,$footage_file_limit,$index_max=1);
	if ($footage_index>=0) {
	    passthru("./recorder.php ".$ip." ".$n." ".$interval." ".$mask." ".$footage_root_path." ".$footage_subfolder." ".$footage_file_limit." ".$footage_index." >> /dev/null 2>&1 &");
	    passthru("./recorder.php '".get_rq_str($cams)."' $interval $mask $footage_root_path $footage_subfolder $footage_file_limit $footage_index > /dev/null 2>&1 &");
	}

    }
@@ -116,4 +133,13 @@ if (!$socket) {
  fclose($socket);
}

function get_rq_str($a){
    $rq_str = "";
    for($i=0;$i<count($a);$i++){
        if ($i!=0) $rq_str .= ",";
        $rq_str .= "{$a[$i]['ip']}:{$a[$i]['port']}:{$a[$i]['channel']}:{$a[$i]['master']}";
    }
    return $rq_str;
}

?>
 No newline at end of file
Loading