packageClientDemo;importgnu.io.CommPort;importgnu.io.CommPortIdentifier;importgnu.io.NoSuchPortException;importgnu.io.PortInUseException;importgnu.io.SerialPort;importgnu.io.SerialPortEvent;importgnu.io.SerialPortEventListener;importgnu.io.UnsupportedCommOperationException;import staticcom.jeecg.common.DateUtil.getNowDate;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.text.DecimalFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.Enumeration;importjava.util.HashMap;importjava.util.HashSet;importjava.util.Iterator;importjava.util.List;importjava.util.Observable;importjava.util.TooManyListenersException;importorg.apache.log4j.Logger;importorg.jeecgframework.web.system.service.SystemService;importorg.springframework.beans.factory.annotation.Autowired;importcom.jeecg.pdwsn.entity.ChannelsEntity;importcom.jeecg.pdwsn.entity.DataEntity;importcom.jeecg.pdwsn.entity.DevicesEntity;importcom.jeecg.pdwsn.entity.SensorsEntity;importcom.jeecg.pdwsn.entity.WarningEntity;importcom.jeecg.pdwsn.service.DevicesServiceI;importcom.jeecg.pdwsn.service.SensorsServiceI;importcom.jeecg.pdwsn.service.impl.DevicesServiceImpl;public class serialReader extends Observable implementsRunnable,
SerialPortEventListener {private static final Logger logger = Logger.getLogger(DevicesServiceImpl.class);staticCommPortIdentifier portId;int delayRead = 100;int numBytes; // private static byte[] readBuffer = new byte[1024]; //
//private static char[] readBuffer = new char[1024];
staticEnumeration portList;
InputStream inputStream;
OutputStream outputStream;staticSerialPort serialPort;
HashMap serialParams;
Thread readThread;boolean isOpen = false;public static final String PARAMS_DELAY = "delay read"; // public static final String PARAMS_TIMEOUT = "timeout"; //超时时间
public static final String PARAMS_PORT = "port name"; //端口名称
public static final String PARAMS_DATABITS = "data bits"; // public static final String PARAMS_STOPBITS = "stop bits"; // public static final String PARAMS_PARITY = "parity"; //奇偶校验
public static final String PARAMS_RATE = "rate"; // private HashMapmap;public booleanisOpen() {returnisOpen;
}/*** 初始化端口操作的参数.
*
*@throwsSerialPortException
*
*@see
*/
publicserialReader() {
isOpen= false;
}public void open(HashMap params) throwsNoSuchPortException,
PortInUseException, IOException, UnsupportedCommOperationException,
TooManyListenersException {
serialParams=params;if(isOpen) {
close();
}/*try {*/
//参数初始
int timeout =Integer.parseInt(serialParams.get(PARAMS_TIMEOUT)
.toString());int rate =Integer.parseInt(serialParams.get(PARAMS_RATE)