新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 雙龍13.56M射頻模塊在酒店公用電腦管理中的應用

        雙龍13.56M射頻模塊在酒店公用電腦管理中的應用

        作者: 時間:2011-06-23 來源:電子產品世界 收藏

        發送的數據

        本文引用地址:http://www.104case.com/article/120739.htm

        A6 03 FC 17 05 6B

        HEAD=A6

        LENGTH=03

        LEN_CHK =FC

        COMMAND=17

        WAIT TIME=05

        CHECKSUM =6B

        返回信息為:

        MIFARE ONE S50

        A6 0C F3 17 00 0A 04 00 A6 A2 FA 69 97 08 15

        HEAD=A6

        LENGTH=0C

        LEN_CHK =F3

        COMMAND=17

        STATUS=00

        DATA=” 0A 04 00 A6 A2 FA 69 97 08 ”

        卡號

        CHECKSUM =15

         

        ID指令:

        0x1E:讀取芯片ID 號命令

        該命令用于讀取卡的ID 號。

        發送的數據

        A6 06 F9 1E 05 05 00 00 5F

        HEAD=A6

        LENGTH=06

        LEN_CHK =F9

        COMMAND=1E

        WAIT TIME=05(波特率設置值 0x0F 表示使用106K 進行收發數據)。

        PARAMETER=05 00 00TYPE B ATQB 命令)。

        CHECKSUM =5F

        模塊返回的數據為:

        A6 37 C8 1E 00 50 00 00 00 00 ** 03 ** 05 00 ** ** 20 ** 20 ** ** 24 ** 78

        00 01 ** ** 01 06 03 14 00 00 00 00 00 06 ** 10 70 ** 4B ** 8B ** ** AA ** 86

        18 ** 93 ** ** **

        HEAD=A6

        LENGTH=37

        LEN_CHK =C8

        COMMAND=1E

        STATUS=00

        DATA=” 50 00 00 00 00 ** 03 ** 05 00 ** ** 20 ** 20 ** ** 24 ** 78 00

        身份證卡ID

        01 ** ** 01 06 03 14 00 00 00 00 00 06 ** 10 70 ** 4B ** 8B ** ** AA **

        86 18 ** 93 ** ** ** ”

        * 號部分為隱去的身份信息。返回的數據信息里面從第13 個字節開始的8 個字節的數據是身份證卡片的ID 號)。

        CHECKSUM =74

         

        讀卡功能的步驟說明:

        1.發送讀MIFARE ONE S50ID命令

        參考代碼 ApdComPort1.PutBlock(ReadMOneCard, Length(ReadMOneCard));

        2.如成功,則返回卡號數據,結束;不成功則轉到步驟3

        3.發送二代身份證的ID指令

        參考代碼 ApdComPort1.PutBlock(ReadPersonCard, Length(ReadPersonCard));

        4.如成功,則返回身份證卡號數據,結束;不成功返回無卡,結束

        其中發送數據的聲明如下

        const

            ReadMOneCard   : array[0..5] of byte = ($A6,$03,$FC,$17,$05,$6B);

            ReadPersonCard : array[0..8] of byte = ($A6,$06,$F9,$1E,$05,$05,$00,$00,$5F);

        編程中串口通訊實現使用了專用的串口控件TurboPower Async Professional包,發送串口數據使用了其中"串行端口"組件TApdComPort,接收串口數據使用了其中數據包組件TApdDataPacket,在TApdDataPacket組件的OnPacket事件中處理接收到的數據,下面參考代碼說明如何提取卡號。

        procedure TFormReadIDCard.ApdDPSuccS50Packet(Sender: TObject;

          Data: Pointer; Size: Integer);

        ...

            For i := 0 To 4-1 Do

            begin

                baCardID[i] := Buffer[i + 7];//7開始的4個字節為卡號

            end;

         

        procedure TFormReadIDCard.ApdDPSuccIDCPacket(Sender: TObject; Data: Pointer;

          Size: Integer);

        ...

            For i := 0 To 8-1 Do

            begin

                baCardID[i] := Buffer[i + 16]; //16開始的8個字節為卡號

            end;

         

        鎖定電腦功能實現:

        a.        偽裝屏保狀態, SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, NULL, 0);

        b.        禁止任務切換, SystemParametersInfo(SPI_SETFASTTASKSWITCH, FALSE, NULL, 0);

        c.        禁止屏保運行, SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE,0, SPIF_SENDWININICHANGE);

        d.        禁止任務管理器, "Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr"設置這個鍵值為1

        e.        鉤住所有鼠標和鍵盤事件,

        hLKeyboardProcHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC) _LKeyboardProcHook, hInstance, 0L);

        hLMouseProcHook =SetWindowsHookEx(WH_MOUSE_LL, (HOOKPROC) _LMouseProcHook, hInstance, 0L);

        _LKeyboardProcHook_LMouseProcHook2個回調函數中根據需要過濾掉鼠標和鍵盤事件

        f.         開機自動運行自己,"Software\Microsoft\Windows\CurrentVersion\Run"下增加一個鍵值"CmpMan=c:CmpMan.exe



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 建湖县| 汤阴县| 姜堰市| 宜章县| 富锦市| 阿尔山市| 中山市| 临城县| 兴国县| 洛扎县| 阿坝| 大荔县| 简阳市| 婺源县| 海宁市| 桦川县| 伊通| 大荔县| 平南县| 昌邑市| 体育| 景德镇市| 论坛| 华坪县| 和龙市| 镇原县| 原阳县| 府谷县| 阳城县| 巴东县| 昭苏县| 泊头市| 山东省| 广水市| 陆川县| 峨眉山市| 吉木萨尔县| 湖南省| 静安区| 慈溪市| 武清区|