開發底層硬件應該怎么編寫接口文檔


開發底層硬件應該怎么編寫接口文檔

這幾天在做超市RFID結算系統的上位機程序編寫,用的是VB.NET。底層用的是別人開發好的SDK,為什么要寫這一篇文章呢?最近因為手頭設備的功能限制,我就在網上找其他的公司的RFID射頻卡讀寫器,由於我是做上層開發,所以需要設備供應商提供底層SDK二次開發包,找了好多設備提供商 ,也跟他們索取各自提供的SDK,但總的來說,我還是覺得最先用的這個設備的廠家提供的SDK是最詳細的,現在簡單說明如下:

一、函數說明:

1、目錄結構清晰:

 

2、函數返回值,參數用表格說明,清晰簡潔:

3、參數類型說明詳細:

4、變量在各個上位機編程環境中對應的變量類型(以VB.net為例):

5、錯誤碼詳細:

附錄3. RFIDLIB API錯誤代碼表

錯誤代碼

  描述

0

無錯誤,表示API調用成功。

-1

未知錯誤

-2

與讀卡器硬件的通信失敗

-3

API的傳入參數有誤

-4

API的傳入參數的值不支持,如參數值只能是0-5,如果傳入6那么會返回該錯誤。

-5

超時,發送到讀卡器的命令,在設定時間內等不到數據返回。

-6

API申請內存失敗

-7

功能未開啟

-8

保留

-9

保留

-10

保留

-11

保留

-12

讀卡器返回的數據包長度有誤

-13

保留

-14

保留

-15

保留

-16

保留

-17

讀卡器返回操作失敗標識數據包,可用API

RDR_GetReaderLastReturnError 獲取該失敗的錯誤代碼。

-18

保留

-19

保留

-20

保留

-21

Inventory的停止觸發器發生,舉個例子:假設設定1秒為Inventory

的最大讀卡時間,如果在1秒鍾內還沒讀完所有的標簽,讀卡器會終止Inventory,那么API會返回該錯誤告訴應用程序,可能還有標簽沒讀完。

-22

標簽操作命令不支持

-23

傳入RDR_SetConfig或RDR_GetConfig的配置項不支持。

-24

保留

-25

TCP socket錯誤,API返回該錯誤表明TCP連接已斷開。

-26

應用層傳入的緩沖區太小。

-27

與讀卡器返回的數據有誤。

 

6、通用函數簡介:

6.1. 通用函數介紹

      

序號

函數說明

介紹

1

COMPort_Enum

枚舉windows 操作系統已加載的串口

2

COMPort_GetEnumItem

獲取枚舉到的串口名稱

3

RDR_LoadReaderDrivers

加載所有的設備驅動庫

4

RDR_GetLoadedReaderDriverCount

獲取已加載的設備驅動的數量

5

RDR_GetLoadedReaderDriverOpt

獲取已加載的設備驅動的參數值,包含的參數有驅動類別,名稱,ID,支持的接口類型。驅動類別分為Reader(讀卡器類),MTGate(會議簽到門類),LSGate(圖書館安全門類) 。

6

HID_Enum

枚舉已連接計算機的USB設備,需要傳入設備驅動的名稱。

7

HID_GetEnumItem

獲取已枚舉到的USB設備的信息,如系列號,驅動路徑等。

8

RDR_Open

打開通信接口,並創建設備驅動實例。以下所有的API都需要傳入驅動的實例句柄

9

RDR_Close

關閉通信接口,並銷毀設備驅動實例。

10

RDR_CreateInvenParamSpecList

創建RDR_TagInventory的盤點參數列表的數據節點

11

RDR_TagInventory

盤點在射頻感應的所有標簽

12

RDR_GetTagDataReportCount

獲取盤點到的標簽數據報告的數量

13

RDR_GetTagDataReport

獲取盤點到的標簽數據報告

14

RDR_TagDisconnect

斷開與標簽的連接

15

RDR_DisconnectAllTags

斷開所有與標簽的連接

16

RDR_GetReaderLastReturnError

獲取設備最后一次返回的錯誤代碼

17

RDR_SetAcessAntenna

設置讀寫天線編號。對於多天線接口的讀卡器,必須先調用該函數打開要讀寫的標簽所在的天線。

18

RDR_GetReaderInfor

獲取設備信息,已字符串的方式輸出,信息參數的含義請查看相關設備驅動的”用戶手冊”。

19

RDR_SystemReset

控制設備重啟,該功能不是所有設備都支持,請查看相關設備驅動的”用戶手冊”。

20

RDR_LoadFactoryDefault

控制設備恢復出廠設置,該功能不是所有設備都支持,請查看相關設備驅動的”用戶手冊”

21

RDR_OpenRFTransmitter

打開射頻輸出,該功能不是所有設備都支持,請查看相關設備驅動的”用戶手冊”

22

RDR_CloseRFTransmitter

關閉射頻輸出,該功能不是所有設備都支持,請查看相關設備驅動的”用戶手冊”

23

RDR_SetCommuImmeTimeout

使API馬上超時退出,該函數可用於線程快速退出。調用了該函數之后,在線程退出之前,需要調用RDR_ResetCommuImmeTimeout恢復超時標志。

24

RDR_ResetCommuImmeTimeout

恢復超時標志

25

RDR_GetAntennaInterfaceCount

獲取天線接口數量

26

RDR_GetOutputCount

獲取輸出端口數量

27

RDR_GetOutputName

獲取輸出端口名稱

28

RDR_CreateSetOutputOperations

創建輸出端口的操作集數據節點,調用RDR_AddOneOutputOperation把輸出端口的操作加入這操作集。

29

RDR_AddOneOutputOperation

加入輸出端口的操作

30

RDR_SetOutput

根據輸出端口的操作控制輸出端口輸出高低電平。

31

RDR_ConfigBlockWrite

配置信息寫操作函數

32

RDR_ConfigBlockRead

配置信息讀操作函數

33

RDR_ConfigBlockSave

配置信息保存操作函數

34

RDR_CreateRS485Node

在已打開的串口通信接口層的基礎上,創建RS485的節點實例句柄。

35

RDR_DetectNoise

射頻噪音檢測

36

RDR_GetGPICount

獲取通用輸入端口的數量

37

RDR_GetGPIsStatus

獲取通用輸入端口的狀態

38

RDR_ExeSpecialControlCmd

執行設備的特殊指令,設備支持哪些特殊指令請查閱設備的驅動的”用戶手冊”。

39

RDR_SetEventHandler

設置事件處理器

40

DNODE_Destroy

釋放由動態庫創建的內存,如:RDR_CreateInvenParamSpecList

 

 

7、操作流程圖

8、串口參數舉例明白:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM