RFID Guardian Software:Library:Generic library modules:GP
From RFID Guardian
RFID Guardian Software / Library / Generic library modules / GP
GP
Communication between User Interface clients and servers, and between different RFID Guardians, and RFID Guardian-aware readers, uses a message format called GP (Guardian Protocol). GP is a dedicated language that represents all necessary commands. The GP language is an extremely simple LL(1) language that describes messages in terms of uint32, strings, and structs and arrays of same. The existing message types are given in [ include/GP/mrg_GP.x ].
To be expanded Conversations between readers: ownership transfer, authentication, ...
GPc is the Guardian Protocol Compiler. It lives in [ util/GPc/ ]; a parser is generated with LLgen , an LL(1) parser generator. GPc's input is [ include/GP/mrg_GP.x ].
GPc has a number of backends:
- C header, that generates the message types in C
- C source, that generates:
- stubs that take a C message and marshall it into a byte stream
- skeletons that unmarshall from the byte stream into C messages
- pretty-print routines
- Java source with definitions of a Java class per message type, and methods to (un)marshall between Java classes and byte streams
Message types in GP
This is an overview of the message types in version 0.8.6, as of mid December 2009. Doubtless, the list will grow with additional funtionality.
- ACL
-
- context
- add, remove, set, show, entry, list
- reader
- add, remove, set, show, list_role, entry, list
- role
- entry, add_reader, remove_reader, create, delete, list, list_reader
- tag
- add, del, name, list_entry, list
- tag_set
- set_create, set_delete, set_add, set_remove, set_list_tag, set_list, set_entry
- acl
- dir, save, commit, reload, clear, status
- state
- load, save, dir_get, dir_set
- alert
- uncommitted, unsaved
- Spoof
- get, alias, list, status, info, enable, reader_inventory_get, reset
- Audit log
- enable, file, status, flush, view
- Directory browser
- save, tftp_xmit, tftp_server, tftp_info, dir_path, dir, file_size, cat, unlink, chdir, mkdir, rmdir, pwd, rename, copy
- Network
- ping
- System
-
- date
- get, set
- reboot
- reboot
To be expanded
GP can be used with SSL.
| API | [ include/GP/mrg_GP.x ], generated in [ include/GP/mrg_GP_generated.h ] |
| Source | generated in [ src/GP/common/mrg_GP_generated.c ]and [ java/org/rfidguardian/GP/ ] |
| API | n/a |
| Source | [ util/GPc/ ] |


