亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? user-proxy.apt

?? 關于 RFID 讀寫器的相關內容
?? APT
字號:
              -------------------
              User Guide Proxy
              -------------------
              Jonas Haller
              -------------------
              03.01.2008
              -------------------

User Guide Reader RP Proxy


* Contents

  [[1]] {{{#Features}Features}}

  [[2]] {{{#Application}Field of Application}}

  [[3]] {{{#Installing}Installing the Fosstrak Reader RP Proxy}}

  [[4]] {{{#First}First Steps}}

    * {{{#method}Use proxy with method calls}}

    * {{{#configuration}Use proxy with configuration engine}}


* {Features}

  The Fosstrak Reader RP Proxy is a Java class library that supports the
  communication with a reader that implements the EPCglobal Reader Protocol
  Version 1.1.

  Implemented elements of the protocol include:

  * Transport Binding: TCP and HTTP

  * Message Binding: XML and Text

  * Synchronous and Asynchronous Messaging (Notification Channels)

  * Triggers

  * Data Selectors

  []

  The reader can be configured through a method call for each command or all
  the settings can be written into a configuration file which is processed by
  an automated configurator.


* Field of {Application}

  * Communicate with a reader via the EPCglobal Reader Protocol Version 1.1
    from within your Java application.

  * Implement the <<<NotificationChannelListener>>> interface to receive
    notifications from the reader in your Java application.

  []

[../images/ReaderProxy_architecture.png]


* {Installing} the Fosstrak Reader RP Proxy

   The following instructions show how to install the Fosstrak Reader RP Proxy:

   * Download the Reader RP Proxy binaries with the dependencies included from
     the {{{../download.html}download}} section of the website.

   * Unzip the downloaded file.

   * Add the jar to your classpath.

   * All the {{{dependencies.html} dependencies}} should be accessible through
     your classpath as well. This should be the case if you use the zip with
     all the dependencies included.

   * Make sure you are using a Java Runtime Environment 1.5 or higher.

   * Use the proxy as outlined in the two examples below.


* {First} Steps

** Configure the reader with a series of Java {method} calls

  This example requires that there is a reader running that supports the
  HTTP/XML transport message binding of the Reader Protocol available at
  localhost:8000. If these settings are incorrect for your setup, you will need
  to adjust the following variables:

  * MESSAGE_FORMAT

  * TRANSPORT_PROTOCOL

  * COMMAND_CHANNEL_HOST

  * COMMAND_CHANNEL_PORT
  
  []

  You might also want to consider using our existing Java implementation of a
  {{{../index.html}reader}} which includes a simulation engine.

+---
import org.fosstrak.reader.rprm.core.EventType;
import org.fosstrak.reader.rprm.core.FieldName;
import org.fosstrak.reader.rp.proxy.DataSelector;
import org.fosstrak.reader.rp.proxy.NotificationChannel;
import org.fosstrak.reader.rp.proxy.ReaderDevice;
import org.fosstrak.reader.rp.proxy.Source;
import org.fosstrak.reader.rp.proxy.Trigger;
import org.fosstrak.reader.rp.proxy.factories.DataSelectorFactory;
import org.fosstrak.reader.rp.proxy.factories.NotificationChannelFactory;
import org.fosstrak.reader.rp.proxy.factories.ReaderDeviceFactory;
import org.fosstrak.reader.rp.proxy.factories.TriggerFactory;
import org.fosstrak.reader.rp.proxy.msg.Handshake;

public class ReaderProxyExample {

   private static int MESSAGE_FORMAT = Handshake.FORMAT_XML;
   private static int TRANSPORT_PROTOCOL = Handshake.HTTP;

   private static final String COMMAND_CHANNEL_HOST = "localhost";
   private static final int COMMAND_CHANNEL_PORT = 8000;

   private static final String READ_TRIGGER_NAME = "ReadTrigger";
   private static final String READ_TRIGGER_TYPE = Trigger.TIMER;
   private static final String READ_TRIGGER_VALUE = "ms=2000";

   private static final String NOTIFICATION_TRIGGER_NAME = "NotificationTrigger";
   private static final String NOTIFICATION_TRIGGER_TYPE = Trigger.CONTINUOUS;
   private static final String NOTIFICATION_TRIGGER_VALUE = "";

   private static final String DATA_SELECTOR_NAME = "DataSelector";
   private static final String[] EVENT_FILTERS = new String[] {
         EventType.EV_OBSERVED, EventType.EV_LOST};
   private static final String[] FIELD_NAMES = new String[] {
         FieldName.EVENT_TYPE, FieldName.READER_NAME, FieldName.TAG_ID,
         FieldName.TAG_ID_AS_PURE_URI, FieldName.TAG_ID_AS_TAG_URI,
         FieldName.SOURCE_NAME};

   private static final String NOTIFICATION_CHANNEL_NAME = "NotificationChannel";
   private static final String NOTIFICATION_CHANNEL_HOST = "localhost";
   private static final int NOTIFICATION_CHANNEL_PORT = 9000;
   private static final String NOTIFICATION_CHANNEL_MODE = "connect";
   private static final String NOTIFICATION_CHANNEL_ADDRESS = "tcp://"
         + NOTIFICATION_CHANNEL_HOST + ":" + NOTIFICATION_CHANNEL_PORT
         + "?mode=" + NOTIFICATION_CHANNEL_MODE;

   public static void main(String[] args) throws Exception {
      // create handshake
      Handshake handshake = new Handshake();
      handshake.setMessageFormat(MESSAGE_FORMAT);
      handshake.setTransportProtocol(TRANSPORT_PROTOCOL);

      // get reader device proxy
      System.out.println("Get reader device proxy.");
      ReaderDevice readerDevice = ReaderDeviceFactory.getReaderDevice(
            COMMAND_CHANNEL_HOST, COMMAND_CHANNEL_PORT, handshake);

      // get current source proxy
      System.out.println("Get current source.");
      Source source = readerDevice.getCurrentSource();
      System.out.println("Name of current source is: " + source.getName());

      // create read trigger
      System.out.println("Create read trigger.");
      Trigger readTrigger = TriggerFactory.createTrigger(READ_TRIGGER_NAME,
            READ_TRIGGER_TYPE, READ_TRIGGER_VALUE, readerDevice);

      // create notification trigger
      System.out.println("Create notification trigger.");
      Trigger notificationTrigger = TriggerFactory.createTrigger(
            NOTIFICATION_TRIGGER_NAME, NOTIFICATION_TRIGGER_TYPE,
            NOTIFICATION_TRIGGER_VALUE, readerDevice);

      // data selector
      System.out.println("Create data selector.");
      DataSelector dataSelector = DataSelectorFactory.createDataSelector(
            DATA_SELECTOR_NAME, readerDevice);
      System.out.println("Add event filters to data selector.");
      dataSelector.addEventFilters(EVENT_FILTERS);
      System.out.println("Add field names to data selector.");
      dataSelector.addFieldNames(FIELD_NAMES);
      //System.out.println("Add tag fields to data selector.");
      //dataSelector.addTagFieldNames(TAG_FIELDS);

      // create notification channel
      System.out.println("Create notification channel.");
      NotificationChannel notificationChannel = NotificationChannelFactory
            .createNotificationChannel(NOTIFICATION_CHANNEL_NAME,
            NOTIFICATION_CHANNEL_ADDRESS, readerDevice);
      System.out.println("Set data selector of notification channel.");
      notificationChannel.setDataSelector(dataSelector);
      System.out.println("Add notification trigger to notification channel.");
      notificationChannel.addNotificationTriggers(
            new Trigger[] {notificationTrigger});

      // add current source to notification channel
      System.out.println("Add source to notification channel.");
      notificationChannel.addSources(new Source[] {source});

      // add read trigger to source
      System.out.println("Add read trigger to source.");
      source.addReadTriggers(new Trigger[] {readTrigger});
   }
}
+---

    In order to process the notification messages from the reader, the proxy
    provides the class org.fosstrak.reader.rp.proxy.NotificationChannelEndPoint.
    The class that is interested in receiving the notification messages has to
    implement the interface org.fosstrak.reader.rp.proxy.NotificationChannelListener
    and has to be registered with the NotificationChannelEndPoint as shown
    below.

+---
import org.fosstrak.reader.rp.proxy.NotificationChannelListener;
import org.fosstrak.reader.rprm.core.msg.notification.Notification;

public class ReaderNotificationChannelListener implements NotificationChannelListener {

   public void dataReceived(Notification notification) {
      System.out.println("Notification received: " + notification);

      // add your code to process notification message here
   }
}
+---

   Code to create a NotificationChannelListener and to add a listener to it:

+---
   NotificationChannelListener notificationChannelListener =
         new ReaderNotificationChannelListener();

   // create notification channel endpoint to receive messages
   System.out.println("Create NotificationChannelEndpoint at port '"
         + NOTIFICATION_CHANNEL_PORT + "'.");
   NotificationChannelEndPoint notificationChannelEndPoint =
         new NotificationChannelEndPoint(NOTIFICATION_CHANNEL_PORT);

   // add listerner to notification channel endpoint
   notificationChannelEndPoint.addListener(notificationChannelListener);
+---


** Configure the reader with the {configuration} engine and a corresponding
  configuration file

  An other way to configure the reader is to use the <<<ReaderConfigurator>>>
  that is part of the Fosstrak Reader RP Proxy module. It is less flexible than
  using method calls for each configuration item but needs less code too.

+---
import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;
import org.fosstrak.reader.proxy.configurator.ReaderConfigurator;

public class ReaderConfiguratorExample {

   private static final String CONFIG_FILE_PATH =
         "./props/ReaderDeviceConfiguration.xml";

   private static final Logger LOG = Logger.getLogger(
         ReaderConfiguratorExample.class);

   public static void main(String[] args) throws Exception {

      // initialize the logger
      BasicConfigurator.configure();

      // configure the reader
      LOG.info("Configurate reader device.");
      ReaderConfigurator.initReaderDeviceConfiguration(CONFIG_FILE_PATH);
   }
}
+---

   The corresponding ReaderDeviceConfiguration.xml configuration file looks
   like this:

+---
<?xml version="1.0" encoding="UTF-8"?>
<configurationDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ReaderDeviceConfiguration.xsd">
   <readerDeviceConfiguration>

      <!-- reader configuration -->
      <readerConfig>
         <commandChannelHost>localhost</commandChannelHost>
         <commandChannelPort>8000</commandChannelPort>
         <transportProtocol>HTTP</transportProtocol>
         <transportFormat>XML</transportFormat>
      </readerConfig>

      <!-- read triggers -->
      <triggers>
         <timerTrigger name="ReadTrigger">
            <value>2000</value>
         </timerTrigger>
      </triggers>

      <!-- notification triggers -->
      <triggers>
         <continuousTrigger name="NotificationTrigger"/>
      </triggers>

      <!-- data selectors -->
      <dataSelectors>
         <dataSelector name="DataSelector">
            <fieldNames>
               <fieldName>eventType</fieldName>
               <fieldName>readerName</fieldName>
               <fieldName>tagID</fieldName>
               <fieldName>tagIDasPureURI</fieldName>
               <fieldName>tagIDasTagURI</fieldName>
               <fieldName>sourceName</fieldName>
            </fieldNames>
            <eventFilters>
               <eventFilter>evObserved</eventFilter>
               <eventFilter>evLost</eventFilter>
            </eventFilters>
         </dataSelector>
      </dataSelectors>

      <!-- notification channels -->
      <notificationChannels>
         <notificationChannel name="NotificationChannel">
            <notificationChannelHost>localhost</notificationChannelHost>
            <notificationChannelPort>9000</notificationChannelPort>
            <transportProtocol>TCP</transportProtocol>
            <notificationChannelMode>connect</notificationChannelMode>
            <sources>
               <source>Shelf1</source>
            </sources>
            <notificationTriggers>
               <triggerName>NotificationTrigger</triggerName>
            </notificationTriggers>
            <dataSelector>DataSelector</dataSelector>
         </notificationChannel>
      </notificationChannels>

      <!-- sources -->
      <sources>
         <source name="Shelf1">
            <triggerName>ReadTrigger</triggerName>
         </source>
      </sources>

   </readerDeviceConfiguration>
</configurationDocument>
+---

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲1区2区3区| 欧美激情综合五月色丁香小说| 国产一区美女在线| 亚洲你懂的在线视频| 91精品国产综合久久精品图片 | 国产成人精品三级麻豆| 午夜一区二区三区视频| 综合色中文字幕| 欧美变态tickling挠脚心| 欧美亚洲一区二区三区四区| 国产精品自拍一区| 奇米在线7777在线精品| 亚洲欧美另类久久久精品2019| 久久综合色天天久久综合图片| 欧美在线free| 成人av电影观看| 国产一区二区三区高清播放| 日产欧产美韩系列久久99| 一区二区三区在线观看网站| 国产欧美日韩三级| 精品精品国产高清a毛片牛牛| 欧美色图激情小说| 一本大道久久a久久精品综合| 成人精品国产福利| 高清在线成人网| 国产精品一区在线观看乱码| 极品少妇xxxx精品少妇| 日本少妇一区二区| 韩国一区二区视频| 亚洲韩国一区二区三区| 日韩欧美亚洲一区二区| 欧美日韩国产天堂| 在线观看av一区二区| voyeur盗摄精品| youjizz国产精品| 日产国产高清一区二区三区| 亚洲资源中文字幕| 亚洲欧美国产77777| 日本一区二区视频在线观看| 日韩精品在线一区二区| 91精品国产免费| 91精品午夜视频| 欧美日韩激情一区二区三区| 欧美日韩亚洲另类| 91在线观看一区二区| 91在线精品一区二区| thepron国产精品| 色94色欧美sute亚洲线路一久| 福利电影一区二区| 成人免费av资源| 成人国产精品免费观看动漫| eeuss鲁片一区二区三区在线看| 国产.精品.日韩.另类.中文.在线.播放| 免费成人小视频| 国产高清不卡二三区| 国产一区二区不卡在线| 99视频精品在线| 色av成人天堂桃色av| 欧美一级一区二区| 日韩一区二区三区免费观看| 精品1区2区在线观看| 久久综合色8888| 亚洲男人电影天堂| 一区二区成人在线观看| 亚洲女性喷水在线观看一区| 午夜精品视频在线观看| 爽好久久久欧美精品| 精品一区二区三区蜜桃| 久久99国产精品久久99果冻传媒| 国产精品一品二品| k8久久久一区二区三区| 欧美日本国产一区| 欧美一区二区三区四区视频| 久久久久久久久久久久久女国产乱 | 国产婷婷色一区二区三区| 久久男人中文字幕资源站| 亚洲天堂成人在线观看| 亚洲va国产天堂va久久en| 久久精品99久久久| 国产精品一区二区在线观看不卡 | 欧美成人aa大片| 中文字幕av在线一区二区三区| 国产精品女主播av| 国产日韩影视精品| 性久久久久久久| 九九久久精品视频| 色香色香欲天天天影视综合网| 欧美日韩午夜在线视频| 久久综合久久综合久久| 国产精品久线在线观看| 一区二区三区鲁丝不卡| 蜜臀精品一区二区三区在线观看 | 大白屁股一区二区视频| 欧美区一区二区三区| 欧美一区二区在线看| 欧美一级日韩免费不卡| 欧美电影一区二区三区| 2021中文字幕一区亚洲| 一区二区三区精品| 久久精品国产色蜜蜜麻豆| 91在线观看免费视频| 91麻豆精品国产91久久久| 自拍偷拍亚洲欧美日韩| 香蕉乱码成人久久天堂爱免费| 亚洲一区二区欧美激情| 国产精品一区二区久久精品爱涩| 91传媒视频在线播放| 久久九九全国免费| 亚洲天堂精品视频| 久久丁香综合五月国产三级网站| www.66久久| 日韩一卡二卡三卡国产欧美| 成人欧美一区二区三区小说| 麻豆精品视频在线观看免费| 国产99久久久国产精品免费看| 日韩欧美国产综合在线一区二区三区| 国产精品久久毛片a| 国产69精品久久777的优势| 欧美日韩高清一区| 午夜影视日本亚洲欧洲精品| caoporn国产一区二区| 久久精品人人做| 无码av免费一区二区三区试看| 色婷婷综合激情| 国产精品色呦呦| 不卡在线观看av| 久久中文字幕电影| 亚洲h在线观看| 国产91精品一区二区麻豆亚洲| 久久精品综合网| 三级一区在线视频先锋| 555夜色666亚洲国产免| 99久久久精品| 亚洲精品中文在线| 久久爱www久久做| 日韩一区二区三区免费观看| 亚洲成av人在线观看| 欧美性生活大片视频| 亚洲精品自拍动漫在线| 色婷婷久久99综合精品jk白丝| 欧美videofree性高清杂交| 久久99精品久久久久久久久久久久 | 亚洲欧洲日产国产综合网| 精品亚洲aⅴ乱码一区二区三区| 欧美午夜影院一区| 五月激情综合色| 欧美色大人视频| 日韩不卡手机在线v区| 欧美日韩一区二区三区四区| 午夜免费欧美电影| 欧美肥妇毛茸茸| 激情五月激情综合网| 欧美不卡一二三| 国产成人免费视频网站| 中文字幕av一区 二区| 色噜噜偷拍精品综合在线| 一区二区三区在线视频免费| 精品视频免费在线| 亚洲1区2区3区4区| 精品三级av在线| 国产高清成人在线| 亚洲综合网站在线观看| 欧美日韩一本到| 国产在线不卡一区| 中文字幕欧美三区| 欧美亚洲综合在线| 成人网男人的天堂| 亚洲国产一区二区视频| 91精品国产欧美日韩| 成人午夜av电影| 伊人婷婷欧美激情| 欧美精品一区视频| 丁香婷婷综合五月| 日韩精品久久久久久| 精品国产一区久久| 一本一本久久a久久精品综合麻豆| 伊人性伊人情综合网| 日韩美女视频一区二区在线观看| 国产精品资源网| 亚洲女与黑人做爰| 欧美一区二区精品| 粉嫩aⅴ一区二区三区四区| 亚洲欧美电影院| 日韩欧美国产一区在线观看| 99久久婷婷国产综合精品电影| 亚洲第四色夜色| 成人欧美一区二区三区小说| 欧美日韩一区二区三区在线看| 国产成人午夜精品影院观看视频 | 国产精品乱码人人做人人爱| 成人夜色视频网站在线观看| 天堂久久一区二区三区| 久久一夜天堂av一区二区三区| 色综合久久中文综合久久97| 亚洲18女电影在线观看| 欧美激情在线看| 日韩午夜小视频| 91一区二区三区在线观看| 精品一区二区国语对白| 一区二区三区四区高清精品免费观看|