更新说明
This commit is contained in:
parent
b16c63772b
commit
60bee2194a
@ -59,12 +59,12 @@ void loop() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
// MIFARE 处理
|
// MIFARE 处理
|
||||||
case CMD_MIFARE_KEY_SET_A:
|
case CMD_MIFARE_KEY_SET_A: // 设置 MIFARE keyA
|
||||||
memcpy(KeyA, req.key, 6);
|
memcpy(KeyA, req.key, 6);
|
||||||
res_init();
|
res_init();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_MIFARE_KEY_SET_B:
|
case CMD_MIFARE_KEY_SET_B: // 设置 MIFARE keyB
|
||||||
res_init();
|
res_init();
|
||||||
memcpy(KeyB, req.key, 6);
|
memcpy(KeyB, req.key, 6);
|
||||||
break;
|
break;
|
||||||
|
40
README.md
40
README.md
@ -7,23 +7,23 @@
|
|||||||
- 定制使用例(主要的开发测试环境):[ESP32-CardReader](https://github.com/Sucareto/ESP32-CardReader)
|
- 定制使用例(主要的开发测试环境):[ESP32-CardReader](https://github.com/Sucareto/ESP32-CardReader)
|
||||||
|
|
||||||
|
|
||||||
### 使用方法:
|
### 使用方法
|
||||||
1. 按照 [PN532](https://github.com/elechouse/PN532) 或 [Aime_Reader_PN532](https://github.com/Sucareto/Aime_Reader_PN532) 的提示安装库
|
1. 按照 [Aime_Reader_PN532](https://github.com/Sucareto/Aime_Reader_PN532) 的提示安装库 **(必须)**
|
||||||
2. 按照使用方式,在 Arduino 和 PN532 接好连接线(I2C 或 SPI 或 HSU),并调整 PN532 上的拨码开关
|
2. 按照使用方式,在 Arduino 和 PN532 接好连接线(I2C 或 SPI 或 HSU),并调整 PN532 上的拨码开关
|
||||||
3. 接上 WS2812B 灯条(可选,不会影响正常读卡功能)
|
3. 接上 WS2812B 灯条(可选,不会影响正常读卡功能)
|
||||||
4. 上传 [ReaderTest](tools/ReaderTest/ReaderTest.ino) 测试硬件是否工作正常
|
4. 上传 [ReaderTest](tools/ReaderTest/ReaderTest.ino) 测试硬件是否工作正常
|
||||||
5. 若读卡正常,可按照游戏支持列表打开设备管理器设置 COM 端口号
|
5. 若读卡正常,可按照游戏支持列表打开设备管理器设置 COM 端口号
|
||||||
6. 按照游戏的波特率设置代码的`high_baudrate`选项,`115200`是`true`,`38400`是`false`
|
6. 按照游戏的波特率设置代码的`high_baudrate`选项,`115200`是`true`,`38400`是`false`
|
||||||
7. 如果有使用 [Segatools](https://github.com/djhackersdev/segatools),参考 [segatools.ini 设置教程](https://github.com/djhackersdev/segatools/blob/master/doc/config/common.md#aime) 关闭 Aime 模拟功能
|
7. 如果有使用 [Segatools](https://github.com/djhackersdev/segatools),参考 [segatools.ini 设置教程](https://github.com/djhackersdev/segatools/blob/master/doc/config/common.md#aime) 关闭 Aime 模拟功能
|
||||||
8. 上传程序打开游戏测试
|
8. 上传 [Arduino-Aime-Reader](Arduino-Aime-Reader.ino)打开游戏测试
|
||||||
|
|
||||||
如果需要自定义 Aime 卡,安装 [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool) 或其他同样效果的软件,修改 [Aime 卡示例](doc/aime示例.mct) 后写入空白 MIFARE UID/CUID 卡,即可刷卡使用。
|
如果需要自定义 Aime 卡,安装 [MifareClassicTool](https://github.com/ikarus23/MifareClassicTool) 或其他同样效果的软件,修改 [Aime 卡示例](doc/aime示例.mct) 后写入空白 MIFARE UID/CUID 卡,即可刷卡使用。
|
||||||
关于自定义 Aime 卡的写入和读取问题,请参考 [SAK(88->08)](https://github.com/Sucareto/Arduino-Aime-Reader/pull/17) 的讨论。
|
关于自定义 Aime 卡的写入和读取问题,请参考 [SAK(88->08)](https://github.com/Sucareto/Arduino-Aime-Reader/pull/17) 的讨论。
|
||||||
|
|
||||||
某些 Arduino 可能需要在游戏主程序连接前,给串口以正确的波特率发送 DTR/RTS;可以先打开一次 Arduino 串口监视器再启动游戏程序。
|
某些 Arduino 可能需要在游戏主程序连接前,给串口以正确的波特率发送 DTR/RTS,可以先打开一次 Arduino 串口监视器再启动游戏程序。
|
||||||
|
|
||||||
|
|
||||||
### 支持游戏列表:
|
### 支持游戏列表
|
||||||
| 代号 | 默认 COM 号 | 支持的卡 | 默认波特率 |
|
| 代号 | 默认 COM 号 | 支持的卡 | 默认波特率 |
|
||||||
| - | - | - | - |
|
| - | - | - | - |
|
||||||
| SDDT/SDEZ | COM1 | FeliCa,MIFARE | 115200 |
|
| SDDT/SDEZ | COM1 | FeliCa,MIFARE | 115200 |
|
||||||
@ -38,7 +38,7 @@
|
|||||||
- 在游戏和服务器支持的情况下,本读卡器程序可正常使用 emoney 端末认证和刷卡支付功能
|
- 在游戏和服务器支持的情况下,本读卡器程序可正常使用 emoney 端末认证和刷卡支付功能
|
||||||
|
|
||||||
|
|
||||||
### 开发板适配情况:
|
### 开发板适配情况
|
||||||
| 开发板名 | 主控 | 备注 |
|
| 开发板名 | 主控 | 备注 |
|
||||||
| - | - | - |
|
| - | - | - |
|
||||||
| [SparkFun Pro Micro](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide#hardware-overview-pro-micro) | ATmega32U4 | 需要发送 DTR/RTS |
|
| [SparkFun Pro Micro](https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide#hardware-overview-pro-micro) | ATmega32U4 | 需要发送 DTR/RTS |
|
||||||
@ -47,17 +47,33 @@
|
|||||||
| Arduino Uno | ATmega328P + CH340 | 未实际测试,据反馈不可用 |
|
| Arduino Uno | ATmega328P + CH340 | 未实际测试,据反馈不可用 |
|
||||||
|
|
||||||
|
|
||||||
### 已知问题:
|
### 已知问题
|
||||||
- 默认未启用 FeliCa 读写功能,仅在 `CMD_CARD_DETECT` 时读取 IDm 和 PMm,该设置可以通过 `SKIP_FeliCa_THROUGH` 控制
|
- 默认未启用 FeliCa 读写功能,仅在 `CMD_CARD_DETECT` 时读取 IDm 和 PMm,该设置可以通过 `SKIP_FeliCa_THROUGH` 控制
|
||||||
- 如果启用 FeliCa 读写功能,某些游戏可能不支持所有 FeliCa 卡种类,和官方读卡器 837-15286 行为一致
|
- 如果启用 FeliCa 读写功能,某些游戏可能不支持所有 FeliCa 卡种类,和官方读卡器行为一致
|
||||||
- 因为 PN532 库支持的问题,未实现多卡同时读取,只会读到最先识别的卡片;刷不正确的 MIFARE 卡片(如交通卡、模拟卡)会导致游戏状态异常
|
- 因为 PN532 库支持的问题,未实现多卡同时读取,只会读到最先识别的卡片;刷数据不正确的 MIFARE 卡片(如交通卡、模拟卡)会导致游戏状态异常
|
||||||
- 对于未适配的命令,默认回复 `STATUS_INVALID_COMMAND`,可能会导致游戏认为读卡器不可用
|
- 对于未适配的命令,默认回复 `STATUS_INVALID_COMMAND`,可能会导致游戏认为读卡器不可用
|
||||||
- 如果遇到问题可以回滚到[稳定的 v1.0 版本](https://github.com/Sucareto/Arduino-Aime-Reader/tree/v1.0)
|
- [此处修改](https://github.com/Sucareto/Arduino-Aime-Reader/commit/ebb2565ce4c43e8de275790f52bebee381d0bca7#diff-abc09b3d07eff9d03039f4f22ac9ac0747790237d3d00258e38644dbf13f9bbbR103) 会影响 amdaemon 对固件更新的操作,参考[此处说明](https://github.com/Sucareto/Arduino-Aime-Reader/blob/b16c63772b6d94ad9fca2c82bd89f0e900ed03d6/Arduino-Aime-Reader.ino#L114)
|
||||||
|
|
||||||
|
|
||||||
### 引用库:
|
### 版本更新情况
|
||||||
|
- [最新](https://github.com/Sucareto/Arduino-Aime-Reader/tree/main)
|
||||||
|
|
||||||
|
通过 [pull/19](https://github.com/Sucareto/Arduino-Aime-Reader/pull/19) 实现了 FeliCa 的正确读写;
|
||||||
|
因未持有官方读卡器和框体等环境,无法进行更多测试,如没有 bug 或者新文档,将不会再更新。
|
||||||
|
|
||||||
|
- [v2.0](https://github.com/Sucareto/Arduino-Aime-Reader/commits/v2.0)
|
||||||
|
|
||||||
|
参考 [AiMeLib/AiMeNFCRW.h]() 重写命令标记和函数名,引入 status 定义表,并未在官方设备上确认效果。
|
||||||
|
|
||||||
|
- [v1.0](https://github.com/Sucareto/Arduino-Aime-Reader/commits/v1.0)
|
||||||
|
|
||||||
|
参考 [segatools](https://github.com/djhackersdev/segatools/blob/master/board/sg-nfc-cmd.h) 编写了基本实现;
|
||||||
|
分析了官方读卡器串口数据,通过猜测数据结构完善了大部分功能。
|
||||||
|
|
||||||
|
|
||||||
|
### 参考
|
||||||
- 驱动 WS2812B:[FastLED](https://github.com/FastLED/FastLED)
|
- 驱动 WS2812B:[FastLED](https://github.com/FastLED/FastLED)
|
||||||
- 驱动 PN532:[PN532](https://github.com/elechouse/PN532) 或 [Aime_Reader_PN532](https://github.com/Sucareto/Aime_Reader_PN532)
|
- 驱动 PN532:[PN532](https://github.com/elechouse/PN532)
|
||||||
- 读取 FeliCa 参考:[PN532を使ってArduinoでFeliCa学生証を読む方法](https://qiita.com/gpioblink/items/91597a5275862f7ffb3c)
|
- 读取 FeliCa 参考:[PN532を使ってArduinoでFeliCa学生証を読む方法](https://qiita.com/gpioblink/items/91597a5275862f7ffb3c)
|
||||||
- 读取 FeliCa 数据的程序:[NFC TagInfo](https://play.google.com/store/apps/details?id=at.mroland.android.apps.nfctaginfo),[NFC TagInfo by NXP](https://play.google.com/store/apps/details?id=com.nxp.taginfolite)
|
- 读取 FeliCa 数据的程序:[NFC TagInfo](https://play.google.com/store/apps/details?id=at.mroland.android.apps.nfctaginfo),[NFC TagInfo by NXP](https://play.google.com/store/apps/details?id=com.nxp.taginfolite)
|
||||||
- MIFARE 读写卡,数据分析:[MifareClassicTool](https://github.com/ikarus23/MifareClassicTool),[MifareOneTool](https://github.com/xcicode/MifareOneTool)
|
- MIFARE 读写卡,数据分析:[MifareClassicTool](https://github.com/ikarus23/MifareClassicTool),[MifareOneTool](https://github.com/xcicode/MifareOneTool)
|
||||||
|
Loading…
Reference in New Issue
Block a user