※ ArduinoとRC-S620/Sの接続については(ArduinoでRELET(FeliCa電子マネー残高照会機)モドキを作ろう)で図を描いているのでそちらを参考にしてください。
ライブラリの拡張
公式で提供されているArduino用ライブラリを拡張する必要があります。
RCS620S.h 29行目付近に追加
int tginit(const uint8_t* idm);
RCS620S.cpp 80行目付近に追加
int RCS620S::tginit(const uint8_t* idm) { uint8_t response[RCS620S_MAX_RW_RESPONSE_LEN]; uint16_t responseLen; /* TgInitTarget command parts */ uint8_t command[RCS620S_MAX_RW_RESPONSE_LEN] = {0x00}; uint8_t param_1[ 9] = {0xd4, 0x8c, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40}; uint8_t param_2[10] = {0xff}; /* Make TgInitTarget command */ memcpy(&command[ 0], param_1, 9); memcpy(&command[ 9], idm, 8); memcpy(&command[17], param_2, 10); memcpy(&command[27], idm, 8); /* Execute TgInitTarget */ rwCommand(command, 41, response, &responseLen); return 1; }
スケッチの作成
Arduino側のスケッチ
#include <RCS620S.h> #include <string.h> RCS620S rcs620s; void setup() { int ret; Serial.begin(115200); ret = rcs620s.initDevice(); while (!ret) {} } void loop() { int ret; // SET IDm ret = rcs620s.tginit((const uint8_t*)"\x08\x07\x06\x05\x04\x03\x02\x01"); rcs620s.rfOff(); }
最近のコメント