| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- let cameraLogLevel = "";
- function setCameraLogLevel() {
- const level = logLevel.value;
- fetch("/api/camera/loglevel", {
- method: "POST",
- headers: {"Content-Type": "application/json"},
- body: JSON.stringify({level})
- })
- .then(async r => {
- if (!r.ok) throw new Error(await r.text());
- cameraLogLevel = level;
- })
- .catch(e => {
- logLevel.value = cameraLogLevel;
- });
- }
- function getCameraLogLevel() {
- fetch("/api/camera/loglevel")
- .then(async r => {
- if (!r.ok) throw new Error(await r.text());
- return r.json();
- })
- .then(d => {
- cameraLogLevel = d.log_level;
- logLevel.value = d.log_level;
- })
- .catch(e => {
- cameraLogLevel = "";
- logLevel.value = "";
- });
- }
- function downloadCameraLogFile() {
- const btn = event.currentTarget;
- btn.disabled = true;
- fetch("/api/camera/logfile")
- .then(async r => {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- const disposition = r.headers.get("Content-Disposition");
- let filename = "camera.log.tar.gz";
- if (disposition) {
- const match = disposition.match(/filename="?([^";]+)"?/);
- if (match) {
- filename = match[1];
- }
- }
- return {
- blob: await r.blob(),
- filename
- };
- })
- .then(({ blob, filename }) => {
- const url = URL.createObjectURL(blob);
- const a = document.createElement("a");
- a.href = url;
- a.download = filename;
- document.body.appendChild(a);
- a.click();
- a.remove();
- setTimeout(() => {
- URL.revokeObjectURL(url);
- }, 1000);
- alert("下载成功");
- })
- .catch(e => {
- console.error("download failed:", e);
- alert("下载失败: " + e.message);
- })
- .finally(() => {
- btn.disabled = false;
- btn.textContent = "下载";
- });
- }
- function restartCameraService() {
- if (!confirm("确定重启相机服务吗?")) {
- return;
- }
- const btn = event.currentTarget;
- btn.disabled = true;
- fetch("/api/camera/restart", {
- method: "POST"
- })
- .then(async r => {
- if (!r.ok) {
- throw new Error(await r.text());
- }
- logLevel.value = "info";
- cameraLogLevel = logLevel.value;
- disconnectLog();
- connectLog("yfkj-camera-capture.service", "text1");
- alert("重启成功");
- })
- .catch(e => {
- console.error("restart failed:", e);
- alert("重启失败: " + e.message);
- })
- .finally(() => {
- btn.disabled = false;
- });
- }
- function getCameraStatus() {
- setBtnStatus("btn1", false);
- setBtnStatus("btn2", false);
- setBtnStatus("btn3", false);
- setBtnStatus("btn4", false);
- fetch("/api/camera/status")
- .then(async r => {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- return r.json();
- })
- .then(data => {
- ["avar1","avar2","avar3","avar4","avar5", "avar6"]
- .forEach(id => setText(id, data[id]));
- })
- .catch(e => {
- console.error("getCameraStatus() failed:", e);
- ["avar1","avar2","avar3","avar4","avar5", "avar6"]
- .forEach(id => setText(id, null));
- })
- .finally(() => {
- setBtnStatus("btn1", true);
- setBtnStatus("btn2", true);
- setBtnStatus("btn3", true);
- setBtnStatus("btn4", true);
- });
- getCameraLogLevel();
- }
- function cameraPower(enable) {
- fetch("/api/camera/gpio22power", {
- method: "POST",
- headers: {
- "Content-Type": "application/json"
- },
- body: JSON.stringify({
- enable: enable
- })
- })
- .then(async r => {
- if (!r.ok) {
- throw new Error(await r.text());
- }
- return r.json();
- })
- .then(data => {
- if (data.ok) {
- setText("avar5", enable === "true" ? "🟢打开" : null);
- alert(enable === "true" ? "上电成功" : "断电成功");
- } else { // 目前后端不会这么返回,避免以后修改代码
- alert("操作失败");
- }
- })
- .catch(e => {
- alert("操作失败: " + e.message);
- });
- }
- function cameraPing() {
- fetch("/api/camera/pingGigeCamera", {method:"POST"})
- .then(r => r.json())
- .then(data => {
- setText("avar6", data.avar6);
- alert(data.avar6 === "🟢正常" ? "网口相机Ping测试成功" : "网口相机Ping测试失败");
- })
- .catch(() => {
- setText("avar6", null);
- alert("网口相机Ping测试失败");
- });
- }
- function initPage5() {
- getCameraStatus();
- connectLog("yfkj-camera-capture.service", "text1");
- }
- function exitPage5() {
- disconnectLog();
- }
|