motetransceiver.java

来自「在Mote节点与主机实现互联的前提下」· Java 代码 · 共 82 行

JAVA
82
字号
package com.mars.net;

import java.io.*;
import com.mars.tools.TypeTransformer;

public class MoteTransceiver {
	
	MoteConnector mConn;
	InputStream receiver;
	OutputStream sender;
	MotePacket packet;
	
	public MoteTransceiver(){
		
		mConn=new MoteConnector();
		packet=new MotePacket();
		if(mConn!=null){
			receiver=mConn.getInputStream();
			sender=mConn.getOutputStream();
		}
	}
	
	public void reset(){//将包清空
		packet.reset();
	}
	
	public void receivePacket(){
		
		int elem=0;
		boolean isEnd=true;
		
		try{
			while((elem=receiver.read())!=-1){

				if(isEnd){
					if(elem==126){
						isEnd=false;
						packet.genPacket(new Integer(elem));
					}
				}
				else{
					packet.genPacket(new Integer(elem));
					if(elem==126){
						if(packet.getSize()==2){
							packet.removeElement(0);
						}
						else{
							isEnd=true;
							if(packet.verify()){
								System.out.println("=============================");
								packet.showPacket();
								System.out.println("*****************************");
								System.out.println(TypeTransformer.getStringPacket(packet));
								System.out.println("=============================");
							}
							else{
								System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
								System.out.println("报文错误,已经丢弃");
								System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
								
							}
							packet.reset();
						}
					}
				}
			}
		}
		catch(IOException ex){
			System.out.println("receivePacket() IO错误!");
			ex.printStackTrace();
		}
	}
	
	public void sendPacket(){
		
	}
	
	public void sendID(int id){
		
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?