Difference between revisions of "Package Structure for a reader project"

From RifidiWiki

Jump to: navigation, search
(org.rifidi.emulator.reader.READERNAME.protocol)
Line 22: Line 22:
 
that controls how bytes are read off of and written to the TCPSocket.
 
that controls how bytes are read off of and written to the TCPSocket.
 
==org.rifidi.emulator.reader.READERNAME.protocol==
 
==org.rifidi.emulator.reader.READERNAME.protocol==
 +
The protocol package contains one file whose purpose is twofold.  The protocol needs to:
 +
#strip any extra protocol-- such as HTTP that the reader uses to communicate-- off of incoming messages and apply these protocols back to outgoing messages.
 +
#Sometimes two or more commands can be read off of the TCP socket at the same time if the messages are sent quickly.  Therefore the protocol needs to make sure that each command is placed on the incoming buffer individually.
 +
*[[READER_Protocol.java]]
 +
 
==org.rifidi.emualtor.reader.READERNAME.module==
 
==org.rifidi.emualtor.reader.READERNAME.module==
 
==org.rifidi.emualtor.reader.READERNAME.tagbuffer==
 
==org.rifidi.emualtor.reader.READERNAME.tagbuffer==

Revision as of 23:00, 30 January 2008


Please refer to this document to figure out how to create a new reader project in eclipse

This page enumerates the very basic packages that a reader will need to have and the important files in each one. Complex readers will have more packages than these, but this is a bare minimum. These packages correspond with what you will need to program in stage 2 of reader creation.

org.rifidi.emulator.reader.READERNAME

This package just contains the osgi activator. It should be created for you automatically when you create the project. You shouldn't have to modify it.

org.rifidi.emualtor.reader.READERNAME.command.exception

This package contains a file that handles exceptions that occur in the parsing and execution of reader commands.

org.rifidi.emualtor.reader.READERNAME.commandhandler

This package contains one or more files that handle incoming reader messages. Normally commands can be divided into general categories. For example, with the LLRP reader, there are a set of commands that deal with ROSPec messages (such as ADD_ROSPEC, ENABLE_ROSPEC, etc.) and a separate set of commands that deal with AccessSpec messages (such as ADD_ACCESSSPEC, ENABLE_ACCESSSPEC). So for the LLRP reader, there is one file called 'LLRPReaderOperationControl.java' that contains the handler methods for ROSpec commands and a file called 'LLRPAccessControl.java' that contains the handler methods for AccessSpec commands.

org.rifidi.emualtor.reader.READERNAME.formatter

Any kind of formatters used should go into this package. You will definitely need a formatter that handles the parsing of incoming and outgoing commands called

But you may also need formatters such as

that handles how incoming and outgoing messages should look in the log file. Another useful formatter that may be necessary is

that controls how bytes are read off of and written to the TCPSocket.

org.rifidi.emulator.reader.READERNAME.protocol

The protocol package contains one file whose purpose is twofold. The protocol needs to:

  1. strip any extra protocol-- such as HTTP that the reader uses to communicate-- off of incoming messages and apply these protocols back to outgoing messages.
  2. Sometimes two or more commands can be read off of the TCP socket at the same time if the messages are sent quickly. Therefore the protocol needs to make sure that each command is placed on the incoming buffer individually.

org.rifidi.emualtor.reader.READERNAME.module

org.rifidi.emualtor.reader.READERNAME.tagbuffer

Personal tools