• 开发底层硬件应该怎么编写接口文档


    开发底层硬件应该怎么编写接口文档

    这几天在做超市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、串口参数举例明白:

  • 相关阅读:
    Effective C++ 条款7 关于基类的virtual析构和nonvirtual析构
    关于git 子模块
    存储类别关键字
    rm 配合正则表达式使用
    左值引用,右值引用,通用引用
    Effective C++ 条款4 使用前先初始化
    Selfgrowth
    学习随记贪心
    关于JS中Object对象的key及key的排序
    Troubles and Obstacles
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/5596213.html
Copyright © 2020-2023  润新知