aimeio-dll: use aimepcsc
This commit is contained in:
parent
78f62a4e79
commit
be9897a230
|
@ -9,11 +9,10 @@
|
|||
#include <time.h>
|
||||
|
||||
#include "aimeio/aimeio.h"
|
||||
#include "aimepcsc/aimepcsc.h"
|
||||
|
||||
static uint8_t aime_io_aime_id[10];
|
||||
static uint8_t aime_io_felica_id[8];
|
||||
static bool aime_io_aime_id_present;
|
||||
static bool aime_io_felica_id_present;
|
||||
static struct aimepcsc_context *ctx;
|
||||
static struct aime_data data;
|
||||
|
||||
uint16_t aime_io_get_api_version(void)
|
||||
{
|
||||
|
@ -22,23 +21,49 @@ uint16_t aime_io_get_api_version(void)
|
|||
|
||||
HRESULT aime_io_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
AllocConsole();
|
||||
SetConsoleTitle("aimeio-pcsc");
|
||||
FILE* fp;
|
||||
freopen_s(&fp, "CONOUT$", "w", stdout);
|
||||
|
||||
ctx = aimepcsc_create();
|
||||
if (!ctx) {
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
ret = aimepcsc_init(ctx);
|
||||
|
||||
if (ret != 0) {
|
||||
printf("aimeio-pcsc: failed to initialize: %s\n", aimepcsc_error(ctx));
|
||||
aimepcsc_destroy(ctx);
|
||||
ctx = NULL;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
printf("aimeio-pcsc: initialized with reader: %s\n", aimepcsc_reader_name(ctx));
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT aime_io_nfc_poll(uint8_t unit_no)
|
||||
{
|
||||
int ret;
|
||||
HRESULT hr;
|
||||
|
||||
if (unit_no != 0) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/* Reset presence flags */
|
||||
memset(&data, 0, sizeof(data));
|
||||
printf("aimeio-pcsc: poll.\n");
|
||||
|
||||
aime_io_aime_id_present = false;
|
||||
aime_io_felica_id_present = false;
|
||||
ret = aimepcsc_poll(ctx, &data);
|
||||
|
||||
// TODO
|
||||
if (ret < 0) {
|
||||
printf("aimeio-pcsc: poll failed: %s\n", aimepcsc_error(ctx));
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -49,13 +74,14 @@ HRESULT aime_io_nfc_get_aime_id(
|
|||
size_t luid_size)
|
||||
{
|
||||
assert(luid != NULL);
|
||||
assert(luid_size == sizeof(aime_io_aime_id));
|
||||
|
||||
if (unit_no != 0 || !aime_io_aime_id_present) {
|
||||
if (unit_no != 0 || data.card_type != Mifare) {
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
memcpy(luid, aime_io_aime_id, luid_size);
|
||||
assert(luid_size == data.card_id_len);
|
||||
|
||||
memcpy(luid, data.card_id, luid_size);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -67,14 +93,14 @@ HRESULT aime_io_nfc_get_felica_id(uint8_t unit_no, uint64_t *IDm)
|
|||
|
||||
assert(IDm != NULL);
|
||||
|
||||
if (unit_no != 0 || !aime_io_felica_id_present) {
|
||||
if (unit_no != 0 || data.card_type != FeliCa) {
|
||||
return S_FALSE;
|
||||
}
|
||||
|
||||
val = 0;
|
||||
|
||||
for (i = 0 ; i < 8 ; i++) {
|
||||
val = (val << 8) | aime_io_felica_id[i];
|
||||
val = (val << 8) | data.card_id[i];
|
||||
}
|
||||
|
||||
*IDm = val;
|
||||
|
|
Loading…
Reference in New Issue