上海郢昱
8 小时以前 0d9956362ef415d0b49318746e9a2ef955dcfebd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package com.hwtd.mes.collect.dto;
 
import lombok.Data;
 
/**
 * 串口参数,由接口传入(不传的字段使用默认值)。
 * <p>
 * 采集接口 {@code /lims/getFile?fileExtension=.serialPort} 和 {@code /lims/openSerialPort} 都支持这些参数,
 * 例如:{@code /lims/openSerialPort?listenName=COM7&baudRate=19200&dataBits=8&stopBits=1&parity=NONE&endMark=*&maxCount=6}
 */
@Data
public class SerialPortDTO {
 
    /** 默认波特率 */
    public static final int DEFAULT_BAUD_RATE = 9600;
    /** 默认数据位 */
    public static final int DEFAULT_DATA_BITS = 8;
    /** 默认停止位 */
    public static final int DEFAULT_STOP_BITS = 1;
    /** 默认校验位 */
    public static final String DEFAULT_PARITY = "NONE";
    /** 默认流控 */
    public static final String DEFAULT_FLOW_CONTROL = "NONE";
    /** 默认读取超时(毫秒) */
    public static final int DEFAULT_READ_TIMEOUT = 1000;
    /** 默认结束标志 */
    public static final String DEFAULT_END_MARK = "*";
    /** 默认单轮采集条数上限 */
    public static final int DEFAULT_MAX_COUNT = 1;
    /** 默认帧空闲补帧时间(毫秒) */
    public static final int DEFAULT_FRAME_IDLE_MILLIS = 200;
 
    /** 串口名称,如 COM12;必传,不传会返回“串口名称不能为空” */
    private String serialPortName;
 
    /** 波特率,默认 9600 */
    private Integer baudRate = DEFAULT_BAUD_RATE;
 
    /** 数据位 5~8,默认 8 */
    private Integer dataBits = DEFAULT_DATA_BITS;
 
    /** 停止位 1、2、3(1.5 位),默认 1 */
    private Integer stopBits = DEFAULT_STOP_BITS;
 
    /** 校验位:NONE/ODD/EVEN/MARK/SPACE(不区分大小写),也兼容 0~4 的数字,默认 NONE */
    private String parity = DEFAULT_PARITY;
 
    /** 流控:NONE/RTS_CTS/XON_XOFF(不区分大小写),也兼容数字常量,默认 NONE */
    private String flowControl = DEFAULT_FLOW_CONTROL;
 
    /** 读取超时(毫秒),默认 1000 */
    private Integer readTimeout = DEFAULT_READ_TIMEOUT;
 
    /** 一帧数据的结束标志,默认 *;特殊字符可用 URL 编码传入,如换行 %0A */
    private String endMark = DEFAULT_END_MARK;
 
    /** 数据缓存队列长度,默认 6;队列满时插入最新一条、移除最旧一条,接口最多返回 maxCount 条数据 */
    private Integer maxCount = DEFAULT_MAX_COUNT;
 
    /**
     * 帧空闲补帧时间(毫秒),默认 200:
     * 设备发完一帧后超过该时间没有新数据,就把接收缓冲区里剩下的数据当作一帧取出来,
     * 避免设备最后一帧没有结束标志时被漏掉;设为 0 表示关闭空闲补帧,只按结束标志切帧。
     */
    private Integer frameIdleMillis = DEFAULT_FRAME_IDLE_MILLIS;
}