当前位置: 首页 > news >正文

北京开公司一年费用站群优化公司

北京开公司一年费用,站群优化公司,开发高端市场应该注意,网站优化排名方法目录 1.pom坐标2.控制层3.接口4.实现类-通过串口向设备发数据5.监听设备通过串口返回数据6.创建响应结果类ResponseResult 1.pom坐标 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xml… 目录 1.pom坐标2.控制层3.接口4.实现类-通过串口向设备发数据5.监听设备通过串口返回数据6.创建响应结果类ResponseResult 1.pom坐标 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.4.RELEASE/versionrelativePath/ /parentgroupIdcom.example/groupIdartifactIdrxtxcommon/artifactIdversion0.0.1-SNAPSHOT/versionnamerxtxcommon/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional/dependency!--websocket--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-websocket/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.20/versionscopeprovided/scope/dependency!--jSerialComm库串口通讯--dependencygroupIdcom.fazecast/groupIdartifactIdjSerialComm/artifactIdversion2.6.2/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build /project 2.控制层 import com.fazecast.jSerialComm.SerialPort; import com.example.rxtxcommon.entity.ResponseResult; import com.example.rxtxcommon.service.SerialPortService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.socket.WebSocketSession; import java.io.IOException; import java.util.ArrayList; import java.util.List;RestController RequestMapping(/serial) public class SerialController {Autowiredprivate SerialPortService serialPortService;public ListSerialPort serialPortList;public int countsend;public int countreceive;GetMapping(/discover)public ResponseResultListString discoverSerialPort() {ListSerialPort list1 serialPortService.discoverSerialPort();ListString list new ArrayList();serialPortList list1;list1.forEach(item - {list.add(item.getSystemPortName());});ResponseResultListString response new ResponseResult(list.size() 0 ? 500 : 1, , list);return response;}GetMapping(/open)public ResponseResultBoolean openSerialPort(SerialPort port1) {WebSocketSession session null;for (SerialPort port : serialPortList) {if (port.getSystemPortName().equals(COM10)) {return serialPortService.openSerialPort(port, session);}}return ResponseResult.getErrorResult(Failed to find port );}GetMapping(/send)public String sendData(SerialPort port1, String data) throws IOException {//发送数据注意提前与接收设备沟通好协议发送什么样类型的数据设备才可以进行响应否则设备无响应for (SerialPort port : serialPortList) {if (port.getSystemPortName().equals(COM10)) {serialPortService.sendData(port, data);}}return Data sent (countsend);}GetMapping(/close)public String closeSerialPort(SerialPort port1) {for (SerialPort port : serialPortList) {// 遍历串口列表并为每个串口设置参数serialPortService.closeSerialPort(port);}return Serial port closed;}}3.接口 import com.fazecast.jSerialComm.SerialPort; import com.example.rxtxcommon.entity.ResponseResult; import org.springframework.web.socket.WebSocketSession;import java.io.IOException; import java.util.List;public interface SerialPortService {ListSerialPort discoverSerialPort();boolean closeSerialPort(SerialPort port);void sendData(SerialPort port, String data) throws IOException;ResponseResultBoolean openSerialPort(SerialPort port, WebSocketSession session); }4.实现类-通过串口向设备发数据 import com.fazecast.jSerialComm.SerialPort; import com.example.rxtxcommon.config.DataListener; import com.example.rxtxcommon.entity.ResponseResult; import com.example.rxtxcommon.service.SerialPortService; import com.example.rxtxcommon.utils.ByteUtils; import org.springframework.stereotype.Service; import org.springframework.web.socket.WebSocketSession;import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.List;Service public class SerialPortServiceImp implements SerialPortService {public ListSerialPort serialPortList;Overridepublic ListSerialPort discoverSerialPort() {serialPortList Arrays.asList(SerialPort.getCommPorts());// 遍历串口列表并打印每个串口的名称for (SerialPort port : serialPortList) {System.out.println(获取串口: port.getSystemPortName());}return serialPortList;}//关闭串口Overridepublic boolean closeSerialPort(SerialPort port) {for (SerialPort portItem : serialPortList) {if (portItem.getSystemPortName().equals(COM10)) {if (portItem ! null) {System.out.println(断开端口 portItem.getSystemPortName() 连接);return portItem.closePort();}}}return false;}//发送数据到串口Overridepublic void sendData(SerialPort port, String data) throws IOException {byte[] buffer2 ByteUtils.hexStr2Byte(data);port.writeBytes(buffer2, buffer2.length);}Overridepublic ResponseResultBoolean openSerialPort(SerialPort port, WebSocketSession session) {if (port.getSystemPortName().equals(COM10)) {int baudRate 2400; // 波特率int parity SerialPort.EVEN_PARITY; // 校验位int dataBits 8; // 数据位int stopBits SerialPort.ONE_STOP_BIT; // 停止位if (port.openPort()) {try {boolean setComResult port.setComPortParameters(baudRate, dataBits, stopBits, parity); // 设置参数boolean setComTimes port.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 20000, 0); // 设置超时if (setComResult setComTimes) {port.addDataListener(new DataListener(port.getSystemPortName(), session));}} catch (Exception e) {e.printStackTrace();return ResponseResult.getErrorResult(Failed to open port port.getSystemPortName() e.getMessage().toString());}System.out.println(COM10 Serial port open 打开);return ResponseResult.getSuccessResult(COM10 Serial port open);} else {return ResponseResult.getErrorResult(Failed to open port port.getSystemPortName());}}return ResponseResult.getErrorResult(Failed to find port port.getSystemPortName());}}5.监听设备通过串口返回数据 import com.fazecast.jSerialComm.SerialPort; import com.fazecast.jSerialComm.SerialPortDataListener; import com.fazecast.jSerialComm.SerialPortEvent; import com.example.rxtxcommon.utils.ByteUtils; import lombok.SneakyThrows; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession;public class DataListener implements SerialPortDataListener {private WebSocketSession session;private String portName;//通过websocket打开监听设备的时候绑定session返回给前端数据public DataListener(String portName, WebSocketSession session) {this.portName portName;this.session session;}Overridepublic int getListeningEvents() {return SerialPort.LISTENING_EVENT_DATA_WRITTEN;}SneakyThrowsOverridepublic void serialEvent(SerialPortEvent event) {String hexString ;if (event.getEventType() SerialPort.LISTENING_EVENT_DATA_WRITTEN) {byte[] newData new byte[event.getSerialPort().bytesAvailable()];int numRead event.getSerialPort().readBytes(newData, newData.length);hexString ByteUtils.byteArrayToHexString(newData);}System.out.println(监听接收串口 portName ;数据 hexString);session.sendMessage(new TextMessage(hexString));} } 6.创建响应结果类ResponseResult import lombok.Data; import java.io.Serializable;Data public class ResponseResultT implements Serializable {/*** responseCode : 成功默认为1*/public static final int CODE_SUCCESS 1;/*** responseCode : 失败默认为500*/public static final int CODE_ERROR 500;private Integer code;private String message;private T data;public ResponseResult(Integer code, String message, T data) {this.code code;this.message message;this.data data;}public ResponseResult(Integer code, String message) {this.code code;this.message message;this.data data;}public static T ResponseResultT getSuccessResult(String message, T data) {return new ResponseResult(CODE_SUCCESS, message, data);}public static T ResponseResultT getSuccessResult(String message) {return new ResponseResult(CODE_SUCCESS, message);}public static T ResponseResultT getErrorResult(String message) {return new ResponseResult(CODE_ERROR, message);} }
http://www.pierceye.com/news/891615/

相关文章:

  • 彩票网站做一级代理犯法吗购物网站开发设计类图
  • 固镇做网站多少钱乐清网络公司哪家好
  • 绿色农业网站模板做网站有什么比较好看的动效
  • 百度aipage智能建站系统wordpress打印代码
  • 深圳招聘官网深圳搜索引擎优化推广便宜
  • 创建网站大约9377传奇
  • 单页面网站可以做自适应网站吗建筑设计培训
  • 做海报可以在哪些网站下载素材一键生成装修效果图app
  • 福田区住房和建设局官方网站wordpress仿凡客商城主题
  • 做下载网站用什么程序好深圳公司注册服务
  • 猎头网站模板济源专业网站建设(制作网站)
  • kotlin做网站单页应用网站
  • 邢台网站改版开发长沙教育网站开发
  • 网站开发人员必备技能网站背景图片自动切换
  • 企业网站建立策划书有网站吗给一个
  • 外贸建站有哪些公司建设主管部门网站查询
  • 泰安市网站建设广州优化公司哪家好
  • 手机网游传奇西安关键词优化平台
  • 网站建设公司权威机构3d虚拟人物制作软件
  • 北京网站建设seo公司哪家好阿里巴巴企业邮箱登录入口
  • 广州shopify代建站新产品代理
  • html5网站特点在线搜索引擎
  • 网站搭建服务平台网站备案 关闭网站
  • 高端建站收费标准宣传设计网站
  • 视频网站数据库设计手机企业网站设计
  • 广安发展建设集团有限公司门户网站竞价推广代运营服务
  • 济南mip网站建设公司山西住房建设厅网站
  • 兰州需要做网站的公司有哪些做词云的网站
  • 红酒公司网站建设模板6841如何通过网站获取qq
  • 写一张营销型网站页面多长时间微动漫怎么制作