Difference between revisions of "Sirit Example Client RAPID"
From RifidiWiki
| Line 1: | Line 1: | ||
| − | |||
| This class shows how to create a program to talk to the Sirit INfinity 510 reader with the use of Sirit's RAPID API. | This class shows how to create a program to talk to the Sirit INfinity 510 reader with the use of Sirit's RAPID API. | ||
| − | + | <pre> | |
| /* | /* | ||
|   *  SiritClientRAPID.java |   *  SiritClientRAPID.java | ||
| Line 47: | Line 46: | ||
| 	 * IP Address of the reader | 	 * IP Address of the reader | ||
| 	 */ | 	 */ | ||
| − | 	private String ipAddress =  | + | 	private String ipAddress = "192.168.11.130"; | 
| 	/** | 	/** | ||
| Line 77: | Line 76: | ||
| 					DataManager.ConnectionTypes.SOCKET, ipAddress, 0); | 					DataManager.ConnectionTypes.SOCKET, ipAddress, 0); | ||
| 			dataManager.open(); | 			dataManager.open(); | ||
| − | 			System.out.println( | + | 			System.out.println("Connection Opened"); | 
| 			// Get the reader's name | 			// Get the reader's name | ||
| 			InfoManager infoManager = new InfoManager(dataManager); | 			InfoManager infoManager = new InfoManager(dataManager); | ||
| 			String v = infoManager.getName(); | 			String v = infoManager.getName(); | ||
| − | 			System.out.println( | + | 			System.out.println("Name: " + v); | 
| 			infoManager = null; | 			infoManager = null; | ||
| 			// Login as administrator | 			// Login as administrator | ||
| 			ReaderManager readerManager = new ReaderManager(dataManager); | 			ReaderManager readerManager = new ReaderManager(dataManager); | ||
| − | 			if (!readerManager.login( | + | 			if (!readerManager.login("admin", "readeradmin")) | 
| − | 				throw new Exception( | + | 				throw new Exception("Login attempt failed: " | 
| 						+ readerManager.getLastErrorMessage()); | 						+ readerManager.getLastErrorMessage()); | ||
| 			v = readerManager.whoAmI(); | 			v = readerManager.whoAmI(); | ||
| − | 			System.out.println( | + | 			System.out.println("Login: " + v); | 
| 			// Open an event channel and get it's ID | 			// Open an event channel and get it's ID | ||
| 			String id = dataManager.getEventChannel(this); | 			String id = dataManager.getEventChannel(this); | ||
| − | 			System.out.println( | + | 			System.out.println("Event Channel ID: " + id); | 
| 			// Register for event.tag.report | 			// Register for event.tag.report | ||
| − | 			if (!readerManager.eventsRegister(id,  | + | 			if (!readerManager.eventsRegister(id, "event.tag.report")) | 
| − | 				throw new Exception( | + | 				throw new Exception("Failure to register for event: " | 
| 						+ readerManager.getLastErrorMessage()); | 						+ readerManager.getLastErrorMessage()); | ||
| − | 			System.out.println( | + | 			System.out.println("Registered for event.tag.report"); | 
| 			// Set operating mode to active | 			// Set operating mode to active | ||
| Line 107: | Line 106: | ||
| 			setupManager | 			setupManager | ||
| 					.setOperatingMode(SetupManager.OPERATING_MODE_TYPES.ACTIVE); | 					.setOperatingMode(SetupManager.OPERATING_MODE_TYPES.ACTIVE); | ||
| − | 			System.out.println( | + | 			System.out.println("Operating Mode: Active for 5 seconds"); | 
| 			// Sleep while handling tag events | 			// Sleep while handling tag events | ||
| Line 113: | Line 112: | ||
| 			// Unregister for event.tag.report | 			// Unregister for event.tag.report | ||
| − | 			if (!readerManager.eventsUnregister(id,  | + | 			if (!readerManager.eventsUnregister(id, "event.tag.report")) | 
| − | 				throw new Exception( | + | 				throw new Exception("Failure to unregister for event: " | 
| 						+ readerManager.getLastErrorMessage()); | 						+ readerManager.getLastErrorMessage()); | ||
| − | 			System.out.println( | + | 			System.out.println("Unregistered for event.tag.report"); | 
| 			// Set operating mode to standby | 			// Set operating mode to standby | ||
| 			setupManager | 			setupManager | ||
| 					.setOperatingMode(SetupManager.OPERATING_MODE_TYPES.STANDBY); | 					.setOperatingMode(SetupManager.OPERATING_MODE_TYPES.STANDBY); | ||
| − | 			System.out.println( | + | 			System.out.println("Operating Mode: Standby"); | 
| 			// List the TagDB | 			// List the TagDB | ||
| − | 			System.out.println( | + | 			System.out.println("Detected Tags:"); | 
| 			TagManager tagManager = new TagManager(dataManager); | 			TagManager tagManager = new TagManager(dataManager); | ||
| − | 			TagResponseList tagList = tagManager.dbGet( | + | 			TagResponseList tagList = tagManager.dbGet("", ""); | 
| 			TagResponse tagResponse; | 			TagResponse tagResponse; | ||
| − | 			for (int tagResponseID = 0; tagResponseID  | + | 			for (int tagResponseID = 0; tagResponseID < tagList.getCount(); tagResponseID++) { | 
| 				tagResponse = tagList.getTagResponse(tagResponseID); | 				tagResponse = tagList.getTagResponse(tagResponseID); | ||
| − | 				System.out.println( | + | 				System.out.println("TagID: " + tagResponse.getTagId()); | 
| − | 				System.out.println( | + | 				System.out.println("\tAntenna: " + tagResponse.getAntenna()); | 
| − | 				System.out.println( | + | 				System.out.println("\tCount: " + tagResponse.getRepeat()); | 
| − | 				System.out.println( | + | 				System.out.println("\t1st Time: " + tagResponse.getFirst()); | 
| − | 				System.out.println( | + | 				System.out.println("\tLast Time: " + tagResponse.getLast()); | 
| 			} | 			} | ||
| Line 143: | Line 142: | ||
| 			readerManager = null; | 			readerManager = null; | ||
| 			dataManager.close(); | 			dataManager.close(); | ||
| − | 			System.out.println( | + | 			System.out.println("Connection Closed"); | 
| 			// Output the time to execute application | 			// Output the time to execute application | ||
| 			long endTime = System.currentTimeMillis(); | 			long endTime = System.currentTimeMillis(); | ||
| 			long t = endTime - startTime - 500; | 			long t = endTime - startTime - 500; | ||
| − | 			System.out.println( | + | 			System.out.println("Estimated Time: " + t + "(ms)"); | 
| 		} catch (Exception e) { | 		} catch (Exception e) { | ||
| − | 			System.out.println( | + | 			System.out.println("Error: " + e.getMessage()); | 
| 		} | 		} | ||
| 	} | 	} | ||
| Line 165: | Line 164: | ||
| 		// Create SiritClient object | 		// Create SiritClient object | ||
| 		SiritClientRAPID scApp; | 		SiritClientRAPID scApp; | ||
| − | 		if (args.length  | + | 		if (args.length > 0) | 
| 			scApp = new SiritClientRAPID(args[0]); | 			scApp = new SiritClientRAPID(args[0]); | ||
| 		else | 		else | ||
| Line 172: | Line 171: | ||
| 		// Execute the application | 		// Execute the application | ||
| 		scApp.run(); | 		scApp.run(); | ||
| − | 		System.out.println( | + | 		System.out.println("Exiting"); | 
| 		System.exit(0); | 		System.exit(0); | ||
| Line 183: | Line 182: | ||
| 		String tagID = eventInfo | 		String tagID = eventInfo | ||
| 				.getParameter(EventInfo.EVENT_TAG_ARRIVE_PARAMS.TAG_ID); | 				.getParameter(EventInfo.EVENT_TAG_ARRIVE_PARAMS.TAG_ID); | ||
| − | 		System.out.println( | + | 		System.out.println("Tag ID: " + tagID); | 
| 	} | 	} | ||
| } | } | ||
| − | + | </pre> | |
Latest revision as of 19:43, 26 November 2010
This class shows how to create a program to talk to the Sirit INfinity 510 reader with the use of Sirit's RAPID API.
/*
 *  SiritClientRAPID.java
 *
 *  Created:	07.05.2009
 *  Project:	RiFidi SiritClient
 *  				http://www.rifidi.org
 *  				http://rifidi.sourceforge.net
 *  Copyright:	Pramari LLC and the Rifidi Project
 *  License:	Lesser GNU Public License (LGPL)
 *  				http://www.opensource.org/licenses/lgpl-license.html
 *  Author:	Stefan Fahrnbauer - stefan@pramari.com
 */
package sandbox;
/**
 * This class shows how to create a program to talk to the Sirit INfinity 510 reader
 * with the use of Sirit's RAPID API.
 *
 * @author Stefan Fahrnbauer - stefan@pramari.com
 *
 */
import com.sirit.data.DataManager;
import com.sirit.driver.IEventListener;
import com.sirit.mapping.EventInfo;
import com.sirit.mapping.InfoManager;
import com.sirit.mapping.ReaderManager;
import com.sirit.mapping.SetupManager;
import com.sirit.mapping.TagManager;
import com.sirit.mapping.TagResponse;
import com.sirit.mapping.TagResponseList;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class SiritClientRAPID implements IEventListener {
	/*
	 * IP Address of the reader
	 */
	private String ipAddress = "192.168.11.130";
	/**
	 * Constructor
	 */
	public SiritClientRAPID() {
	}
	/**
	 * Constructor - with IP Address
	 * 
	 * @param ipAddr
	 *            IP Address for the reader
	 */
	public SiritClientRAPID(String ipAddress) {
		super();
		this.ipAddress = ipAddress;
	}
	/**
	 * Executes the application
	 */
	public void run() {
		try {
			long startTime = System.currentTimeMillis();
			// Open a connection to the reader
			DataManager dataManager = new DataManager(
					DataManager.ConnectionTypes.SOCKET, ipAddress, 0);
			dataManager.open();
			System.out.println("Connection Opened");
			// Get the reader's name
			InfoManager infoManager = new InfoManager(dataManager);
			String v = infoManager.getName();
			System.out.println("Name: " + v);
			infoManager = null;
			// Login as administrator
			ReaderManager readerManager = new ReaderManager(dataManager);
			if (!readerManager.login("admin", "readeradmin"))
				throw new Exception("Login attempt failed: "
						+ readerManager.getLastErrorMessage());
			v = readerManager.whoAmI();
			System.out.println("Login: " + v);
			// Open an event channel and get it's ID
			String id = dataManager.getEventChannel(this);
			System.out.println("Event Channel ID: " + id);
			// Register for event.tag.report
			if (!readerManager.eventsRegister(id, "event.tag.report"))
				throw new Exception("Failure to register for event: "
						+ readerManager.getLastErrorMessage());
			System.out.println("Registered for event.tag.report");
			// Set operating mode to active
			SetupManager setupManager = new SetupManager(dataManager);
			setupManager
					.setOperatingMode(SetupManager.OPERATING_MODE_TYPES.ACTIVE);
			System.out.println("Operating Mode: Active for 5 seconds");
			// Sleep while handling tag events
			Thread.sleep(5000);
			// Unregister for event.tag.report
			if (!readerManager.eventsUnregister(id, "event.tag.report"))
				throw new Exception("Failure to unregister for event: "
						+ readerManager.getLastErrorMessage());
			System.out.println("Unregistered for event.tag.report");
			// Set operating mode to standby
			setupManager
					.setOperatingMode(SetupManager.OPERATING_MODE_TYPES.STANDBY);
			System.out.println("Operating Mode: Standby");
			// List the TagDB
			System.out.println("Detected Tags:");
			TagManager tagManager = new TagManager(dataManager);
			TagResponseList tagList = tagManager.dbGet("", "");
			TagResponse tagResponse;
			for (int tagResponseID = 0; tagResponseID < tagList.getCount(); tagResponseID++) {
				tagResponse = tagList.getTagResponse(tagResponseID);
				System.out.println("TagID: " + tagResponse.getTagId());
				System.out.println("\tAntenna: " + tagResponse.getAntenna());
				System.out.println("\tCount: " + tagResponse.getRepeat());
				System.out.println("\t1st Time: " + tagResponse.getFirst());
				System.out.println("\tLast Time: " + tagResponse.getLast());
			}
			// Close the connection
			setupManager = null;
			readerManager = null;
			dataManager.close();
			System.out.println("Connection Closed");
			// Output the time to execute application
			long endTime = System.currentTimeMillis();
			long t = endTime - startTime - 500;
			System.out.println("Estimated Time: " + t + "(ms)");
		} catch (Exception e) {
			System.out.println("Error: " + e.getMessage());
		}
	}
	
	/**
	 * Main method for this demo application
	 * 
	 * @param args
	 *            Command line arguments first argument -IP Address of the
	 *            reader (optional)
	 */
	public static void main(String[] args) {
		// Create SiritClient object
		SiritClientRAPID scApp;
		if (args.length > 0)
			scApp = new SiritClientRAPID(args[0]);
		else
			scApp = new SiritClientRAPID();
		// Execute the application
		scApp.run();
		System.out.println("Exiting");
		System.exit(0);
	}
	/**
	 * Event Handler
	 */
	public void EventFound(Object sender, EventInfo eventInfo) {
		String tagID = eventInfo
				.getParameter(EventInfo.EVENT_TAG_ARRIVE_PARAMS.TAG_ID);
		System.out.println("Tag ID: " + tagID);
	}
}

