C++ v android (eclipse)
2 naročnika
2 naročnika
Zdravo,
Imam eno vprašanje. Pred časom (kakih 8let) sem naredil program, ki deluje v okolju WinCE, namen pa je branje brezkontaktnih kartic Mifare 1k in nato izpis podatkov. Gre se za avtobusne karte. Sedaj pa bi rad ta program predelal v android, kar mi tudi že delno uspeva, lepo preberem/odklenem pravilni sektor in pravilne bloke in dobim ven neko HEX številko v smislu 00000F3E40045....Pač vse znake iz tega sektorja.
Kako bi najlažje sedaj to hex kodo "prebral" v svojo strukturo? Nimam namreč nobenega pojma o androidu in se šele učim, a to bi res rabil...
Je pa sedaj v C++ stvar taka: Preberem karto in z dobljeno informacijo (HEX) napolnim tole strukturo (iz katere nato preko druge funkcije preberem potrebne podatke):
BYTE
global_mask[26] = { 0x00,0xFF,0xFF,0xFF,
0x00,0x0F,0xFF,0xFF,
0x00,0x7F,
0x00,0x7F,
0x00,0x0F,
0x00,0x03,
0x00,0xFF,
0x00,0x0F,
0x00,0x3F,
0x00,0x1F,
0x00,0x1F};
Razlaga te strukture pa je taka:
/* stevilo bitov :
cardnum = 0x00,0xFF,0xFF,0xFF, 24 bitov, max stev :16777216
potniknum = 0x00,0x0F,0xFF,0xFF, 20 bitov, max stev : 1048576
stkop = 0x00,0x7F, 7 bitov, max stev : 128
storg = 0x00,0x7F, 7 bitov, max stev : 128
tippkarte = 0x00,0x0F, 4 bitov, max stev : 16
appllno = 0x00,0x03, 2 bitov, max stev : 4
tipkarte = 0x00,0xFF, 8 bitov, max stev : 256
bazictype = 0x00,0x0F, 4 biti, max stev : 16
linec = 0x00,0x3F, 6 bitov, max stev : 64
colc = 0x00,0x1F, 5 bitov, max stev : 32
pcnum = 0x00,0x1F, 5 bitov, max stev : 32
skupaj : 92 bitov
*/
Torej, kako bi isto/enako stvar naredil pod androidom?
Hvala za odgovore!
2 odgovora
Mislem, da iščeš ByteBuffer:
http://docs.oracle.com/javase/7/docs/api/java/nio/ByteBuffer.html
oz. primer na SO: http://stackoverflow.com/a/3834515