src/main/java/com/zy/asrs/controller/MonitorController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/ServerBootstrap.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/LedThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/monitor/js/monitor.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/monitor/monitor.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -12,8 +12,12 @@ import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.protocol.CrnProtocol; import com.zy.core.thread.LedThread; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; import java.util.*; @@ -93,20 +97,22 @@ } } // int totalWrk = reportQueryMapper.getTotalWrkByCrnId(crnId); // int totalLoc = reportQueryMapper.getTotalLocByCrnId(); // 获取输送线plc线程 LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, crnId); String ledContent = ledThread.getStringBuffer().toString(); ledContent = "ask的模块萨满大算了萨满大了\n 是窘境到埃及嗲家嗲\n 萨达姆打开萨满大凯撒麦当劳萨满大老师"; return R.ok( Cools.add("xSpeed", Arith.multiplys(1, Math.abs(xSpeed), 1)) // 行走速度 .add("ySpeed", Arith.multiplys(1, Math.abs(ySpeed), 1)) // 升降速度 .add("zSpeed", Arith.multiplys(1, Math.abs(zSpeed), 1)) // 叉牙速度 .add("forkPos", forkPos) // 叉牙速度 // .add("totalLoc", totalLoc) // 总库位数 // .add("totalWrk", totalWrk) // 总任务数 .add("xDistance", Arith.multiplys(1, Math.abs(xDistance), 1)) // 累计走行距离km .add("yDistance", Arith.multiplys(1, Math.abs(yDistance), 1)) // 累计升降距离km .add("xDuration", Arith.multiplys(1, Math.abs(xDuration), 1)) // 累计走行时长h .add("yDuration", Arith.multiplys(1, Math.abs(yDuration), 1)) // 累计升降时长h .add("isShow", !Cools.isEmpty(ledContent)) // 是否显示内容 .add("content", ledContent) // 显示内容 ); } src/main/java/com/zy/core/ServerBootstrap.java
@@ -5,6 +5,7 @@ import com.zy.core.enums.SlaveType; import com.zy.core.model.CrnSlave; import com.zy.core.model.DevpSlave; import com.zy.core.model.LedSlave; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.*; import lombok.extern.slf4j.Slf4j; @@ -104,12 +105,12 @@ SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread); } // 初始化LED线程 // log.info("初始化LED线程..................................................."); // for (LedSlave led : slaveProperties.getLed()) { // LedThread ledThread = new LedThread(led); // new Thread(ledThread).start(); // SlaveConnection.put(SlaveType.Led, led.getId(), ledThread); // } log.info("初始化LED线程..................................................."); for (LedSlave led : slaveProperties.getLed()) { LedThread ledThread = new LedThread(led); new Thread(ledThread).start(); SlaveConnection.put(SlaveType.Led, led.getId(), ledThread); } // 初始化台车线程 log.info("初始化台车线程..................................................."); for (Slave car : slaveProperties.getCar()) { src/main/java/com/zy/core/thread/LedThread.java
@@ -39,6 +39,9 @@ private Set<Integer> workNos = new HashSet<>(); private boolean resetStatus = false; // 复位状态 // 显示器 private StringBuffer stringBuffer = new StringBuffer(); public LedThread(Slave slave) { this.slave = slave; try { @@ -54,7 +57,7 @@ @Override @SuppressWarnings({"InfiniteLoopStatement", "unchecked"}) public void run() { connect(); // connect(); while (true) { try { Task task = MessageQueue.poll(SlaveType.Led, slave.getId()); @@ -73,7 +76,7 @@ } } Thread.sleep(3000); Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } @@ -102,56 +105,73 @@ private void write(List<LedCommand> list) throws Bx5GException { pf = new ProgramBxFile( 0, screen.getProfile()); pf.setFrameShow(false); // 分别输入X,Y,width,height area = new TextCaptionBxArea( 0,0,192,128,screen.getProfile()); // 创建一个数据页 TextBxPage page = new TextBxPage(); // pf = new ProgramBxFile( 0, screen.getProfile()); // pf.setFrameShow(false); // // 分别输入X,Y,width,height // area = new TextCaptionBxArea( 0,0,192,128,screen.getProfile()); // // 创建一个数据页 // TextBxPage page = new TextBxPage(); // for (LedCommand command : list) { // page.newLine(command.getTitle() +"("+command.getWorkNo()+")"); // page.newLine("源库位:"+command.getSourceLocNo()); // page.newLine("目标站:"+command.getStaNo()); // if (!command.isEmptyMk()) { // for (MatDto matDto : command.getMatDtos()) { // page.newLine(matDto.getMaknx() + "【数量" + matDto.getCount() +"】"); // } // } // page.newLine("\n"); // } // // // 设置字体 // page.setFont(new Font("宋体",Font.PLAIN,12)); // // 设置显示特技为快速打出 // page.setDisplayStyle(styles[6]); // area.clearPages(); // area.addPage(page); // pf.addArea(area); // // 更新节目 // screen.writeProgram(pf); // resetStatus = false; StringBuilder sb = new StringBuilder(); for (LedCommand command : list) { page.newLine(command.getTitle() +"("+command.getWorkNo()+")"); page.newLine("源库位:"+command.getSourceLocNo()); page.newLine("目标站:"+command.getStaNo()); sb.append(command.getTitle() +"("+command.getWorkNo()+")"); sb.append("源库位:"+command.getSourceLocNo()); sb.append("目标站:"+command.getStaNo()); if (!command.isEmptyMk()) { for (MatDto matDto : command.getMatDtos()) { page.newLine(matDto.getMaknx() + "【数量" + matDto.getCount() +"】"); sb.append(matDto.getMaknx() + "【数量" + matDto.getCount() +"】"); } } page.newLine("\n"); sb.append("\n"); } // 设置字体 page.setFont(new Font("宋体",Font.PLAIN,12)); // 设置显示特技为快速打出 page.setDisplayStyle(styles[6]); area.clearPages(); area.addPage(page); pf.addArea(area); // 更新节目 screen.writeProgram(pf); resetStatus = false; stringBuffer.delete(0, stringBuffer.length()); stringBuffer.append(sb.toString()); } private void reset() throws Bx5GException { if (!resetStatus) { pf = new ProgramBxFile( 0, screen.getProfile()); pf.setFrameShow(false); // 分别输入X,Y,width,height area = new TextCaptionBxArea( 0,0,192,128,screen.getProfile()); // 创建一个数据页 TextBxPage page = new TextBxPage(); page.newLine("广德中扬物流装备有限公司"); page.newLine("自动化立体仓库"); page.newLine("浙江中扬物流装备有限公司"); // 设置字体 page.setFont(new Font("宋体",Font.PLAIN,12)); // 设置显示特技为快速打出 page.setDisplayStyle(styles[6]); area.clearPages(); area.addPage(page); pf.addArea(area); // 更新节目 screen.writeProgram(pf); // pf = new ProgramBxFile( 0, screen.getProfile()); // pf.setFrameShow(false); // // 分别输入X,Y,width,height // area = new TextCaptionBxArea( 0,0,192,128,screen.getProfile()); // // 创建一个数据页 // TextBxPage page = new TextBxPage(); // page.newLine("广德中扬物流装备有限公司"); // page.newLine("自动化立体仓库"); // page.newLine("浙江中扬物流装备有限公司"); // // 设置字体 // page.setFont(new Font("宋体",Font.PLAIN,12)); // // 设置显示特技为快速打出 // page.setDisplayStyle(styles[6]); // area.clearPages(); // area.addPage(page); // pf.addArea(area); // // 更新节目 // screen.writeProgram(pf); stringBuffer.delete(0, stringBuffer.length()); resetStatus = true; } } src/main/resources/application.yml
@@ -102,12 +102,12 @@ ip: 192.168.10.150 port: 51236 # LED1 # led[0]: # id: 1 # ip: 192.168.10.61 # port: 5005 # devpPlcId: ${wcs-slave.devp[0].id} # staArr: 1,2 led[0]: id: 1 ip: 192.168.10.61 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 2 # 磅称 # scale[0]: # id: 1 src/main/webapp/views/monitor/js/monitor.js
@@ -73,6 +73,17 @@ // crnChartOption.series[3].data[0].value = (Math.random()*2).toFixed(2) - 0; crnChart.setOption(crnChartOption); // 中下 if (res.data.isShow) { $('#banner').hide(); $('#led-content').show(); $('#led-p-content').text(res.data.content); } else { $('#led-content').hide(); $('#banner').show(); $('#led-p-content').text(""); } } else if (res.code === 403){ parent.location.href = baseUrl+"/login"; } else { src/main/webapp/views/monitor/monitor.html
@@ -80,6 +80,14 @@ } } #led-content { display: none; } #led-p-content { padding: 20px 40px; font-size: 35px; font-weight: bold } </style> </head> @@ -195,18 +203,12 @@ <div class="speed-content"> <div id="crn-chart" class="speed-chart"> </div> <!-- <div id="xSpeed-chart" class="speed-chart">--> <!--<!– <span>堆垛机走行速度:</span><span id="xSpeed" class="counter">5.00</span><span>米/秒</span>–>--> <!-- </div>--> <!-- <div id="ySpeed-chart" class="speed-chart">--> <!--<!– <span>堆垛机升降速度:</span><span id="ySpeed" class="counter">5.00</span><span>米/秒</span>–>--> <!-- </div>--> </div> </div> <!-- 中下 --> <div class="scroll-pane"> <div class="layui-carousel" id="test1"> <div class="layui-carousel" id="banner"> <div carousel-item> <div class="item-img" id="img-1" style="background-color: red"></div> <div class="item-img" id="img-2" style="background-color: gold"></div> @@ -214,6 +216,10 @@ <div class="item-img" id="img-4" style="background-color: white"></div> <div class="item-img" id="img-5" style="background-color: darkgoldenrod"></div> </div> </div> <div id="led-content"> <pre id="led-p-content"></pre> </div> <!-- <!– 中左 –>--> @@ -368,7 +374,7 @@ var element = layui.element; // 轮播图 carousel.render({ elem: '#test1' elem: '#banner' ,width: '100%' //设置容器宽度 ,arrow: 'hover' // 切换箭头默认显示状态,可选值为 hover(悬停显示) always(始终显示) none(始终不显示) ,interval: '3000' // 自动切换的时间间隔,单位:ms(毫秒),不能低于800