9-SIM資料互動之-F2(STATUS)
F2-STATUS
F2即讀取所處檔案的狀態資訊,F2只能對於MF/DF檔案有效,對於EF檔案是無效的,如果讀EF檔案,則返回的是其上一層DF的fcp。讀取的內容該指令一般當裝置撥上號後大概30秒左右就會有一次心跳資料,
F2指令比較固定:80 F2 P1 P2 XX(XX代表要讀取的長度)
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | 含義 |
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 無指示 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 當前的應用正在被初始化 |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 終端將要終止當前應用 |
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | 含義 |
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 與SELECT 命令相同 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 返回當前選擇應用的DFNAME TLV |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 無資料返回 |
注意:F2只能對於MF/DF檔案有效,對於EF檔案是無效的,如果讀EF檔案,則返回的是其上一層DF的fcp
1.正常讀取
指令格式:80 F2 00 00 XX
3F00
=>00 A4 00 04 02 <=A4 =>3F 00 <=61 2F =>80 F2 00 00 2F <=F2 622D8202782183023F00A50780017183024DB48A01058B062F0601020002C60F90016095010083010183018183010A 90 00
3F00->7F20
=>00 A4 00 04 02 <=A4 =>3F 00 <=61 2F =>00 A4 00 04 02 <=A4 =>7f 20 <=61 1A =>80 F2 00 00 1A <=F2 62188202782183027F208A01058B032F0602C606900100830101 90 00
3F00->7F20->6F07
=>00 A4 00 04 02 <=A4 =>3F 00 <=61 2F =>00 A4 00 04 02 <=A4 =>7f 20 <=61 1A =>00 A4 00 04 02 <=A4 =>6F 07 <=61 19 =>80 F2 00 00 19 <=F2 62188202782183027F208A01058B032F0602C6069001008301 61 01//返回的其實還是,2F20的資料,所以直接用7F20的長度讀取 =>80 F2 00 00 1A <=F2 62188202782183027F208A01058B032F0602C606900100830101 90 00
指令格式:80 F2 00 0C 00
3F00
=>00 A4 00 04 02 <=A4 =>3F 00 <=61 2F =>80 F2 00 0C 00 <=90 00
指令格式:80 F2 01 01 XX
3F00
=>00 A4 00 04 02 <=A4 =>3F 00 <=61 2F =>80 F2 01 01 12 <=F2 8410A0000000871002FF86FFFF89FFFFFFFF 90 00
AID,即2F00的B2記錄中的一段
2F00 B2
=>00 A4 00 04 02 <=A4 =>3F 00 <=61 2F =>00 A4 00 04 02 <=A4 =>2F 00 <=61 1C =>00 b2 01 04 26 <=B2 61244F10A0000000871002FF86FFFF89FFFFFFFF5010434D43435744374D503176322E302020 90 00
2.讀取少於原有記錄長度
雖然F2讀取的內容和C0讀取的一樣,都是fcp。但是不像C0的讀取,沒讀取完需要接著讀取剩餘的位元組數,而是你要讀多少就給你多少,然後告訴你剩餘多少就行了。
=>00 A4 00 04 02 <=A4 =>3F 00 =>80 F2 00 00 20 <=F2 622D8202782183023F00A50780017183024DB48A01058B062F0601020002C60F 61 0F //還剩餘0F的長度沒有讀取完成 =>80 F2 00 00 0F <=F2 622D8202782183023F00A507800171 61 20 //還剩餘20的長度沒有讀取完成
3.讀取多於/00原有資料
=>00 A4 00 04 02 <=A4 =>3F 00 =>80 F2 00 00 00 <=6C 2F//返回資料長度 =>80 F2 00 0C 00 <=6C 2F//返回資料長度 =>80 F2 00 00 2F <=F2 622D8202782183023F00A50780017183024DB48A01058B062F0601020002C60F90016095010083010183018183010A 90 00