feat: 新增 NtripCaster 数据流推送控制
This commit is contained in:
parent
00fa3171ab
commit
a5d76073f6
@ -64,6 +64,8 @@ public class GnssDevice {
|
|||||||
private Double iposn; //初始位置
|
private Double iposn; //初始位置
|
||||||
private Double iposd; //初始位置
|
private Double iposd; //初始位置
|
||||||
|
|
||||||
|
private Boolean forward_to_ntrip; // 是否转发至NtripCaster,默认false
|
||||||
|
|
||||||
private Double ecefx;
|
private Double ecefx;
|
||||||
private Double ecefy;
|
private Double ecefy;
|
||||||
private Double ecefz;
|
private Double ecefz;
|
||||||
|
|||||||
@ -119,9 +119,12 @@ public class D331RtcmMessageExecutor implements Executor<D331RtcmMessage, Void>
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 添加NTRIP处理
|
// 添加NTRIP处理
|
||||||
byte[] srcdata = message.getSrcData();
|
|
||||||
String rtcm = ByteUtil.bytesToHexString(srcdata);
|
if(deviceBs.getForwardToNtrip()) {
|
||||||
sendToNtrip(id, rtcm);
|
byte[] srcdata = message.getSrcData();
|
||||||
|
String rtcm = ByteUtil.bytesToHexString(srcdata);
|
||||||
|
sendToNtrip(id, rtcm);
|
||||||
|
}
|
||||||
|
|
||||||
ThreadManager.getFixedThreadPool().submit(() -> {
|
ThreadManager.getFixedThreadPool().submit(() -> {
|
||||||
// 原始码流输出到日志文件 -- INFO 级别
|
// 原始码流输出到日志文件 -- INFO 级别
|
||||||
|
|||||||
@ -20,6 +20,8 @@ public class UdpNtripServer {
|
|||||||
private final Logger logger = LoggerFactory.getLogger(UdpNtripServer.class);
|
private final Logger logger = LoggerFactory.getLogger(UdpNtripServer.class);
|
||||||
@Value("${ntrip_server.port:9903}")
|
@Value("${ntrip_server.port:9903}")
|
||||||
private Integer port;
|
private Integer port;
|
||||||
|
@Value("${ntrip_server.host:localhost}")
|
||||||
|
private String host;
|
||||||
private DatagramSocket socket;
|
private DatagramSocket socket;
|
||||||
private DatagramPacket outPacket;
|
private DatagramPacket outPacket;
|
||||||
|
|
||||||
@ -33,7 +35,7 @@ public class UdpNtripServer {
|
|||||||
try{
|
try{
|
||||||
//随机端口
|
//随机端口
|
||||||
if(socket == null) socket = new DatagramSocket();
|
if(socket == null) socket = new DatagramSocket();
|
||||||
if(outPacket == null) outPacket = new DatagramPacket(new byte[0],0, InetAddress.getByName("localhost"),port);
|
if(outPacket == null) outPacket = new DatagramPacket(new byte[0],0, InetAddress.getByName(host),port);
|
||||||
outPacket.setData(encode(ByteUtil.addBytes(mount.getBytes(), ByteUtil.hexStringTobyte(hexRtcm))));
|
outPacket.setData(encode(ByteUtil.addBytes(mount.getBytes(), ByteUtil.hexStringTobyte(hexRtcm))));
|
||||||
socket.send(outPacket);
|
socket.send(outPacket);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
|
|||||||
@ -80,7 +80,8 @@ public class Device {
|
|||||||
|
|
||||||
// 日志记录控制
|
// 日志记录控制
|
||||||
Short loggingmode;
|
Short loggingmode;
|
||||||
|
// NtripCaster 推送控制
|
||||||
|
Boolean forwardToNtrip = false;
|
||||||
int lastRxHead = 0;
|
int lastRxHead = 0;
|
||||||
|
|
||||||
int fixedNum = 0;
|
int fixedNum = 0;
|
||||||
|
|||||||
@ -51,6 +51,7 @@ public class LocalDeviceServiceImpl implements DeviceService {
|
|||||||
device.setEcefy(gnssDevice.getEcefy());
|
device.setEcefy(gnssDevice.getEcefy());
|
||||||
device.setEcefz(gnssDevice.getEcefz());
|
device.setEcefz(gnssDevice.getEcefz());
|
||||||
device.setLoggingmode(gnssDevice.getLoggingmode());
|
device.setLoggingmode(gnssDevice.getLoggingmode());
|
||||||
|
device.setForwardToNtrip(gnssDevice.getForward_to_ntrip());
|
||||||
return device;
|
return device;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -72,6 +72,7 @@ CREATE TABLE IF NOT EXISTS `gnssdevices` (
|
|||||||
`has_battery` bit(1) DEFAULT 0 COMMENT '是否内置电池',
|
`has_battery` bit(1) DEFAULT 0 COMMENT '是否内置电池',
|
||||||
`change_flag` int DEFAULT 0 COMMENT '参数改变标识',
|
`change_flag` int DEFAULT 0 COMMENT '参数改变标识',
|
||||||
`voltage_factor` tinyint DEFAULT NULL COMMENT '分压比',
|
`voltage_factor` tinyint DEFAULT NULL COMMENT '分压比',
|
||||||
|
`forward_to_ntrip` bit(1) DEFAULT 0 COMMENT '用于判断是否发送到NtripCaster',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
|||||||
@ -147,6 +147,7 @@
|
|||||||
{field: 'tenantname', title: '所属组织', width: 120},
|
{field: 'tenantname', title: '所属组织', width: 120},
|
||||||
{field: 'fwd_group_id', title: '推送组', width: 80},
|
{field: 'fwd_group_id', title: '推送组', width: 80},
|
||||||
{field: 'fwd_group_id2', title: '推送2', width: 80},
|
{field: 'fwd_group_id2', title: '推送2', width: 80},
|
||||||
|
{field: 'forward_to_ntrip', title: '发送至NtripCaster', width: 120, templet: '#ntripTrans'},
|
||||||
{field: 'opmode', title: '使用状态', width: 80,templet: '#modeTrans'},
|
{field: 'opmode', title: '使用状态', width: 80,templet: '#modeTrans'},
|
||||||
{field: 'syn', title: '参数同步', width: 80,templet: '#synTrans'},
|
{field: 'syn', title: '参数同步', width: 80,templet: '#synTrans'},
|
||||||
{field: 'model', title: '型号', width: 80,templet: "<div>{{d.model==0?'G505':'G510'}}</div>"},
|
{field: 'model', title: '型号', width: 80,templet: "<div>{{d.model==0?'G505':'G510'}}</div>"},
|
||||||
@ -289,5 +290,13 @@
|
|||||||
{{# } }}
|
{{# } }}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<script type="text/html" id="ntripTrans">
|
||||||
|
{{# if(d.forward_to_ntrip == false){ }}
|
||||||
|
<span class="layui-badge layui-bg-gray">否</span>
|
||||||
|
{{# } else { }}
|
||||||
|
<span class="layui-badge layui-bg-green">是</span>
|
||||||
|
{{# } }}
|
||||||
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -127,6 +127,15 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label">推送至NtripCaster</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<select name="forward_to_ntrip" id="forward_to_ntrip" th:field="*{forward_to_ntrip}" lay-search="">
|
||||||
|
<option value="false">否</option>
|
||||||
|
<option value="true">是</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
@ -193,6 +202,7 @@
|
|||||||
<input type="text" name="fwddeviceid" id="fwddeviceid" th:field="*{fwddeviceid}" class="layui-input">
|
<input type="text" name="fwddeviceid" id="fwddeviceid" th:field="*{fwddeviceid}" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user