summaryrefslogtreecommitdiff
path: root/twn3_test.c
blob: 734201e10889df5bc0d67d5ab8ec7920ce8ae89d (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include "libtwn3.h"

#include <errno.h>
#include <string.h>


int main(int argc, char** argv){
	char data[1024];
	unsigned u;

	int device = twn3_open("/dev/ttyACM3");

	printf("Device is at fd %d\n", device);
	if(device < 0){
		printf("%s\n", strerror(errno));
		return EXIT_FAILURE;
	}

	//check version
	if(twn3_sync_read_version(device, 0, data, sizeof(data)) >= 0){
		printf("Connected reader firmware version: %s\n", data);
	}

	//read eeprom
	for(u = 0; u < 0x15; u++){
		uint8_t regdata = 0;
		twn3_sync_read_eeprom(device, 0, u, &regdata);
		printf("Register %d has data %02X\n", u, regdata);
	}

	//write some userdata
	//twn3_sync_write_eeprom(device, 0, 19, 0xAA);

	//set ExtendID bit
	//twn3_sync_write_eeprom(device, 0, 5, 0x05);

	//restart device
	//twn3_sync_restart(device, 0);

	//store a key
	//uint8_t key[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
	//twn3_sync_storekey(device, 0, 12, key);
	
	//wait for a single tag
	int status;
	uint8_t type = tag_none;
	uint8_t serial[20];
	size_t serial_length = sizeof(serial);
	for(status = twn3_sync_select_first(device, 0, &type, serial, &serial_length);
			status == 0;
			status = twn3_sync_select_first(device, 0, &type, serial, &serial_length)){
		if(type != tag_none){
			printf("Tag with UID length %lu found, type %02X\n", serial_length, type);
			break;
		}
		serial_length = sizeof(serial);
	}

	close(device);
	return EXIT_SUCCESS;
}