summaryrefslogtreecommitdiff
path: root/README.txt
blob: 2f9e7ef2a75867748c9f4bb94770155e7f96b7f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# NFCommander

This tool serves as an adapter between NFC/ISO14443A Tags and Cards (Mifare Cards, NTAG Tags)
and any other tooling.

## Tag format

The data on the NFC tag is split into three parts, the detailed format of which is defined
in the `reader API` document.

* Tag Command: The command a tag will call. This maps to an executable defined in the NFCommander configuration.
* Static data: Unstructured textual parameters to the command that will stay unchanged for this tag over the lifetime of it's programming.
* Dynamic data: Unstructured textual data that may be changed by the execution of a command to keep state over multiple invocations/presentations.

## API Surfaces

This project has three distinct APIs

* The command API: The commands that can be triggered by and while a tag is present on the reader
* The control API: Tag programming/administration, command testing
* The reader API: Interaction with the active NFC hardware

## Things that crossed my mind

* Maybe we should use NDEF on the tag instead of yet another custom format
* It might be useful to implement support for hardware button passthrough to commands

* Who should manage the active tags list - plugins or core
* Should reader plugins report the full list of tags periodically or only changes in the field?