All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.rapplogic.xbee.test.OpenCloseConnectionsTest Maven / Gradle / Ivy

package com.rapplogic.xbee.test;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import com.rapplogic.xbee.api.AtCommand;
import com.rapplogic.xbee.api.XBee;
import com.rapplogic.xbee.api.XBeeException;

/**
 * Tests opening and closing connections to the radio
 * 
 * @author andrew
 *
 */
public class OpenCloseConnectionsTest {

	private final static Logger log = Logger.getLogger(OpenCloseConnectionsTest.class);
	
	private XBee xbee = new XBee();
	
	public static void main(String[] args) throws XBeeException, InterruptedException {
		PropertyConfigurator.configure("log4j.properties");
		new OpenCloseConnectionsTest();
	}

	public OpenCloseConnectionsTest() throws XBeeException, InterruptedException {
		
		// series 1
		String device = "/dev/tty.usbserial-A4004Rim";
		// series 2
//		String device = "/dev/tty.usbserial-A6005v5M";
		
		log.info("opening connection");
		
//		xbee.setStartupChecks(false);
		
		// first connect directly to end device and configure.  then comment out configureXXX methods and connect to coordinator
		xbee.open(device, 9600);
		
		if (!xbee.isConnected()) throw new RuntimeException("Should be connected");
		
		try {
			log.info("attempting duplicate open");
			xbee.open(device, 9600);
			throw new RuntimeException("fail -- already open");
		} catch (Exception e) {
			log.debug("Expected", e);
		}
		
		log.info("sending channel command");
		
		if (!xbee.sendAtCommand(new AtCommand("CH")).isOk()) throw new RuntimeException("fail");
		log.info("closing connection");
		xbee.close();
		
		if (xbee.isConnected()) {
			throw new RuntimeException("Should be disconnected");
		}
		
		try {
			log.info("sending at command, but we're disconnected");
			xbee.sendAtCommand(new AtCommand("CH")).isOk();
			throw new RuntimeException("Should be disconnected");
		} catch (Exception e) {
			log.debug("Expected", e);
		}
		
		log.info("reconnecting");
		xbee.open(device, 9600);
		if (!xbee.sendAtCommand(new AtCommand("CH")).isOk()) throw new RuntimeException("fail");
		
		log.info("closing conn");
		xbee.close();
		
		try {
			log.info("try duplicate close");
			xbee.close();
			throw new RuntimeException("Already closed");
		} catch (Exception e) {
			log.debug("Expected", e);
		}
	}	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy