diff --git a/sec-beidou/src/main/resources/templates/page/rtkrcv.html b/sec-beidou/src/main/resources/templates/page/rtkrcv.html index 6c5238f8..d73a0706 100644 --- a/sec-beidou/src/main/resources/templates/page/rtkrcv.html +++ b/sec-beidou/src/main/resources/templates/page/rtkrcv.html @@ -106,6 +106,8 @@ + + @@ -366,6 +368,7 @@ layui.use(['form','table','element','layer','transfer'], function(){ var rtkRunning = false; var rtkGnggaTimer = null; var cmdWs = null; + var cmdConnected = false; function connectRtkWs(){ if(rtkWs && rtkWs.readyState === WebSocket.OPEN) return; var curPath = window.document.location.href; @@ -428,7 +431,9 @@ layui.use(['form','table','element','layer','transfer'], function(){ }; } function closeRtkWs(){ if(rtkWs){ try{ rtkWs.close(); }catch(e){} rtkWs=null; } } - function connectCmdWs(){ if(cmdWs && cmdWs.readyState===WebSocket.OPEN) return; var cur=window.location.href; var pn=window.location.pathname; var pos=cur.indexOf(pn); var base=cur.substring(0,pos); var url=(base+"/websocket/cmdline").replace("http","ws"); cmdWs=new WebSocket(url); cmdWs.onmessage=function(e){ var msg=e.data||''; var did=$('#rtk-device').val(); var parts=msg.trim().split(/\s+/); if(parts[0]==='RX' && parts.length>3){ if(did && parts[3]!==did) return; } var ci=$('#cmd-info'); ci.text(ci.text()+msg+'\n'); var el=document.getElementById('cmd-info'); el.scrollTop=el.scrollHeight; }; cmdWs.onerror=function(){ layer.msg('通讯通道连接失败'); } } + function updateCmdBtn(){ var b=$('#btn-connect-cmd'); if(cmdConnected){ b.text('关闭设备通讯通道'); b.addClass('layui-btn-danger'); } else { b.text('连接设备通讯通道'); b.removeClass('layui-btn-danger'); } } + function connectCmdWs(){ if(cmdWs && cmdWs.readyState===WebSocket.OPEN) return; var cur=window.location.href; var pn=window.location.pathname; var pos=cur.indexOf(pn); var base=cur.substring(0,pos); var url=(base+"/websocket/cmdline").replace("http","ws"); cmdWs=new WebSocket(url); cmdWs.onopen=function(){ cmdConnected=true; updateCmdBtn(); }; cmdWs.onmessage=function(e){ var msg=e.data||''; var did=$('#rtk-device').val(); var parts=msg.trim().split(/\s+/); if(parts[0]==='RX' && parts.length>3){ if(did && parts[3]!==did) return; } var ci=$('#cmd-info'); ci.text(ci.text()+msg+'\n'); var el=document.getElementById('cmd-info'); el.scrollTop=el.scrollHeight; }; cmdWs.onclose=function(){ cmdConnected=false; updateCmdBtn(); }; cmdWs.onerror=function(){ layer.msg('通讯通道连接失败'); } } + function closeCmdWs(){ if(cmdWs){ try{ cmdWs.close(); }catch(e){} cmdWs=null; } } function startGnggaTimer(){ if(rtkGnggaTimer) clearInterval(rtkGnggaTimer); rtkGnggaTimer = setInterval(function(){ if(!rtkSelectedDevice) return; $.get('/rtk/gngga',{device_id: rtkSelectedDevice}, function(res){ if(res){ var gtxt = 'lat='+(res.lat!=null?res.lat:0)+', lon='+(res.lon!=null?res.lon:0)+', alt='+(res.alt!=null?res.alt:0)+', geo='+(res.geo!=null?res.geo:0); $('#rtk-gngga').text('GNGGA: '+gtxt); } }); }, 5000); } function stopGnggaTimer(){ if(rtkGnggaTimer){ clearInterval(rtkGnggaTimer); rtkGnggaTimer=null; } } @@ -506,13 +511,16 @@ layui.use(['form','table','element','layer','transfer'], function(){ }); } }); - $('#btn-connect-cmd').on('click', function(){ connectCmdWs(); layer.msg('已连接设备通讯通道'); }); + $('#btn-connect-cmd').on('click', function(){ if(!cmdConnected){ connectCmdWs(); layer.msg('已连接设备通讯通道'); } else { closeCmdWs(); layer.msg('已关闭设备通讯通道'); } }); function sendHexCmd(hex){ var dev=$('#rtk-device').val(); if(!dev){ layer.msg('请选择设备'); return; } $.ajax({ type:'POST', url:'/gnss/config_cmd', data:{ tx_win: hex, device_id: dev, cmd_type: 0, send_channel: 0 }, success:function(res){ if(res && res.code===0){ var ci=$('#cmd-info'); ci.text(ci.text()+(res.data||'')+'\n'); var el=document.getElementById('cmd-info'); el.scrollTop=el.scrollHeight; } else { layer.alert((res&&res.msg)||'发送失败'); } }, error:function(){ layer.alert('请求失败'); } }); } + function sendDebugCmd(content){ var dev=$('#rtk-device').val(); if(!dev){ layer.msg('请选择设备'); return; } $.ajax({ type:'POST', url:'/gnss/config_cmd', data:{ tx_win: content, device_id: dev, cmd_type: 3, send_channel: 0 }, success:function(res){ if(res && res.code===0){ var ci=$('#cmd-info'); ci.text(ci.text()+(res.data||'')+'\n'); var el=document.getElementById('cmd-info'); el.scrollTop=el.scrollHeight; } else { layer.alert((res&&res.msg)||'发送失败'); } }, error:function(){ layer.alert('请求失败'); } }); } $('#btn-cmd-open-rtcm').on('click', function(){ sendHexCmd('42 4b 51 45 26 02 00 0c 55 00 23 71 00 00 00 31 00 00 00 ff'); }); $('#btn-cmd-close-4065').on('click', function(){ sendHexCmd('42 4b e4 6b 26 02 00 0c 55 55 00 01 00 00 00 31 00 00 00 01'); }); $('#btn-cmd-msm4').on('click', function(){ sendHexCmd('42 4b 46 8e 26 02 00 0c 55 55 00 01 00 00 00 10 00 00 00 01'); }); $('#btn-cmd-save').on('click', function(){ sendHexCmd('42 4b cc 17 26 04 00 00'); }); + $('#btn-cmd-0102').on('click', function(){ sendDebugCmd('0102'); }); + $('#btn-cmd-0100').on('click', function(){ sendDebugCmd('0100'); }); var grRunning = false; function updateGrBtn(){ var b=$('#btn-gr-start'); if(grRunning){b.text('停止组定位').addClass('layui-btn-danger');} else {b.text('开始组定位').removeClass('layui-btn-danger');} } updateGrBtn();