欢迎来到天天文库
浏览记录
ID:38780463
大小:14.88 KB
页数:6页
时间:2019-06-19
《基于java的zigbee串口通讯的多线程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、importgnu.io.CommPortIdentifier;importgnu.io.PortInUseException;importgnu.io.SerialPort;importjava.io.BufferedInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.Enumeration;importjava.util.concurrent.CountDownLatch;importcom.serotoni
2、n.io.serial.SerialParameters;publicclassSerialCommcationimplementsRunnable{//对象的声明privateStringresult="";staticSerialPortserialPort;staticOutputStreamout;staticInputStreamin;StringportName=null;privatestaticintportID=2;privatefloatairtemperature;privatefloatairhumidity;privatefloatsoiltem
3、perature;privatefloatsoilmoisture;privatefloatwindvelocity;privatedoublerainfall;privateThreadmyThread;@Overridepublicvoidrun(){//TODOAuto-generatedmethodstub}publicSerialCommcation(){portName="COM"+portID;SerialParametersserialParameters=newSerialParameters();System.out.println("系统应用的端口为
4、:"+portName);//设定通讯的串行口serialParameters.setCommPortId(portName);//设定成无奇偶校验serialParameters.setParity(0);//设定数据位是8位serialParameters.setDataBits(8);//设定一个停止位serialParameters.setStopBits(1);serialParameters.setPortOwnerName("Numbnuts");//串行口上的波特率serialParameters.setBaudRate(9600);myThread=ne
5、wThread(){publicvoidrun(){while(true){update();closeSer();try{sleep(1);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblock//e.printStackTrace();System.out.println("InterruptedException"+e);}}}};myThread.start();}//读取串口数据privatesynchronizedvoidupdate(){//TODOAuto-generatedmethodst
6、ubtry{try{Enumeration>portList=CommPortIdentifier.getPortIdentifiers();CommPortIdentifierportId=null;while(portList.hasMoreElements()){portId=(CommPortIdentifier)portList.nextElement();if(portId.getName().equalsIgnoreCase("COM2")){serialPort=(SerialPort)portId.open("",2000);//open方法打开通讯
7、端口,得到一个CommPort对象,它使程序独占端口//System.out.print(serialPort);}}}catch(PortInUseExceptione){//TODO:handleexceptionSystem.out.println("PortInUseException"+e);}//用字节输入流in调用read()方法读出串口中的数据try{String[]recive=newString[55];Floattemp=null;while(true){in=newBufferedInputStream
此文档下载收益归作者所有