<?php

$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/components/check.php";
include_once($path);

?>
<!--
 =========================================================
* Black Dashboard PRO - v1.1.1
=========================================================

* Product Page: https://themes.getbootstrap.com/product/black-dashboard-pro-premium-bootstrap-4-admin/
* Copyright 2019 Creative Tim (https://www.creative-tim.com)

* Coded by Creative Tim

=========================================================

* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-->


<!DOCTYPE html>
<html lang="en">
<head>
			
      	<?php 
		
		$path = $_SERVER['DOCUMENT_ROOT'];
		$path .= "/components/header.php";
		include_once($path);
		
		?>
<style>
.scroll-pane
{
    width: 100%;
    height: 200px;
    overflow: auto;
}
.scroll-pane p
{
    margin: 5px 0;
}

 .navbar-collapse::-webkit-scrollbar {
    width: 20px;
}
.navbar-collapse::-webkit-scrollbar-track {
    background-color: lightgray;
}
.navbar-collapse::-webkit-scrollbar-thumb {
    background-color: lightblue;
}
</style>


<script>
    google.charts.load('current', {'packages':['timeline']});
    google.charts.setOnLoadCallback(drawChart);
    var conf = <?php echo $_GET["conf"]; ?>;
    function drawChart( name, interval_start, interval_length ) {
		return;
		  $( "#example3.1" ).empty();
		  var datas = [];

		  datas.append( ['Activity', 'Start Time', 'End Time'] );

		  for( var x = 0; x <arr.length; x++ ) {
		      
		        var l = [name,
		         			new Date(interval_start),
		         			new Date(interval_start + interval_length)];
			    datas.append( l );
		  }

	    }
		function createGraphTable( data ) {
			var dataset = [data];

			var options = {
					id_div_container: "visavail_container",
					id_div_graph: "visavail_graph",
					
					icon: {
						class_has_data: 'fas fa-fw fa-check',
						class_has_no_data: 'fas fa-fw fa-exclamation-circle'
					},
					zoom:{
						enabled:true,
					},
					responsive:{
						enabled:true,
					},
					tooltip: {
						date_plus_time: true
					},
					date_in_utc: true,
				};
				
			var chart = visavail.generate(options, dataset)
		}
		
		function liveUpdate() {

			this.handleLive = function( data ) {
				
				pushNewRow( data, RowMagCradleMain );
			}

		}

		var ekg_sens = <?php if ( isset( $_GET[ "dev_id" ] ) ) echo $_GET[ "dev_id" ]; else echo -1;  ?>;
		
		
		function liveUpdate1() {

			this.handleLive = function( data ) {
				console.log( data );
			}

		}


		function packSettings() {
			var arr_elem = {};
			
			for( var x = 0; x < 10; x++ ) {
				var elem_n = "#elem_cont_"+ x;
				
				var ff = $( elem_n ).length;
				
				if ( ff != 0 ) {
					arr_elem[ x ] = {};
					var elems = $(elem_n).find('*').children('select');
					console.log( elems.length );
					for( var y = 0; y < elems.length; y++ ) {

						var val = 0;
						
						val = $( elems[  y ] ).val();
						arr_elem[ x ][ y ] = val;
					}
				}
			}
			return arr_elem;
		}
		
		function showConfig( sett ) {
			var f = uint8ToBase64.decode( sett );
			console.log( f );

			
		}
		
		var datasource = 0;
		var data_table = 0;
		var global_tables = {};
		var config_string = 0;
		function null1( res ) {
			alert( res );
		}
		
		function utf8_to_b64( arr ) {
			var decoder = new TextDecoder('utf8');
			var b64encoded = btoa(decoder.decode(arr));
			return b64encoded;
		}
		
		function updateBTSTable() {
			var cc = createNewCommands( "task", { "task_name": "GetData", "params": {"query": "Select id, \"commandType\", \"commandId\", data, status, \"btsId\", \"createdOn\", \"coinId\" From public.\"Commands\"  where status != 1 and \"coinId\" = " + ekg_sens} }, createNewTableData1 ); 						
		}

		function createNewConfig( created_on, config, lastUpdate, status, btsId ) {
			createNewCommands( "task", { "task_name": "GetData", "params": {"query": "INSERT INTO public.\"Commands\"( \"createdOn\", \"coinId\", \"data\", \"lastUpdate\", \"status\", \"btsId\"  ) VALUES( " + created_on + ", "+ ekg_sens +", '"+ config +"', "+ lastUpdate +", "+ status +", " + btsId + " )" } }, refresh ); 
			
		}

		function deleteConfig( id ) {
			createNewCommands( "task", { "task_name": "GetData", "params": {"query": "DELETE FROM public.\"Commands\" WHERE id = " + id } }, refresh ); 
			
		}

		
		function refresh() {
			window.location = window.location;
			return 1;
		}
		function newSettingsCreation() {
			var created_on = Date.now();
			var lastUpdate = Date.now();
			var bts_id = parseInt( $("#bts_id").val() );
			var status = 0;
			
			submitForm();
			
			if ( config_string == 0 ) {
				alert( "Error settings not created" );
				return;
			}
			createNewConfig( created_on, config_string, lastUpdate, status, bts_id );
		}
								
		function start() {
					

			global_socket_wrapper.init();
			
			for( var x = 1; x < 256; x++ ) {
				var o = new Option( (parseInt(x)*0.24*4) + " mA", x);
				var o1 = new Option( (parseInt(x)*0.24*4) + " mA", x);
				
				$("#ir_pwr1").append(o1);
				$("#red_pwr").append(o);
			}
			
			var tables1 = new DataTable( 1, "datatable", global_socket_wrapper, false, RowCommandsTable, 0  );
			
			global_tables[ "global_main_table1" ] = tables1;
			updateBTSTable();
			setTimeout( updateBTSTable(), 5000 );
			
			//peniaz2SettingsInit();
			
			var cc = createNewCommands( "task", { "task_name": "GetData", "params": {"query": 'Select id \
																							   From public."BTS"' } }, createBTSList ); 	
																							   
   			$("#coin_2").hide();
   			$("#coin_1").hide();
   			 
			if ( conf == 0 ) {
				$("#coin_conf_0").show();
				$("#coin_com_0").show();

				$("#coin_conf_1").hide();
				$("#coin_com_1").hide();
				
			}else{
				$("#coin_conf_0").hide();
				$("#coin_com_0").hide();

				$("#coin_conf_1").show();
				$("#coin_com_1").show();
							}
		}
		
		function createBTSList( vals ) {
			console.log( vals );
			
			$("#bts_id").empty();
			vals = vals["result"];
			for( var x = 0; x < vals.length; x++ ) {
				var o = new Option( vals[ x ][ 0 ] , vals[ x ][ 0 ] );
				$("#bts_id").append(o);
			}
			var cc2 = getCookie( "selected_bts" );

			if ( cc2 != "" ) {
				$("#bts_id").val( cc2 );
			}
		}
		
		function createSettingsBoard( vals ) {
			var f = vals["result"];
			
			var set = f[ 0 ];
		}
		
		function showLive( id ) {
			window.location = "coin_detail.php?dev_id=" + id;
		}
		
		function showArchive( id ) {
			window.location = "coin_all_detail.php?dev_id=" + id;
		}
		
		
		function deleteCommand( id ){
			setNewCommand( 1, 2, "" );
			setNewCommand()  ;
		}

		function createDeviceSettingsSection() {
			var mode_op = parseInt ( $("#mode_selection").val() );
			var req_m = parseInt ( $("#report_freq").val() );
			
			var arr = new Uint8Array(8);
			
			var p = 0;
			arr[ p++ ] = 0;
			arr[ p++ ] = 4;
			
			arr[ p++ ] = 0;
			arr[ p++ ] = 4;
			
			arr[ p++ ] = 0;
			arr[ p++ ] = mode_op;
			
			arr[ p++ ] = 1;
			arr[ p++ ] = req_m;
			
			return arr;
		}

		function createAccSettingsSection() {
			var acc_freq = parseInt ( $("#acc_freq").val() );
			var acc_fall = parseInt ( $("#acc_fallthresh").val() );
			
			var arr = new Uint8Array(9);
			
			var p = 0;
			arr[ p++ ] = 3;
			
			arr[ p++ ] = 0;
			arr[ p++ ] = 6;
			
			arr[ p++ ] = 0;
			arr[ p++ ] = acc_freq;
			
			arr[ p++ ] = 1;
			arr[ p++ ] = acc_fall;
			
			arr[ p++ ] = 2;
			arr[ p++ ] = acc_fall;	
			
			return arr;
		}		

		function createSpo2SettingsSection() {
			var spo2_ir = parseInt ( $("#ir_pwr1").val() );
			var spo2_led = parseInt ( $("#red_pwr").val() );

			var spo2_meas_freq = parseInt ( $("#meas_per").val() );
			
			
			var arr = new Uint8Array(11);
			
			var p = 0;
			arr[ p++ ] = 2;
			
			arr[ p++ ] = 0;
			arr[ p++ ] = 8;
			
			arr[ p++ ] = 0;
			arr[ p++ ] = spo2_ir;
			
			arr[ p++ ] = 1;
			arr[ p++ ] = spo2_led;
			
			arr[ p++ ] = 2;
			arr[ p++ ] = spo2_meas_freq;
			
			arr[ p++ ] = 3;
			arr[ p++ ] = 1;
															
			return arr;
		}		
		
		var uint8ToBase64=function(r){"use strict";function n(r){return r.charCodeAt(0)}var e=String.fromCharCode;return r.decode=function(r){return Uint8Array.from(atob(r),n)},r.encode=function(r){for(var n=[],t=0,o=r.length;t<o;t++)n.push(e(r[t]));return btoa(n.join(""))},r}({});
		
		function submitForm(){
			var coin1_dev = createDeviceSettingsSection();
			var coin1_acc = createAccSettingsSection();
			var coin1_spo2 = createSpo2SettingsSection();
			
			var total_arr = new Uint8Array( coin1_dev.length + coin1_acc.length + coin1_spo2.length );
			
			total_arr.set(coin1_dev);
			total_arr.set(coin1_acc, coin1_dev.length);
			total_arr.set(coin1_spo2, coin1_dev.length + coin1_acc.length);
			console.log( total_arr );
			var f = uint8ToBase64.encode( total_arr );
			console.log( f );
			config_string = f;
		}
		
		function sendCommand( id ) {
			var arr = new Uint8Array(1);
			var bts_id = parseInt( 7 );
			var created_on = Date.now();
			var lastUpdate = Date.now();
			
			arr[ 0 ] = id;
			
			var f = uint8ToBase64.encode( arr );
			
			createNewConfig( created_on, f, lastUpdate, 0, bts_id );
		}
		function saveSelected() {
			var val = $("#bts_id").val();
			setCookie( "selected_bts", val, 180 );
			
		}
</script>		
</head>

<body class="" onload="start()" style="overflow:hidden;" >
  <div class="wrapper">
    <div class="navbar-minimize-fixed">
      <button class="minimize-sidebar btn btn-link btn-just-icon">
        <i class="tim-icons icon-align-center visible-on-sidebar-regular text-muted"></i>
        <i class="tim-icons icon-bullet-list-67 visible-on-sidebar-mini text-muted"></i>
      </button>
    </div>
      	<?php 
		
		$path = $_SERVER['DOCUMENT_ROOT'];
		$path .= "/components/sidebar.php";
		include_once($path);
		
		?>
    <div class="main-panel scroll-pane" style="overflow: scroll !important;" >
      <!-- Navbar -->
		       	<?php 
		
		$path = $_SERVER['DOCUMENT_ROOT'];
		$path .= "/components/plugin.php";
		include_once($path);
		
		?>
     			       	<?php 
		
		$path = $_SERVER['DOCUMENT_ROOT'];
		$path .= "/components/navbar.php";
		include_once($path);
		
		?>
     	
      <!-- End Navbar -->
      <div style="" class="content">
        <div class="col-md-8 ml-auto mr-auto">
          <h4 class="text-center">Informácie o zariadeniach</h4>
          <p class="text-center">Podrobné informácia o fungovaní zariadenia najdete na stránke
            <a href="https://datatables.net/" target="_blank">dokumentácia.</a>
          </p>
        </div>
     
             <div class="row mt-5" id="coin_conf_0" >
          <div class="col-md-12">
            <div class="card">
             
              <div class="card-body" id="settings_dev_2">
                <div class="toolbar">
                  <!--        Here you can write extra buttons/actions for the toolbar              -->
                </div>
                <h4 class="text-left">Nastavenia zariadenia <?php echo $_GET["dev_id"]; ?> </h4>
                	<div id="elem_cont_0" >
    					<p><span style="width:300px;display:inline-block;">Dlzka meracieho pulzu:</span>
    					<select id="meas_width" style="width:300px;display:inline-block;background: rgba(100, 100, 100);" class="form-control" >
    					<option value="3">130 us</option>	
    					<option value="4">247 us</option>	
    					<option value="5">481 us</option>	
    					<option value="6">949 us</option>	
    					</select></p>
					
    					<p><span style="width:300px;display:inline-block;">Spo2 freq:</span>
    					<select id="meas_per" style="width:300px;display:inline-block;background: rgba(100, 100, 100);" class="form-control" >
        					<option value="5">400 Hz</option>	
        					<option value="5">200 Hz</option>	
        					<option value="6">100 Hz</option>	
        					<option value="7">50 Hz</option>	
    					</select></p>	
    							
    					<p><span style="width:300px;display:inline-block;">Vykon IR ledky:</span>
    					<select id="ir_pwr1" style="width:300px;display:inline-block;background: rgba(100, 100, 100);" class="form-control" >
    					</select></p>	
    					
    					<p><span style="width:300px;display:inline-block;">Vykon RED ledky:</span>
    					<select id="red_pwr" style="width:300px;display:inline-block;background: rgba(100, 100, 100);" class="form-control" >
    					</select></p>		
					</div>		
					<div id="elem_cont_1" >
					<p><span style="width:300px;display:inline-block;">Rezim fungovania:</span>
					<select id="mode_selection" style="width:300px;display:inline-block; background: rgba(100, 100, 100);" class="form-control" >
						<option value="0">PPG meranie na klik tlacidlom</option>	
						<option value="2">Kontinualne PPG meranie</option>
						<option value="3">PPG meranie 15 sekund raz za minutu</option>
					</select></p>
					</div>
					<div id="elem_cont_2" >
    					<p><span style="width:300px;display:inline-block;">Frekvencia merania (temp):</span>
    					<select id="report_freq" style="width:300px;display:inline-block; background: rgba(100, 100, 100);" class="form-control" >
    						<option value="10">Raz za 10 sec</option>	
    						<option value="30">Raz za 30 sec</option>
    						<option value="60">Raz za 60 sec</option>
    						<option value="120">Raz za 120 sec</option>
    						<option value="180">Raz za 180 sec</option>
    						
    					</select></p>	
					</div>	
					<div id="elem_cont_3" >			
    					<p><span style="width:300px;display:inline-block;">Acc freq:</span>
    					<select id="acc_freq" style="width:300px;display:inline-block; background: rgba(100, 100, 100);" class="form-control" >
    						<option value="1">30s</option>	
    						<option value="2">1.5s</option>
    						<option value="3">0.75s</option>
    					</select></p>
    										
    
    					<p><span style="width:300px;display:inline-block;">Acc threshold:</span>
    					<select id="acc_fallthresh" style="width:300px;display:inline-block; background: rgba(100, 100, 100);" class="form-control" >
    						<option value="20">1000</option>	
    						<option value="100">5000</option>
    						<option value="200">10000</option>
    					</select></p>					
    					
    					<p><span style="width:300px;display:inline-block;">BTS ID:</span>
    					<select  id="bts_id" style="width:300px;display:inline-block; background: rgba(100, 100, 100);" class="form-control" onchange="saveSelected()" >
    					
    					</select></p>						
					</div>	
					<div id="peniaz-settings-div-2" style="width:683px;height:745px;position:relative;display:none;" >
						
					
					</div>
					
					<input onclick="newSettingsCreation();" class="btn btn-fill btn-primary" type="submit" value="Set new settings" />		
						
              </div>
              <!-- end content-->
            </div>
            <!--  end card  -->
                    <div class="row mt-5">
          <div class="col-md-12">
            <div class="card">
              <div class="card-body">
                <div class="toolbar">
                  <!--        Here you can write extra buttons/actions for the toolbar              -->
                </div>
                <h4 class="text-left">Prikazy <?php echo $_GET["dev_id"]; ?> </h4>
				<table id="datatable" class="table table-striped">
                  <thead>
                    <tr>
                      <th>ID</th>
                      <th>Vytvorene</th>
                      <th>Coin ID</th>
                      <th>Stav</th>
                      <th>Command ID</th>
                      <th>Command type</th>
                      <th>Data</th>
                      <th>btsId</th>
                      <th class="sorting_desc_disabled sorting_asc_disabled">Operation</th>
                    </tr>
                  </thead>
                  <tbody id="datatable_body">
                   
                  </tbody>
                  <tfoot>
                    <tr>
                      <th>ID</th>
                      <th>Vytvorene</th>
                      <th>Coin ID</th>
                      <th>btsId</th>
                      <th>Command ID</th>
                      <th>Command type</th>
                      <th>Data</th>
                      <th>Stav</th>
                      <th class="sorting_desc_disabled sorting_asc_disabled">Operation</th>
                    </tr>
                  </tfoot>
                </table>				
              </div>
              <!-- end content-->
            </div>
            <!--  end card  -->
          </div>
          <!-- end col-md-12 -->
        </div>
        
          </div>
          <!-- end col-md-12 -->
          
      </div>
		
		<?php 
		
		$path = $_SERVER['DOCUMENT_ROOT'];
		$path .= "/components/footer.php";
		include_once($path);
		
		?>
	
	
</div>
  <!--   Core JS Files   -->
  		<?php 
		
		$path = $_SERVER['DOCUMENT_ROOT'];
		$path .= "/components/code_footer.php";
		include_once($path);
		
		?>
  
</body>

</html>
