| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- var gnssLogLevel = "";
- function setGnssLogLevel() {
- var level = logLevel.value;
- fetch("/api/gnss/loglevel", {
- method: "POST",
- headers: { "Content-Type": "application/json" },
- body: JSON.stringify({ level: level }),
- })
- .then(function (r) {
- if (!r.ok) {
- return r.text().then(function (t) {
- throw new Error(t);
- });
- }
- gnssLogLevel = level;
- })
- .catch(function (e) {
- logLevel.value = gnssLogLevel;
- });
- }
- function getGnssLogLevel() {
- fetch("/api/gnss/loglevel")
- .then(function (r) {
- if (!r.ok) {
- return r.text().then(function (t) {
- throw new Error(t);
- });
- }
- return r.json();
- })
- .then(function (d) {
- gnssLogLevel = d.log_level;
- logLevel.value = d.log_level;
- })
- .catch(function (e) {
- gnssLogLevel = "";
- logLevel.value = "";
- });
- }
- function downloadGnssLogFile(event) {
- var btn = event.currentTarget;
- btn.disabled = true;
- fetch("/api/gnss/logfile")
- .then(function (r) {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- var disposition = r.headers.get("Content-Disposition");
- var filename = "gnss.log.tar.gz";
- if (disposition) {
- var match = disposition.match(/filename="?([^";]+)"?/);
- if (match) {
- filename = match[1];
- }
- }
- return r.blob().then(function (blob) {
- return { blob: blob, filename: filename };
- });
- })
- .then(function (res) {
- downloadBlobFile(res.blob, res.filename);
- alert("下载成功");
- })
- .catch(function (e) {
- console.error("download failed:", e);
- alert("下载失败: " + e.message);
- })
- .finally(function () {
- btn.disabled = false;
- btn.textContent = "下载";
- });
- }
- function restartGnssService(event) {
- if (!confirm("确定重启定位服务吗?")) {
- return;
- }
- var btn = event.currentTarget;
- btn.disabled = true;
- fetch("/api/gnss/restart", {
- method: "POST",
- })
- .then(function (r) {
- if (!r.ok) {
- return r.text().then(function (t) {
- throw new Error(t);
- });
- }
- alert("重启成功");
- })
- .catch(function (e) {
- console.error("restart failed:", e);
- alert("重启失败: " + e.message);
- })
- .finally(function () {
- btn.disabled = false;
- });
- }
- var gnssStatusTimer = null;
- function getGnssStatus() {
- fetch("/api/gnss/status")
- .then(function (r) {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- return r.json();
- })
- .then(function (data) {
- ["var1", "var2", "var3", "var5", "var6"].forEach(function (id) {
- setText(id, data[id], "page4");
- });
- // var1 为 {level,text} 状态对象或 "--" 字符串, 两者都表示无有效定位数据时显示 "--"
- var hasFix = data.var1 && typeof data.var1 === "object";
- if (!hasFix) {
- setText("var4", "--");
- } else {
- var located =
- data.var2 !== "" &&
- data.var3 !== "" &&
- data.var2 !== "--" &&
- data.var3 !== "--";
- setText("var4", located ? "已定位" : "定位中", "page4");
- }
- })
- .catch(function (e) {
- console.error("getGnssStatus() failed:", e);
- ["var1", "var2", "var3", "var4", "var5", "var6"].forEach(function (id) {
- setText(id, null, "page4");
- });
- });
- getGnssLogLevel();
- }
- function startGnssStatusRefresh() {
- if (gnssStatusTimer) {
- return;
- }
- getGnssStatus();
- gnssStatusTimer = setInterval(function () {
- getGnssStatus();
- }, 5000);
- }
- function stopGnssStatusRefresh() {
- if (gnssStatusTimer) {
- clearInterval(gnssStatusTimer);
- gnssStatusTimer = null;
- }
- }
- function initPage4() {
- startGnssStatusRefresh();
- connectLog("yfkj-gnss.service", "text1");
- }
- function exitPage4() {
- stopGnssStatusRefresh();
- disconnectLog();
- }
|