From 7fd5a980147f7ee9df50b5cea8df7eb13c7c21f9 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期二, 10 十月 2023 10:51:42 +0800
Subject: [PATCH] 抽油机运行状态

---
 ard-work/src/main/resources/templates/test.html |  322 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 194 insertions(+), 128 deletions(-)

diff --git a/ard-work/src/main/resources/templates/test.html b/ard-work/src/main/resources/templates/test.html
index a79c89f..5b3d7d9 100644
--- a/ard-work/src/main/resources/templates/test.html
+++ b/ard-work/src/main/resources/templates/test.html
@@ -9,118 +9,132 @@
     <link rel="stylesheet" th:href="@{/css/bootstrap.css}"/>
     <script th:src="@{/js/bootstrap.js}"></script>
     <style>
-    .top-buffer { margin-top:10px; }
+        .top-buffer {
+            margin-top: 10px;
+        }
     </style>
 <body>
 <div class="container">
-        <div class="row ">
-            <div class="dropdown">
-                鐩告満id锛�
-                <select id="select">
-                </select>
-            </div>
+    <div class="row ">
+        <div class="dropdown">
+            鐩告満id锛�<select id="select">
+        </select>
         </div>
-        <div class="row top-buffer">
-            <div class="col-md-1 col-md-offset-1">
-                <button id="up" type="button" class="btn btn-primary">涓�</button>
-            </div>
-            <div class="col-md-4 col-md-offset-3">
-                <div class="btn-group" role="group">
-                    <button id="controlZoomIn" type="button" class="btn btn-primary">璋冪劍-</button>
-                    <button id="controlZoomOut" type="button" class="btn btn-primary">璋冪劍+</button>
-                </div>
-            </div>
+    </div>
+    <div class="row top-buffer">
+        <div class="col-md-1 col-md-offset-1">
+            <button id="up" type="button" class="btn btn-primary">涓�</button>
         </div>
-        <div class="row ">
-            <div class="col-md-1">
-                <button id="left" type="button" class="btn btn-primary">宸�</button>
-            </div>
-            <div class="col-md-1 col-md-offset-1">
-                <button id="right" type="button" class="btn btn-primary">鍙�</button>
-            </div>
-            <div class="col-md-4 col-md-offset-2">
-                <div class="btn-group" role="group">
-                    <button id="controlFocusNear" type="button" class="btn btn-primary">鑱氱劍-</button>
-                    <button id="controlFocusFar" type="button" class="btn btn-primary">鑱氱劍+</button>
-                </div>
-            </div>
-        </div>
-        <div class="row ">
-            <div class="col-md-1 col-md-offset-1">
-                <button id="down" type="button" class="btn btn-primary">涓�</button>
-            </div>
-            <div class="col-md-4 col-md-offset-3">
-                <div class="btn-group" role="group">
-                    <button id="controlIrisOpen" type="button" class="btn btn-primary">鍏夊湀-</button>
-                    <button id="controlIrisClose" type="button" class="btn btn-primary">鍏夊湀+</button>
-                </div>
-            </div>
-        </div>
-        <div class="row top-buffer">
-            <div class="input-group">
-                <span class="input-group-addon">P鍊硷細</span>
-                <input id="p" class="form-control" placeholder="璇疯緭鍏鍊�"/>
-            </div>
-            <div class="input-group">
-                <span class="input-group-addon">T鍊硷細</span>
-                <input id="t" class="form-control" placeholder="璇疯緭鍏鍊�"/>
-            </div>
-            <div class="input-group">
-                <span class="input-group-addon">Z鍊硷細</span>
-                <input id="z" class="form-control" placeholder="璇疯緭鍏鍊�"/>
-            </div>
-        </div>
-        <div class="row top-buffer">
+        <div class="col-md-4 col-md-offset-3">
             <div class="btn-group" role="group">
-                <button id="getPTZ" type="button" class="btn btn-default">鑾峰彇ptz</button>
-                <button id="setPTZ" type="button" class="btn btn-default">璁剧疆ptz</button>
-                <button id="setPreset" type="button" class="btn btn-default">璁鹃缃偣</button>
-                <button id="gotoPreset" type="button" class="btn btn-default">璋冮缃偣</button>
-                <button id="getZeroPTZ" type="button" class="btn btn-default">璋冪敤闆舵柟浣嶈</button>
-                <button id="setZeroPTZ" type="button" class="btn btn-default">璁剧疆闆舵柟浣嶈</button>
-            </div>
-        </div>
-        <div class="row top-buffer">
-            <div class="btn-group" role="group">
-                <button id="FocusMode" type="button" class="btn btn-default">鎵嬪姩鑱氱劍</button>
-                <div id="focusDiv" class="input-group">
-                    <span class="input-group-addon">鑱氱劍鍊硷細</span>
-                    <input id="focus" class="form-control" placeholder="鑱氱劍鍊�"/>
-                </div>
-                <button id="getFocusPos" type="button" class="btn btn-default">鑾峰彇鑱氱劍鍊�</button>
-                <button id="setFocusPos" type="button" class="btn btn-default">璁剧疆鑱氱劍鍊�</button>
-            </div>
-        </div>
-        <div class="row top-buffer">
-            <div class="btn-group" role="group">
-                <button id="WiperPwron" type="button" class="btn btn-default">寮�鍚洦鍒�</button>
-                <button id="Defogcfg" type="button" class="btn btn-default">寮�鍚�忛浘</button>
-                <button id="Infrarecfg" type="button" class="btn btn-default">寮�鍚孩澶�</button>
-                <button id="HeateRpwron" type="button" class="btn btn-default">寮�鍚簯鍙板姞鐑�</button>
-                <button id="CameraDeicing" type="button" class="btn btn-default">寮�鍚暅澶村姞鐑�</button>
-            </div>
-        </div>
-        <div class="row top-buffer">
-            <div class="btn-group" role="group">
-                <button id="voice" type="button" class="btn btn-default">寮�濮嬭闊冲璁�</button>
-                <button id="record" type="button" class="btn btn-default">寮�濮嬪綍鍍�</button>
-                <button id="realCutPic" type="button" class="btn btn-default">瀹炴椂鎶撳浘</button>
-                <button id="saveCutPic" type="button" class="btn btn-default">瀛樺偍鎶撳浘</button>
-            </div>
-        </div>
-        <div class="row top-buffer">
-            <div class="col-md-6">
-                <img class="thumbnail" id="imgContainer" style="width: 500px; height: 400px;padding: 5px 5px;"/>
-            </div>
-            <div class="col-md-6">
-                <video id="video" muted autoplay loop controls  style="width: 800px; height: 100%; object-fit: fill" />
+                <button id="controlZoomIn" type="button" class="btn btn-primary">璋冪劍-</button>
+                <button id="controlZoomOut" type="button" class="btn btn-primary">璋冪劍+</button>
             </div>
         </div>
     </div>
-</body>
-<script th:inline="javascript">
-    var cameraId, opt, token;
+    <div class="row ">
+        <div class="col-md-1">
+            <button id="left" type="button" class="btn btn-primary">宸�</button>
+        </div>
+        <div class="col-md-1 col-md-offset-1">
+            <button id="right" type="button" class="btn btn-primary">鍙�</button>
+        </div>
+        <div class="col-md-4 col-md-offset-2">
+            <div class="btn-group" role="group">
+                <button id="controlFocusNear" type="button" class="btn btn-primary">鑱氱劍-</button>
+                <button id="controlFocusFar" type="button" class="btn btn-primary">鑱氱劍+</button>
+            </div>
+        </div>
+    </div>
+    <div class="row ">
+        <div class="col-md-1 col-md-offset-1">
+            <button id="down" type="button" class="btn btn-primary">涓�</button>
+        </div>
+        <div class="col-md-4 col-md-offset-3">
+            <div class="btn-group" role="group">
+                <button id="controlIrisOpen" type="button" class="btn btn-primary">鍏夊湀-</button>
+                <button id="controlIrisClose" type="button" class="btn btn-primary">鍏夊湀+</button>
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-6">
+            <div class="row top-buffer">
+                <div class="input-group">
+                    <span class="input-group-addon">鐩殑鍧愭爣鍊硷細</span>
+                    <input id="targetPostion" class="form-control" placeholder="鐩殑鍧愭爣"/>
+                    <button id="setTargetPostion" type="button" class="btn btn-default">鎸囧悜鍧愭爣</button>
+                </div>
+                <div class="input-group">
+                    <span class="input-group-addon">P鍊硷細</span>
+                    <input id="p" class="form-control" placeholder="璇疯緭鍏鍊�"/>
+                </div>
+                <div class="input-group">
+                    <span class="input-group-addon">T鍊硷細</span>
+                    <input id="t" class="form-control" placeholder="璇疯緭鍏鍊�"/>
+                </div>
+                <div class="input-group">
+                    <span class="input-group-addon">Z鍊硷細</span>
+                    <input id="z" class="form-control" placeholder="璇疯緭鍏鍊�"/>
+                </div>
+            </div>
+            <div class="row top-buffer">
+                <div class="btn-group" role="group">
+                    <button id="getPTZ" type="button" class="btn btn-default">鑾峰彇ptz</button>
+                    <button id="setPTZ" type="button" class="btn btn-default">璁剧疆ptz</button>
+                    <button id="setPreset" type="button" class="btn btn-default">璁鹃缃偣</button>
+                    <button id="gotoPreset" type="button" class="btn btn-default">璋冮缃偣</button>
+                    <button id="getZeroPTZ" type="button" class="btn btn-default">璋冪敤闆舵柟浣嶈</button>
+                    <button id="setZeroPTZ" type="button" class="btn btn-default">璁剧疆闆舵柟浣嶈</button>
+                </div>
+            </div>
+            <div class="row top-buffer">
+                <div class="btn-group" role="group">
+                    <button id="FocusMode" type="button" class="btn btn-default">鎵嬪姩鑱氱劍</button>
+                    <div id="focusDiv" class="input-group">
+                        <span class="input-group-addon">鑱氱劍鍊硷細</span>
+                        <input id="focus" class="form-control" placeholder="鑱氱劍鍊�"/>
+                    </div>
+                    <button id="getFocusPos" type="button" class="btn btn-default">鑾峰彇鑱氱劍鍊�</button>
+                    <button id="setFocusPos" type="button" class="btn btn-default">璁剧疆鑱氱劍鍊�</button>
+                </div>
+            </div>
+            <div class="row top-buffer">
+                <div class="btn-group" role="group">
+                    <button id="WiperPwron" type="button" class="btn btn-default">寮�鍚洦鍒�</button>
+                    <button id="Defogcfg" type="button" class="btn btn-default">寮�鍚�忛浘</button>
+                    <button id="Infrarecfg" type="button" class="btn btn-default">寮�鍚孩澶�</button>
+                    <button id="HeateRpwron" type="button" class="btn btn-default">寮�鍚簯鍙板姞鐑�</button>
+                    <button id="CameraDeicing" type="button" class="btn btn-default">寮�鍚暅澶村姞鐑�</button>
+                </div>
+            </div>
+            <div class="row top-buffer">
+                <div class="btn-group" role="group">
+                    <button id="voice" type="button" class="btn btn-default">寮�濮嬭闊冲璁�</button>
+                    <button id="record" type="button" class="btn btn-default">寮�濮嬪綍鍍�</button>
+                    <button id="realCutPic" type="button" class="btn btn-default">瀹炴椂鎶撳浘</button>
+                    <button id="saveCutPic" type="button" class="btn btn-default">瀛樺偍鎶撳浘</button>
+                </div>
+            </div>
+            <div class="row top-buffer">
+                <div class="col-md-6">
+                    <img class="thumbnail" id="imgContainer" style="width: 500px; height: 300px;"/>
+                </div>
+            </div>
+        </div>
+        <div class="col-md-1"/>
+        <div class="col-md-5">
+            <div class="row top-buffer">
+                <video id="video" muted autoplay loop controls style="width: 800px; height: 100%; object-fit: fill;"/>
+            </div>
+        </div>
+    </div>
+</div>
+<script th:inline="javascript" th:type="module">
+
+    var cameraId, opt, optOpen, optClose, token;
     window.onload = function () {
+        console.log(RTCRtpReceiver.getCapabilities('video').codecs)
         $.ajax({
             url: "../hik/list",
             type: "get",
@@ -134,7 +148,10 @@
                         ipaddr: arr[i].ip,
                         username: arr[i].username,
                         password: arr[i].password,
-                        port: arr[i].rtspPort
+                        port: arr[i].rtspPort,
+                        longitude: arr[i].longitude,
+                        latitude: arr[i].latitude,
+                        altitude: arr[i].altitude
                     };
                     cameraMap.set(arr[i].id, camera);
                     //鍏堝垱寤哄ソselect閲岄潰鐨刼ption鍏冪礌
@@ -146,7 +163,6 @@
                 }
             }
         })
-
         opt = {"username": "admin", "password": "admin123"};
         $.ajax({
             headers: {
@@ -293,7 +309,7 @@
 
     $("#setPreset").click(function () {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1, "speed": 8, "presetIndex": 1};
+        opt = {"cameraId": cameraId, "chanNo": 1, "speed": 8, "presetIndex": 1};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -311,7 +327,7 @@
     })
     $("#gotoPreset").click(function () {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1, "speed": 8, "presetIndex": 1};
+        opt = {"cameraId": cameraId, "chanNo": 1, "speed": 8, "presetIndex": 1};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -329,7 +345,7 @@
     })
     $("#getPTZ").click(function () {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1};
+        opt = {"cameraId": cameraId, "chanNo": 1};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -355,7 +371,7 @@
         var z = $('#z').val();
         //瀹氫箟涓�涓甫鏈塎ap瀛楁鐨勫疄浣撳璞�
         var myEntity = {
-            channelNum: 1,
+            chanNo: 1,
             cameraId: cameraId,
             ptzMap: {
                 p: p,
@@ -379,9 +395,37 @@
             }
         })
     })
+    $("#setTargetPostion").click(function () {
+        cameraId = $('#select option:selected').val();
+        var camera = cameraMap.get(cameraId);
+        var camP = camera.longitude + ',' + camera.latitude + ',' + camera.altitude;
+        var targetP = $('#targetPostion').val();
+        //瀹氫箟涓�涓甫鏈塎ap瀛楁鐨勫疄浣撳璞�
+        var myEntity = {
+            chanNo: 1,
+            cameraId: cameraId,
+            targetPosition: targetP,
+            camPosition: camP,
+        };
+        console.log(myEntity)
+        $.ajax({
+            headers: {
+                'Accept': 'application/json',
+                'Content-Type': 'application/json',
+                'Authorization': token
+            },
+            url: "../hik/setTargetPosition",
+            type: "post",
+            dataType: "json",
+            data: JSON.stringify(myEntity),
+            success: function (data) {
+                console.log(data);
+            }
+        })
+    })
     $("#setZeroPTZ").click(function () {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1};
+        opt = {"cameraId": cameraId, "chanNo": 1};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -399,7 +443,7 @@
     })
     $("#WiperPwron").click(function () {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1, "speed": 8, "enable": true, "code": 16};
+        opt = {"cameraId": cameraId, "chanNo": 1, "speed": 8, "enable": true, "code": 16};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -418,8 +462,8 @@
     var defogflag = true;
     $("#Defogcfg").click(function () {
         cameraId = $('#select option:selected').val();
-        optOpen = {"cameraId": cameraId, "channelNum": 1, "enable": true};
-        optClose = {"cameraId": cameraId, "channelNum": 1, "enable": false};
+        optOpen = {"cameraId": cameraId, "chanNo": 1, "enable": true};
+        optClose = {"cameraId": cameraId, "chanNo": 1, "enable": false};
         if (defogflag) {
             $(this).text("鍏抽棴閫忛浘");
             defogflag = false;
@@ -460,8 +504,8 @@
     var infrareflag = true;
     $("#Infrarecfg").click(function () {
         cameraId = $('#select option:selected').val();
-        optOpen = {"cameraId": cameraId, "channelNum": 1, "enable": true};
-        optClose = {"cameraId": cameraId, "channelNum": 1, "enable": false};
+        optOpen = {"cameraId": cameraId, "chanNo": 1, "enable": true};
+        optClose = {"cameraId": cameraId, "chanNo": 1, "enable": false};
         if (infrareflag) {
             $(this).text("鍏抽棴绾㈠");
             infrareflag = false;
@@ -502,8 +546,8 @@
     var focusModeflag = true;
     $("#FocusMode").click(function () {
         cameraId = $('#select option:selected').val();
-        optOpen = {"cameraId": cameraId, "channelNum": 1, "enable": true};
-        optClose = {"cameraId": cameraId, "channelNum": 1, "enable": false};
+        optOpen = {"cameraId": cameraId, "chanNo": 1, "enable": true};
+        optClose = {"cameraId": cameraId, "chanNo": 1, "enable": false};
         if (focusModeflag) {
             $(this).text("鑷姩鑱氱劍");
             focusModeflag = false;
@@ -540,11 +584,30 @@
             })
         }
     })
+    $("#getFocusPos").click(function () {
+        cameraId = $('#select option:selected').val();
+        opt = {"cameraId": cameraId, "chanNo": 1};
+        $.ajax({
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'Authorization': token
+                },
+                url: "../hik/getFocusPos",
+                type: "post",
+                dataType: "json",
+                data: JSON.stringify(opt),
+                success: function (datas) {
+                    console.log(datas);
+                    $("#focus").val(datas.data.dwFocus);
+                }
+            })
+    })
     var heateRpwronflag = true;
     $("#HeateRpwron").click(function () {
         cameraId = $('#select option:selected').val();
-        optOpen = {"cameraId": cameraId, "channelNum": 1, "enable": true};
-        optClose = {"cameraId": cameraId, "channelNum": 1, "enable": false};
+        optOpen = {"cameraId": cameraId, "chanNo": 1, "enable": true};
+        optClose = {"cameraId": cameraId, "chanNo": 1, "enable": false};
         if (heateRpwronflag) {
             $(this).text("鍏抽棴浜戝彴鍔犵儹");
             heateRpwronflag = false;
@@ -584,8 +647,8 @@
     var CameraDeicingflag = true;
     $("#CameraDeicing").click(function () {
         cameraId = $('#select option:selected').val();
-        optOpen = {"cameraId": cameraId, "channelNum": 1, "enable": true};
-        optClose = {"cameraId": cameraId, "channelNum": 1, "enable": false};
+        optOpen = {"cameraId": cameraId, "chanNo": 1, "enable": true};
+        optClose = {"cameraId": cameraId, "chanNo": 1, "enable": false};
         if (CameraDeicingflag) {
             $(this).text("鍏抽棴闀滃ご鍔犵儹");
             CameraDeicingflag = false;
@@ -623,7 +686,7 @@
     })
     $("#realCutPic").click(function () {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1};
+        opt = {"cameraId": cameraId, "chanNo": 1};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -636,13 +699,13 @@
             data: JSON.stringify(opt),
             success: function (data) {
                 console.log(data.data);
-                $("#imgContainer").attr("src","data:image/png;base64,"+data.data);
+                $("#imgContainer").attr("src", "data:image/png;base64," + data.data);
             }
         })
     })
     $("#saveCutPic").click(function () {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1};
+        opt = {"cameraId": cameraId, "chanNo": 1};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -662,8 +725,8 @@
     var recordflag = true;
     $("#record").click(function () {
         cameraId = $('#select option:selected').val();
-        optOpen = {"cameraId": cameraId, "channelNum": 1, "enable": true};
-        optClose = {"cameraId": cameraId, "channelNum": 1, "enable": false};
+        optOpen = {"cameraId": cameraId, "chanNo": 1, "enable": true};
+        optClose = {"cameraId": cameraId, "chanNo": 1, "enable": false};
         if (recordflag) {
             $(this).text("鍋滄褰曞儚");
             recordflag = false;
@@ -706,7 +769,7 @@
     /*浜戝彴鍏叡鏂规硶*/
     function commondMethod(url, code, enable) {
         cameraId = $('#select option:selected').val();
-        opt = {"cameraId": cameraId, "channelNum": 1, "speed": 8, "enable": enable, "code": code};
+        opt = {"cameraId": cameraId, "chanNo": 1, "speed": 8, "enable": enable, "code": code};
         $.ajax({
             headers: {
                 'Accept': 'application/json',
@@ -722,6 +785,7 @@
             }
         })
     }
+
     let webRtcServer = null;
     let videoMap = new Map();
     $('video').click(function (e) {
@@ -738,14 +802,15 @@
             } else if (camera.type == "dh") {
                 realViewDh("127.0.0.1", ID, camera.username, camera.password, camera.ipaddr, camera.port);
             } else {
-                realViewHik("192.168.1.15", ID, camera.username, camera.password, camera.ipaddr,  camera.port);
+                realViewHik("127.0.0.1", ID, camera.username, camera.password, camera.ipaddr, camera.port);
             }
         }
     });
 
     //棰勮娴峰悍鐩告満
     function realViewHik(serverip, elem, username, password, ipaddr, port) {
-        webRtcServer = new WebRtcStreamer(elem, "http://" + serverip + ":8000");
+       // webRtcServer = new WebRtcStreamer(elem, "http://" + serverip + ":8000");
+        webRtcServer = new WebRtcStreamer(elem, "http://192.168.1.227:8000");
         let rtspUrl = "rtsp://" + username + ":" + password + "@" + ipaddr + ":" + port + "/ch1/main/av_stream";
         let option = "rtptransport=tcp";
         console.log("rtsp鍦板潃锛�" + rtspUrl);
@@ -784,4 +849,5 @@
         webRtcServer.disconnect();
     }
 </script>
+</body>
 </html>
\ No newline at end of file

--
Gitblit v1.9.3