Tryag File Manager
Home
||
Turbo Force
||
B-F Config_Cpanel
Current Path :
/
home
/
ltms.eemo.co.kr
/
public_html
/
super
/
Or
Select Your Path :
Upload File :
New :
File
Dir
//home/ltms.eemo.co.kr/public_html/super/farm_iot_new.php
<? include_once("inc_header.php"); $on_menu="farm"; $on_sub_menu=1; /* 리미트 메모리 */ ini_set('memory_limit', '2048M'); /* url 정보 */ $url = $_SERVER['REQUEST_URI']; $url = explode('?',$url ); $url[0] = $url[0]."?farm_code=$farm_code&dong_name=$dong_name"; /* 농장 코드 */ $farm_code = $_REQUEST["farm_code"]; if(empty($farm_code)) { echo "<script>history.back();</script>"; } /* 셀렉트 검색 */ $dong_time = $_REQUEST["dong_time"]; if(empty($dong_time)) { $dong_time = 1; } /* 탭메뉴 생성 */ $division = $_REQUEST["division"]; if(empty($division)) { $division = 'house'; } /* 동 이름 */ // $dongNameInfo = mysql_fetch_object(mysql_query("SELECT dong_name FROM farm_dong_info WHERE farm_code = $farm_code ORDER BY dong_name ASC LIMIT 1")); $dong_name = $_REQUEST["dong_name"]; if(empty($dong_name)) { $dong_name = 'all'; } /* 센서 이름 */ $tmpObjSensor = mysql_fetch_object(mysql_query("SELECT pos_no FROM farm_sensor FS WHERE FS.farm_code = $farm_code ORDER BY `no` ASC LIMIT 1")); $sensor_pos = $_REQUEST["sensor_pos"]; if(empty($sensor_pos)) { $sensor_pos = $tmpObjSensor->pos_no; } /* 동 전체에 대한 IOT 정보 1시간 짜리 */ if($dong_name != 'all'){ $addDongQuery = " AND FDI.dong_name = '$dong_name' "; }else { $addDongQuery = ""; } /* 시간 검색 정보 */ $searchStart = empty($_REQUEST[searchStart]) ? date("Y-m-d") : $_REQUEST[searchStart]; $searchEnd = empty($_REQUEST[searchEnd]) ? date("Y-m-d") : $_REQUEST[searchEnd]; /* 그래프 전체 쿼리 get 방식으로 데이터 받고 있다 submit 으로 post 방식으로 변경 예정. */ $arrIotData = array(); // 그래프 피요한 데이터 그릇 $arrIotSensor = array(); // 센서 명 switch ($division) { // 탭 별로 쿼리 구분 case 'house': $tmpQuery = mysql_query("SELECT * FROM ( SELECT IR.`no` AS idx FROM farm F, farm_contract_dong FCD , farm_dong_info FDI, iot_raw IR WHERE F.`no` = FCD.farm_no AND FCD.farm_dong_info_no = FDI.`no` AND FDI.`no` = IR.dong_no AND F.farm_code = $farm_code $addDongQuery -- AND IR.jtime BETWEEN '2019-07-14 00:48:31' AND '2019-07-24 13:03:19' AND IR.jtime BETWEEN (DATE_ADD(NOW(), INTERVAL -$dong_time HOUR)) AND NOW() GROUP BY jtime ORDER BY jtime ASC )B JOIN iot_raw A ON A.`no` = B.idx"); /* 일정보 */ while ($rs = mysql_fetch_assoc($tmpQuery)) { $arrIotData[] = $rs; } /* 센서 정보 */ $tmpSensorQuery = mysql_query("SELECT IR.sensor_code FROM iot_raw IR, farm_dong_info FDI WHERE IR.dong_no = FDI.`no` AND IR.farm_code='$farm_code' GROUP BY IR.sensor_code"); while ($rs = mysql_fetch_assoc($tmpSensorQuery)) { $arrIotSensor[] = $rs; } break; case 'house': $tmpQuery = mysql_query("SELECT A.*, B.pos_no FROM ( SELECT IR.`no` AS idx, FS.pos_no AS pos_no FROM farm_sensor FS, iot_raw IR WHERE IR.sensor_no = FS.`no` AND IR.farm_code = '$farm_code' AND FS.pos_no = '$sensor_pos' AND IR.jtime BETWEEN (DATE_ADD(NOW(), INTERVAL -$dong_time HOUR)) AND NOW() GROUP BY jtime ORDER BY jtime ASC )B JOIN iot_raw A ON A.`no` = B.idx"); /* 일정보 */ while ($rs = mysql_fetch_assoc($tmpQuery)) { $arrIotData[] = $rs; } /* 센서 정보 */ $tmpSensorQuery = mysql_query("SELECT * FROM farm_sensor FS WHERE FS.farm_code = '$farm_code' AND FS.pos_no = '$sensor_pos'"); while ($rs = mysql_fetch_assoc($tmpSensorQuery)) { $arrIotSensor[] = $rs; } break; default : break; } /* 동 리스트 정보 */ $arrDongInfo = array(); $tmpDongInfo = mysql_query("SELECT dong_name FROM farm_dong_info WHERE farm_code = '$farm_code'"); while ($rs = mysql_fetch_assoc($tmpDongInfo)) { $arrDongInfo[] = $rs; }; /* 센서리스트 정보 */ $arrSensorInfo = array(); $tmpSensorInfo = mysql_query("SELECT pos_no FROM farm_sensor WHERE farm_code = '$farm_code' ORDER BY `no` ASC "); while ($rs = mysql_fetch_assoc($tmpSensorInfo)) { $arrSensorInfo[] = $rs; }; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?=$_TITLE?></title> <link href="css/bootstrap.min.css" rel="stylesheet"> <link href="font-awesome/css/font-awesome.css" rel="stylesheet"> <link href="css/plugins/iCheck/custom.css" rel="stylesheet"> <link href="css/animate.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> <link href="css/messagebox.css" rel="stylesheet"> <link href="css/farm_iot_new.css" rel="stylesheet"> <link href="css/plugins/datapicker/datepicker3.css" rel="stylesheet"> <!-- <link href="https://naver.github.io/billboard.js/release/latest/dist/billboard.css" rel="stylesheet"> --> </head> <!-- <body class="fixed-nav fixed-sidebar"> 기본바디 설정 --> <!-- 하이드 설정 --> <body class="pace-done mini-navbar"> <style> .invisible-scrollbar::-webkit-scrollbar { display: none; } </style> <div id="wrapper"> <? include_once("inc_sidemenu.php"); ?> <!-- 사이드 메뉴 --> <div id="page-wrapper" class="gray-bg"> <? include_once("inc_top.php"); // include_once("inc_now_position.php"); /* 큰 알림 텍스트 */ include_once("navigation.php"); ?> <!-- 헤더 메뉴 끝 --> <div class="row"> <!-- 사육관리 탭메뉴 --> <? include_once("inc_top_submenu.php"); /* 사육관리전용 탭 그외 주석처리 */ ?> </div> <div class="row wrapper border-bottom white-bg page-heading py-3"> <? include_once("inc_nav_menu.php"); /* 네비게이션 판 */ ?> </div> <!-- 네비 wrapper 끝 --> <div class="wrapper wrapper-content"> <div class="row animated fadeInDown"> <div class="col-lg-12"> <div class="ibox-content border-0 py-0 text-right"> <? include_once("inc_icon_menu.php");/* 농장관련 아이콘 농장 외 주석 */ ?> </div> </div> <!-- col-lg-크기 지정 후 컨텐츠 입력 --> <div class="col-lg-12"> <div class="ibox-content border-top-0 p-0 invisible-scrollbar d-flex flex" style="height:73vh; overflow:scroll;"> <div id="kku-left" class="card"> <!-- data picker --> <div class="form-group mx-5" id="data_5"> <div class="input-daterange input-group w-25 float-right" id="datepicker"> <span class="input-group-addon bg-white border-left border-light"><i class="fa fa-calculator mx-1" aria-hidden="true"></i></span> <input type="text" class="form-control-sm form-control mx-1" name="searchStart" value="<?=$searchStart?>"> <span class="input-group-addon bg-white"><i class="fa fa-calculator mx-1" aria-hidden="true"></i></span> <input type="text" class="form-control-sm form-control mx-1" name="searchEnd" value="<?=$searchEnd?>"> </div> </div> <div class="card-body"> <button type="button" class="kku-right-btn btn btn-dark" data-toggle="button" aria-pressed="false" autocomplete="off"> <i class="fa fa-window-restore" aria-hidden="true"></i> </button> <!-- chart --> <div id="chartdiv"></div> <!-- end chart --> </div> </div> <!-- house info tab menu --> <div id="kku-right" class="card"> <div class="card-body"> <nav class="kku-right-tab nav nav-pills flec-column flex-sm-row"> <?php switch ($division) { case 'house': echo "<a class='flex-sm-fill text-sm-center nav-link active' href='$url[0]&division=house'>계사</a>"; echo "<a class='flex-sm-fill text-sm-center nav-link'href='$url[0]&division=sensor'>센서</a>"; break; case 'sensor': echo "<a class='flex-sm-fill text-sm-center nav-link ' href='$url[0]&division=house'>계사</a>"; echo "<a class='flex-sm-fill text-sm-center nav-link active'href='$url[0]&division=sensor'>센서</a>"; break; } ?> </nav> <?php if($division == 'house') { ?> <!-- 동입력 select --> <div class="kku-menu-box-top"> <div class="form-group"> <label class="font-weight-bold" for="kku-select-dong">동선택</label> <select class="form-control" name="kku-select-dong" id="kku-select-dong" onchange="select_dong('<?=$farm_code;?>','<?=$division;?>');"> <?php $selected = $value['dong_name'] == 'all' ? 'selected' : ''; ?> <option value = "all" <?=$selected?>>전체</option> <?php foreach ($arrDongInfo as $key => $value) { $selected = $value['dong_name'] == $dong_name ? 'selected' : ''; echo "<option value='{$value['dong_name']}' $selected >{$value['dong_name']}</option>"; } ?> </select> </div> </div> <!-- 검색조건 --> <div class="kku-menu-box"> <div class="form-group"> <label class="font-weight-bold" for="kku-select-time">검색</label> <select class="form-control" name="kku-select-time" id="kku-select-time" onchange="select_time();"> <option value='1' <?=$_REQUEST['dong_time'] == 1 ? 'selected': '';?>>1 시간</option> <option value='2' <?= $_REQUEST['dong_time'] == 2 ? 'selected': '';?>>2 시간</option> <option value='3' <?= $_REQUEST['dong_time'] == 3 ? 'selected': '';?>>3 시간</option> <option value='6' <?= $_REQUEST['dong_time'] == 6 ? 'selected': '';?>>6 시간</option> <option value='12' <?= $_REQUEST['dong_time'] == 12 ? 'selected': '';?>>12 시간</option> <option value='24' <?= $_REQUEST['dong_time'] == 24 ? 'selected': '';?>>일별</option> </select> </div> </div> <!-- checkboxs --> <div class="kku-menu-box"> <div class="custom-control custom-checkbox kku-chkbox"> <input type="checkbox" class="custom-control-input" id="chk_temp" checked> <label class="custom-control-label" for="chk_temp">온도</label> </div> <div class="custom-control custom-checkbox kku-chkbox"> <input type="checkbox" class="custom-control-input" id="chk_humi" checked> <label class="custom-control-label" for="chk_humi">습도</label> </div> </div> <!-- checkbox end --> </div> <?php }else if($division == 'sensor') { ?> <!-- house menu --> <!-- 동입력 select --> <div class="kku-menu-box-top"> <div class="form-group"> <label class="font-weight-bold" for="kku-select-dong">센서선택</label> <select class="form-control" name="kku-select-dong" id="kku-select-sensor" onchange="select_sensor('<?=$farm_code;?>','<?=$division;?>');"> <?php foreach ($arrSensorInfo as $key => $value) { $selected = $value['pos_no'] == $sensor_pos ? 'selected' : ''; echo "<option value='{$value['pos_no']}' $selected >{$value['pos_no']}</option>"; } ?> </select> </div> </div> <!-- 검색조건 --> <div class="kku-menu-box"> <div class="form-group"> <label class="font-weight-bold" for="kku-select-time">검색</label> <select class="form-control" name="kku-select-time" id="kku-select-time" onchange="select_time();"> <option value='1' <?=$_REQUEST['dong_time'] == 1 ? 'selected': '';?>>1 시간</option> <option value='2' <?= $_REQUEST['dong_time'] == 2 ? 'selected': '';?>>2 시간</option> <option value='3' <?= $_REQUEST['dong_time'] == 3 ? 'selected': '';?>>3 시간</option> <option value='6' <?= $_REQUEST['dong_time'] == 6 ? 'selected': '';?>>6 시간</option> <option value='12' <?= $_REQUEST['dong_time'] == 12 ? 'selected': '';?>>12 시간</option> <option value='24' <?= $_REQUEST['dong_time'] == 24 ? 'selected': '';?>>일별</option> </select> </div> </div> <!-- checkboxs --> <div class="kku-menu-box"> <div class="custom-control custom-checkbox kku-chkbox"> <input type="checkbox" class="custom-control-input" id="chk_temp" checked> <label class="custom-control-label" for="chk_temp">온도</label> </div> <div class="custom-control custom-checkbox kku-chkbox"> <input type="checkbox" class="custom-control-input" id="chk_humi" checked> <label class="custom-control-label" for="chk_humi">습도</label> </div> </div> <!-- checkbox end --> </div> <?php } ?> <!-- sensor menu --> </div><!-- house info tab menu End --> </div><!-- kkumain contents end --> </div> </div> <? include_once("inc_footer.php"); ?> </div> </div> <!-- 스크립트 영역 추가 --> <!-- Mainly scripts --> <script src="js/jquery-3.1.1.min.js"></script> <script src="js/popper.min.js"></script> <script src="js/bootstrap.js"></script> <!-- Custom and plugin javascript --> <script src="js/inspinia.js"></script> <script src="js/plugins/pace/pace.min.js"></script> <script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script> <!-- Resources --> <script src="https://www.amcharts.com/lib/4/core.js"></script> <script src="https://www.amcharts.com/lib/4/charts.js"></script> <script src="https://www.amcharts.com/lib/4/themes/dark.js"></script> <script src="https://www.amcharts.com/lib/4/themes/animated.js"></script> <!-- Chosen --> <script src="js/plugins/chosen/chosen.jquery.js"></script> <!-- JSKnob --> <script src="js/plugins/jsKnob/jquery.knob.js"></script> <!-- Input Mask--> <script src="js/plugins/jasny/jasny-bootstrap.min.js"></script> <!-- Data picker --> <script src="js/plugins/datapicker/bootstrap-datepicker.js"></script> <!-- NouSlider --> <script src="js/plugins/nouslider/jquery.nouislider.min.js"></script> <!-- Switchery --> <script src="js/plugins/switchery/switchery.js"></script> <!-- IonRangeSlider --> <script src="js/plugins/ionRangeSlider/ion.rangeSlider.min.js"></script> <!-- iCheck --> <script src="js/plugins/iCheck/icheck.min.js"></script> <!-- MENU --> <script src="js/plugins/metisMenu/jquery.metisMenu.js"></script> <!-- Color picker --> <script src="js/plugins/colorpicker/bootstrap-colorpicker.min.js"></script> <!-- Clock picker --> <script src="js/plugins/clockpicker/clockpicker.js"></script> <!-- Image cropper --> <script src="js/plugins/cropper/cropper.min.js"></script> <!-- Date range use moment.js same as full calendar plugin --> <script src="js/plugins/fullcalendar/moment.min.js"></script> <!-- Date range picker --> <script src="js/plugins/daterangepicker/daterangepicker.js"></script> <!-- Data picker(Korean) --> <script src="js/ko.js"></script> <!-- Select2 --> <script src="js/plugins/select2/select2.full.min.js"></script> <!-- TouchSpin --> <script src="js/plugins/touchspin/jquery.bootstrap-touchspin.min.js"></script> <!-- Tags Input --> <script src="js/plugins/bootstrap-tagsinput/bootstrap-tagsinput.js"></script> <!-- Dual Listbox --> <script src="js/plugins/dualListbox/jquery.bootstrap-duallistbox.js"></script> <!-- MR.kku --> <script src="js/farm_iot_new.js"></script> <script src="js/plugins/rickshaw/vendor/d3.v3.js"></script> <script src="js/plugins/rickshaw/rickshaw.min.js"></script> <!-- 스크립트 추가 끝 --> <script> $(document).ready(function() { $(function() { $('#data_5 .input-daterange').datepicker({ format : "yyyy-mm-dd", keyboardNavigation: false, forceParse: false, autoclose: true }); }); iotChart(); }); /* 차트관련 */ function iotChart() { // Themes begin am4core.useTheme(am4themes_dark); am4core.useTheme(am4themes_animated); // Themes end // Create chart var chart = am4core.create("chartdiv", am4charts.XYChart); var data = [ <?php switch ($division) { case 'house': for ($i=0; $i < count($arrIotData); $i++) { $date_time = substr($arrIotData[$i][jtime], 11,8); $sensor_name = substr($arrIotData[$i][sensor_code],9,4)."_" ; echo "{"; echo "'date' : '$date_time' ,"; echo "'".$sensor_name."temp"."' : '{$arrIotData[$i][temp]}',"; echo "'".$sensor_name."humi"."' : '{$arrIotData[$i][humi]}',"; echo "},"; } break; case 'sensor': for ($i=0; $i < count($arrIotData); $i++) { $date_time = substr($arrIotData[$i][jtime], 11,8); $pos_no = $arrIotData[$i][pos_no]; echo "{"; echo "'date' : '$date_time' ,"; echo "'".$pos_no."temp"."' : '{$arrIotData[$i][temp]}',"; echo "'".$pos_no."humi"."' : '{$arrIotData[$i][humi]}',"; echo "},"; } break; default: break; } ?> ]; chart.data = data; // Create axes var categoryAxis = chart.xAxes.push(new am4charts.CategoryAxis()); categoryAxis.dataFields.category = "date"; // Create series function createAxisAndSeries(field, name, opposite, bullet, label) { var valueAxis = chart.yAxes.push(new am4charts.ValueAxis()); valueAxis.min = 0; valueAxis.max = 100; valueAxis.renderer.minGridDistance = 10; valueAxis.renderer.labels.template.disabled = label; var series = chart.series.push(new am4charts.LineSeries()); series.dataFields.valueY = field; series.dataFields.categoryX = "date"; series.strokeWidth = 2; series.yAxis = valueAxis; series.name = name; series.tooltipText = "{name}: [bold]{valueY}[/]"; series.tensionX = 0.8; var interfaceColors = new am4core.InterfaceColorSet(); valueAxis.renderer.line.strokeOpacity = 1; valueAxis.renderer.line.strokeWidth = 2; valueAxis.renderer.line.stroke = series.stroke; valueAxis.renderer.labels.template.fill = series.stroke; valueAxis.renderer.opposite = opposite; valueAxis.renderer.grid.template.disabled = true; $('#chk_temp').click(function (e) { var lengthSeries = series.dataFields.valueY.length; if((series.dataFields.valueY.substring(lengthSeries-4, lengthSeries)) == 'temp'){ if (!series.isHiding && !series.isHidden) { series.hide(); }else { series.show(); } } }); $('#chk_humi').click(function (e) { var lengthSeries = series.dataFields.valueY.length; if((series.dataFields.valueY.substring(lengthSeries-4, lengthSeries)) == 'humi'){ if (!series.isHiding && !series.isHidden) { series.hide(); }else { series.show(); } } }); } <?php switch ($division) { case 'house': $bool = false; for ($i=0; $i < count($arrIotSensor) ; $i++) { $sensor_name = substr($arrIotSensor[$i][sensor_code],9,4)."_" ; ?> createAxisAndSeries("<?=$sensor_name?>temp", "<?=$sensor_name?>temp", false, "triangle", true); createAxisAndSeries("<?=$sensor_name?>humi", "<?=$sensor_name?>humi", false, "rectangle", <?=$bool?>); <?php $bool=true; } break; case 'sensor': $bool = false; for ($i=0; $i < count($arrIotSensor) ; $i++) { $pos_no = $arrIotSensor[$i][pos_no]; ?> createAxisAndSeries("<?=$pos_no?>temp", "<?=$pos_no?>temp", false, "triangle", true); createAxisAndSeries("<?=$pos_no?>humi", "<?=$pos_no?>humi", false, "rectangle", <?=$bool?>); <?php $bool=true; } break; default: break; } ?> // createAxisAndSeries("S004_temp", "S004_temp", false, "triangle", true); // createAxisAndSeries("S004_humi", "S004_humi", false, "rectangle", true); // createAxisAndSeries("중", "중", true, "rectangle", true); // createAxisAndSeries("대", "대", true, "circle", true); // Add legend chart.legend = new am4charts.Legend(); chart.legend.position = "top"; chart.legend.valign = "top"; // Add cursor chart.cursor = new am4charts.XYCursor(); } /* 끝 차트 */ </script> </body> </html>