Sam*_*ček 1 android apdu led smartcard-reader acr122
有没有人知道如何通过Reader.control()Android 上的方法控制ACR122U的双色LED ?(图书馆acssmc-1.1.3).
我正在阅读API并且不知道命令描述的含义:
例:
byte[] command = {(byte) 0xFF, (byte) 0x00, (byte) 0x40, (byte) 0b01110111, (byte) 0x04, (byte) 20, (byte) 30, (byte) 3, (byte) 2};
Run Code Online (Sandbox Code Playgroud)
这些东西我不明白:
一些解释的例子很棒.
更改LED状态的命令是
+------+------+------+------+------+------+------+------+------+ | CLA | INS | P1 | P2 | Lc | DATA | +------+------+------+------+------+------+------+------+------+ | 0xFF | 0x00 | 0x40 | SC | 0x04 | T1 | T2 | #R | 0x00 | +------+------+------+------+------+------+------+------+------+
其中SC定义LED的状态(连续开/关,闪烁),T1/T2定义闪烁波形,#R定义闪烁波形的重复次数.
因此,定义LED应该如何闪烁以及它们在完成闪烁后应该如何看的主要参数是SC.这是一个8位的字段:
因此,假设您设置SC的第4位和第6位(并清除其余部分),即SC = 0x50.此外,设置T1 = 5(0x05),T2 = 10(0x0A)和#R = 2(0x02).因此,您有以下命令:
+------+------+------+------+------+------+------+------+------+ | 0xFF | 0x00 | 0x40 | 0x50 | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 | +------+------+------+------+------+------+------+------+------+
然后绿色LED将熄灭,红色LED将以下列波形闪烁两次:
RED ON ----------\ /----------\
| | |
RED OFF \--------------------/ \--------------------
\________/ \__________________/ \________/ \__________________/
T1 = 500ms T2 = 1000ms T1 = 500ms T2 = 1000ms
\_____________________________/ \_____________________________/
Repetition 1 Repetition 2
现在,让我们假设你也想要闪烁绿色LED,但是它的初始状态设置为关闭(这样闪烁在红色和绿色之间切换而不是红色和没有光).因此,您还要设置SC的第7位,即SC = 0xD0.因此,您有以下命令:
+------+------+------+------+------+------+------+------+------+ | 0xFF | 0x00 | 0x40 | 0xD0 | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 | +------+------+------+------+------+------+------+------+------+
然后红色LED和绿色LED将以下列波形交替闪烁两次:
RED ON ----------\ /----------\
| | |
RED OFF \--------------------/ \--------------------
GREEN ON /--------------------\ /--------------------
| | |
GREEN OFF ----------/ \----------/
\________/ \__________________/ \________/ \__________________/
T1 = 500ms T2 = 1000ms T1 = 500ms T2 = 1000ms
\_____________________________/ \_____________________________/
Repetition 1 Repetition 2
现在,让我们假设闪烁完成后,您希望红色LED持续亮起,绿色LED持续关闭.因此,您需要设置位2和3,以便能够定义两个LED的最终状态.(如果不设置这些位,则将忽略位0和1的值.)然后,您需要定义红色的最终状态(位0 = 1)和绿色关闭(位1 = 0).因此,您得到SC = 0xDD.因此,您有以下命令:
+------+------+------+------+------+------+------+------+------+ | 0xFF | 0x00 | 0x40 | 0xDD | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 | +------+------+------+------+------+------+------+------+------+
然后红色LED和绿色LED将交替闪烁两次,闪烁后红色LED将亮起,绿色LED将熄灭.您将获得以下波形:
RED ON ----------\ /----------\ /--------------...
| | | |
RED OFF \--------------------/ \--------------------/
GREEN ON /--------------------\ /--------------------\
| | | |
GREEN OFF ----------/ \----------/ \--------------...
\________/ \__________________/ \________/ \__________________/
T1 = 500ms T2 = 1000ms T1 = 500ms T2 = 1000ms
\_____________________________/ \_____________________________/ \_____________...
Repetition 1 Repetition 2 Final state
最后,您希望将重复次数减少到1(#R = 0x01),并且要反转闪烁波形的高低相位(T1 = 0x0A和T2 = 0x05).因此,您有以下命令:
+------+------+------+------+------+------+------+------+------+ | 0xFF | 0x00 | 0x40 | 0xDD | 0x04 | 0x0A | 0x05 | 0x01 | 0x00 | +------+------+------+------+------+------+------+------+------+
您将获得以下波形:
RED ON --------------------\ /--------------...
| |
RED OFF \----------/
GREEN ON /----------\
| |
GREEN OFF --------------------/ \--------------...
\__________________/ \________/
T1 = 1000ms T2 = 500ms
\_____________________________/ \_____________...
Repetition 1 Final state
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |