
※ 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();
}
0 Comments.