Giter Site home page Giter Site logo

xujingao13 / tagsee Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tagsys/tagsee

0.0 1.0 0.0 16.55 MB

Making RFID research enjoyable!

Home Page: http://young.tagsys.org/#/pages/project/tagsee

Shell 0.02% HTML 3.64% CSS 89.17% JavaScript 3.59% Java 3.58% Batchfile 0.01%

tagsee's Introduction

TagSee - Making RFID Research Enjoyable!

Version

Version Description Released Time Download
1.1 Fixed the issue of failure to download data. 2016/6/1 tagsee-1.1.zip
1.0 Manage physical reader and real-time check experimental results. 2016/6/1 tagsee-1.0.zip

Features

TagSee wraps the ImpinJ-extended APIs and offers a nice dashboard for quickly startup on collecting RFID readings. Basic and useful feature list:

  • Simple management of your physical readers.
  • Real-time view of experimental results.
  • Easy download of experimental results.
  • Selectively filterring unexpected tags.

Supported Platforms

  • Windows/Mac/Linux + Java 8
  • ImpinJ R420 Reader + LTK SDK

Usage

Follow the simple three steps:

  1. Donwload tagsee-xxx.zip and extract it to local disk

  2. Run the 'startup.sh' or 'startup.bat' in 'terminal' (Mac) or 'cmd' (Windows): bash startup.sh

  3. The system will automatically jump to dashboard page, or you can accesss the following address: http://localhost:9092

Compiling

If you would like to compile the source code, then you could do it as follows:

Prerequisite

  1. Install Apache Maven. (refer to Maven client)

  2. Install Bower. (refer to Twitter Bower client).

  3. Install Git. (refer to Git client.)

Steps

1.Checkout the source code.

git clone https://github.com/tagsys/tagsee.git

2.Run the complie.sh inside `dashboard'. It is going to downlaod the neccessary js files with bower tool.

bash comiple.sh

3.Install and compile maven project.

mvn install

4.Run the maven project.

mvn exec:java

Notice

  • Dashboard uses IndexDB (bowser embeded database) to store the readings received from tagsee. The database size is limited over browsers. Please ensure you download the experimental results to your local disk in time. In the future, I will consider to upload the readigns to server side.

  • Only latested 1,000 readings will be displayed in the charts to keep the rendering more smooth.

  • The Reader and RO specification are respectively read from the files of config/reader__config.default.xml and config/rospec.defualt.xml. If you want to change the configuration, please copy these two files and modify their names to config/reader__config.xml and config/rospec.xml (remove the 'default' word and keep the default files for safty). TagSee will preferentially read configuration files from the none-default version. The change immediately works in the next experiment without need to restart TagSee.

API

Besides the controllable dashborad, TagSee also offers a set of wrapped APIs for upper applications. These APIs are useful if you want to develop your own applications. TagSee provides a set of RESTful style APIs and Websocket-based reading reports. You could use any language or platform to develop your applications.

I also give many examples over different programming languages in the examples directory to show how to start, stop and read tags using TagSee. Currently, these exampels are writtern using Java.

1. Discover agents

Path: /service/discover
Action: GET
Parameters: none
Returns:
	- errorCode: 0
	- agents[]: a list of agent stored in server.

2. Create agent

Path: /service/agent/create
Action: POST
Paramters:
	- ip: reader ip, which should be
	- name: name of the reader.
	- remark: description of this reader.
Return:
	- errorCode: 0

3. Update agent

Path: /service/agent/:ip/update
Action: POST
Parameters:
	- ip: reader ip.
	- name: the reader name.
	- remark: description of this reader.
Return:
	- errorCode: 0

4. Remove agent

Path: /service/agent/:ip/remove 
Action: POST
Parameters:
	- ip: reader ip.
Return:
    - errorCode: 0

5. Start reading

Path: /service/agent/:ip/start
Action: GET
Parameter: None
Return:
	- errorCode: 0

6. Stop reading

Path: /service/agent/:ip/stop
Action: GET
Parameter: Nnone
Return:
	- errorCode: 0

7. Websocket messages

TagSee uses websocket to push heartbeat and readings.

Message: Heartbeat
Structure:
	- errorCode: 0
	- type: heartbeat

Message: Readings
Structure:
	- errorCode: 0
	- type: reading
	- tags[{
		epc: tag epc,
        phase: pahse value,
        rssi: rss value,
        doppler: doppler value,
        channel: channel index,
        antenna: antenna idnex
        peekRssi: peek rssi (Impinj extened feild),
        firstSeenTime: the timestamp attached by the reader,
        lastSeenTime: the timestamp attached by the reader,
        timestap: the timestamp attached by the tagsee
    }]

Reference

If this project helps you, please help cite the following paper. Thanks very much.

@inproceedings{yang2014tagoram,
  title={Tagoram: Real-time tracking of mobile RFID tags to high precision using COTS devices},
  author={Yang, Lei and Chen, Yekui and Li, Xiang-Yang and Xiao, Chaowei and Li, Mo and Liu, Yunhao},
  booktitle={Proceedings of ACM MobiCom},
  pages={237--248},
  year={2014}
}

Changelog

  • 2016/6/1 - release the TagSee v1.
  • 2016/6/8 - add Java example.

Acknowledgement

This project acknowledges significant help, feedback, suggestions and guidance from following people.

  • Tianci Liu. This guy developed a primary and offline RFID reading tool for our group. It inpsired me to develop TagSee.

tagsee's People

Contributors

tagsys avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.