物理沙盘

This commit is contained in:
zh
2025-11-14 09:42:30 +08:00
parent ce3c39031d
commit 4731610cdf
59 changed files with 1042 additions and 5644 deletions

View File

@ -3,7 +3,6 @@ import { getmainWindow } from "../../index";
let server;
let Store = require("electron-store");
let store = new Store();
import { logger } from "../log";
let sandTable_udp_server_port = "sandTable_udp_server_port";
function Init() {
if (server) {
@ -23,41 +22,60 @@ function Init() {
);
// logger.info(msg.toString())
// server.send('world', remoteInfo.port, remoteInfo.address)
// ['json','string']
let ModeIndex=1
try {
var s = JSON.parse(msg.toString());
let positions = [];
var str = msg.toString();
//角度
let angle = 45;
if (typeof s == "string") s = JSON.parse(s);
console.log(s);
if(ModeIndex==0){
let s=JSON.parse(str)
if (typeof s == "string") s = JSON.parse(s);
console.log(s);
// if(s.hasOwnProperty("Placemark")){
if (s.Placemark.hasOwnProperty("Point")) {
let arr = s.Placemark.Point.coordinates.split(",");
let position = {
lng: Number(arr[0]),
lat: Number(arr[1]),
alt: Number(arr[2]) || 0,
};
if (arr.length > 2) position.alt = arr[2];
if (arr.length > 3) angle = arr[3];
positions.push(position);
} else
{
let coordinates =
s.Placemark.Polygon.outerBoundaryIs.LinearRing.coordinates;
const parseCoordinates = (coords) => {
return coords.split(" ").map((pair) => {
const [lng, lat] = pair.split(",").map(Number);
return { lng, lat };
});
};
positions = parseCoordinates(coordinates);
}
getmainWindow().webContents.send(
sandTable_udp_server_port,
positions,
angle
);
}else if(ModeIndex==1){
// 点位码
let key=str.slice(0,-1)
// 反馈指令的后缀 K或G
let status=str.split(key)[1]
getmainWindow().webContents.send(
sandTable_udp_server_port+"_str",
key,
status
);
// if(s.hasOwnProperty("Placemark")){
if (s.Placemark.hasOwnProperty("Point")) {
let arr = s.Placemark.Point.coordinates.split(",");
let position = {
lng: Number(arr[0]),
lat: Number(arr[1]),
alt: Number(arr[2]) || 0,
};
if (arr.length > 2) position.alt = arr[2];
if (arr.length > 3) angle = arr[3];
positions.push(position);
} else {
let coordinates =
s.Placemark.Polygon.outerBoundaryIs.LinearRing.coordinates;
const parseCoordinates = (coords) => {
return coords.split(" ").map((pair) => {
const [lng, lat] = pair.split(",").map(Number);
return { lng, lat };
});
};
positions = parseCoordinates(coordinates);
}
getmainWindow().webContents.send(
sandTable_udp_server_port,
positions,
angle
);
// }else{
// console.log("内容不正确");
@ -69,12 +87,16 @@ function Init() {
server.on("error", (err) => {
console.log("server error", err);
});
console.log("port",port)
server.bind(port);
sendMsg("AFFG")
}
function sendMsg(val) {
let msg;
let port = store.get("sandTable_udp_client_port");
let port = store.get("sandTable_udp_client_port")||60000;
let ip = store.get("sandTable_udp_client_host");
server.send(val, port, ip);
return
let num = val.toString().split("");
let swit = Number(num.pop());
if (swit == 1 || swit == 0) {
@ -89,6 +111,7 @@ function sendMsg(val) {
let cntHex = cnt.toString(16);
let switHex = swit.toString(16);
const message = Buffer.from([cntHex, switHex], "hex");
console.log("message",message)
server.send(message, port, ip);
msg = "发送成功";
} else {
@ -117,6 +140,7 @@ function GetUdpServerPort() {
port = server_port;
}
let host = getHostIP();
console.log("GetUdpServerPort",port)
return { port, host };
}
function getHostIP() {