📄 serialportutil.java
字号:
package com.zcsoft.comm;/** * <p>Title: 串口通信</p> * <p>Description: 串口通信实验</p> * <p>Copyright: Copyright (c) 2004-2005</p> * <p>Company: Zhicheng Software&Service Co. Ltd.</p> * @author 蒋智湘 * @version 1.0 */import java.util.StringTokenizer;import javax.comm.*;/** * 串口配置分析工具类 * */public class SerialPortUtil{ /** * 将用单一字符串表示的串口配置参数构建成一个SerialPortParam对象 * * @param configureString 如下格式的字符串:波特率,数据位,检验方式,停止位,接收方式[,接收方式对应的配置值] * 其中接收方式有:FIX_LENGTH,FIX_TERMINAL,FIX_DURATION,FREE * 检验方式有:none,odd,even,mark,space 这些值的大小写敏感。 * 停止位有:1,2,3 其中3表示规范中的1.5 * 数据位有:5,6,7,8 */ public static SerialPortParam configFromString(String configureString) { StringTokenizer st = new StringTokenizer(configureString, ", "); try { String baudRate = st.nextToken() , dataBits = st.nextToken() , parity = st.nextToken() , stopBits = st.nextToken() , receiveMethod = st.nextToken(); SerialPortParam spp = new SerialPortParam(); spp.setBaudRate(Integer.parseInt(baudRate)); spp.setDataBits(Integer.parseInt(dataBits)); spp.setParity(parceParity(parity)); spp.setStopBits(Integer.parseInt(stopBits)); spp.setReceiveMethod(parceReceiveMethod(receiveMethod)); if (!SerialPortParam.METHOD_FREE.equals(spp.getReceiveMethod())) { spp.setMethodParam(st.nextToken()); } return spp; } catch(Exception ex) { System.err.println(ex); throw new IllegalArgumentException(configureString); } } /** * 将用字符串表示的校验方式转换成串口通信程序可识别的整数形式的校验方式代码 * @param strParity 校验方式的字符串表示:none,odd,even,mark或space。 * @return 校验方式的整数表示。如果strParity不在如上枚举的5类值,则当成none处理。 * */ public static int parceParity(String strParity) { int intParity; if ("odd".equals(strParity)) { intParity = SerialPort.PARITY_ODD; } else if ("even".equals(strParity)) { intParity = SerialPort.PARITY_EVEN; } else if ("mark".equals(strParity)) { intParity = SerialPort.PARITY_MARK; } else if ("space".equals(strParity)) { intParity = SerialPort.PARITY_SPACE; } else { intParity = SerialPort.PARITY_NONE; } return intParity; } /** * 将用字符串表示的接收方式转换成可被串口接收程序识别的内部表示 * @param FIX_LENGTH,FIX_TERMINAL,FIX_DURATION或FREE * @param SerialPortParam类中定义的接收方式类变量。如果receiveMethod不在如上枚举的4类值中,则当成FREE处理 */ public static Integer parceReceiveMethod(String receiveMethod) { Integer ret; if ("FIX_LENGTH".equals(receiveMethod)) { ret = SerialPortParam.METHOD_FIX_LENGTH; } else if ("FIX_TERMINAL".equals(receiveMethod)) { ret = SerialPortParam.METHOD_FIX_TERMINAL; } else if ("FIX_DURATION".equals(receiveMethod)) { ret = SerialPortParam.METHOD_FIX_DURATION; } else { ret = SerialPortParam.METHOD_FREE; } return ret; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -