summaryrefslogtreecommitdiff
path: root/easycard.2/notes.txt
blob: fefc5f1c46eb8291ace6e1faf06d1d6f9463376e (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Easycard #2:

Address 0x80 and 0x90
	VALUE BLOCK containing the amount in NTD
		0000080 0125 0000 feda ffff 0125 0000 ff00 ff00                                   
	VALUE BLOCK containing the amount in NTD
		0000090 0184 0000 fe7b ffff 0184 0000 ff00 ff00

Address 0xe0 and 0x100
	DATA block containing transaction entering MRT Liuzhangli
	00000e0 de01 63d8 004c 0000 0190 0d00 6ad6 0002
	0000100 de01 63d8 004c 0000 0190 0d02 6ad6 0002
		01	transaction id / counter
		4c63d8	upper 24 bits of unix timestamp
		0000	no charge
		0190	remaining balance on card
		0d	MRT station code Liuzhangli
		6ad6	most likely reader number

Address 0xd0 and 0x110
	DATA BLOCK containing transaction leaving MRT Liuzhangli
	00000d0 b502 63d9 114c 000c 0184 0d01 6d19 0002
	0000110 b502 63d9 114c 000c 0184 0d02 6d19 0002
		02	transaction id / counter
		4c6349	upper 24 bits of unix timestamp
		000c	12 NTD charge
		0184	remaining account balance on card
		0d	MRT station code Liuzhangli
		6d19	most likely reader number

Address 0x1d0:
	DATA BLOCK containing part of leaving MRT station
	00001d0 0000 0000 000d 0000 b500 63d9 004c 0000
		000d	MRT station code Liuzhangli
		4c63d9	upper 24 bits of unix timestamp

Address 0x1e0:
	DATA BLOCK containing part of last MRT entering transaction
	00001e0 0000 0100 000d 0000 de00 63d8 004c 0000
		0x0d	== Station Number (Liuzhangli)
		4c63d8	upper 24 bits of unix timestamp

Address 0x120
	DATA BLOCK containing transaction at Starbucks in XinDian (close Openmoko):
		0000120 4403 63fc 204c 005f 0125 0197 d07b 0097
		0x03	transaction number
		4c63fc	upper 24 bits of unix timestamp
		0x5f	==  95 -> NTD amount of purchase
		0x125	== 293 -> NTD remaining after transaction

Address 0x3e0
	DATA BLOCK somehow related to shop purchasing
		00003e0 0000 0000 0000 0000 0000 0b00 233d 0000
			first purchase with easycard.1 (7eleven)
			0x0b == day of month of purchase (11th)
			0x0023 == 35 -> amount of purchase
		00003e0 0000 0000 0000 0000 0000 0c00 4b3d 0000
			second purchase with easycard.1 (7eleven)
			0x0c == day of month of purchase (12th)
			0x004b == 75 -> amount of purchase
		00003e0 0000 0000 0000 0000 0000 0c00 5f3d 0000
			first purchase with easycard.2 (starbucks)
			0x0c == day of month of purchase (12th)
			0x005f == 95 -> amount of purchase
		00003e0 0000 0000 0000 0000 0000 0c00 233d 0001
			second purchase with easycard.2 (cosmed)
			0x0c == day of month of purchase (12th)
			0x0123 == 291 -> total of all purchases today


== timestamp ==

0x63fc equals 	2010-08-12 13:50
0x63d9 is abt. 	2010-08-12 11:30
0x63d8 is abt. 	2010-08-12 11:22
0x6316 is abt.	2010-08-12 21:30

current working assumption: one tick of the timestamp equals 4 minutes.
this means last wrap of counter was 71 days ago, about june 2nd.

UPDATE: the 0x4c in front actually makes it the upper 24 bits of a unix
timestamp.  However, it doesn't count in UTC but in local time.

== Futher notes ==
* purchase at Starbucks prints UID of card in decimal (3224478099 ==
  0xc031a193) on receipt
* purchase at other shops indicates this is standard practise


+00000d0 b502 63d9 114c 000c 0184 0d01 6d19 0002
+0000110 b502 63d9 114c 000c 0184 0d02 6d19 0002

=== station numbers ==

0x0d	Liuzhangli
0x24	Dapinglin

they are the same as the decimal values in the OnMouseOver in the map
at http://english.trtc.com.tw/ct.asp?xItem=1056373&CtNode=27496&mp=122032
personal git repositories of Harald Welte. Your mileage may vary