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

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

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

时间: 2024-10-11 00:08:57

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

[API]使用Blueprint来高雅的编写接口文档

Blueprint(http://apiary.io/)是apiary公司的工具包,用来编写API文档,类似于Markdown,是一种标记语言. 对于习惯使用RESTful API的同志们来说,使用Blueprint可以快速的写出高雅大气的文档: 下面以一个Github中的Gist服务为例,简单的演示一下Blueprint的应用. 原文地址:http://blog.callmewhy.com/2014/06/05/blueprint-tutorial/ API Blueprint是一套API描述

使用 Laravel-Swagger 编写接口文档(php)

使用 Laravel-Swagger 编写接口文档 Table of Contents Swagger 文档管理 官方网站:https://swagger.io/ 快速编写你的 RESTFUL API 接口文档工具,通过注释定义接口和模型,可以和代码文件放置一起,也可以单独文件存放. 优势 通过代码注解定义文档,更容易保持代码文档的一致性 模型复用,减少文档冗余,带来更可靠的文档 提供客户端访问接口,可以直接调试接口,不需要第三方工具进行调用测试接口 支持权限认证,等功能 Laravel Swa

djangorestframework开发出属于你自己的接口文档

经过两个星期的研究,终于做出来了.之前看了很多博客都是创建数据库去增加参数,但不是我想要的.因此就没有使用数据库去增加参数. 背景介绍:因为公司java人员开发出来一个自己的swagger界面,因为领导就说python是不是应该也可以开发出swagger界面呢?因此就把此任务交给刚入职3个月的员工. 一.环境搭建: 软件版本自己也试了好多版,终于弄了一个适合公司的版本.本次python版本是2.7.12.下面可能是你需要安装的软件包.请按顺序安装即可. pytz==2019.1django==1

Markdown编写接口文档模版

接口名称 1) 请求地址 https://apis.cnblogs.com/user/info?a=xx&b=xx 2) 调用方式:HTTP GET 3) 接口描述: 接口描述详情 4) 请求参数: GET参数: 字段名称 字段说明 类型 必填 备注 a string Y - b string Y - 5) 请求返回结果: { "errNum": 10001, "errMsg": "Param error" } 6) 请求返回结果参数说明

附录1:接口文档参考模板

https://www.w3cschool.cn/phalapi/5fhi1tth.html 附录1:接口文档参考模板 由 chanzonghuang 创建,最后一次修改 2016-11-20 虽然提供了在线接口参数的查看,但在和客户端对接过程中,我们作为后台开发,还是需要人工提供接口文档给客户端的,这里提供一个接口文档编写的模板,以供参考,并且以我们熟悉的?service=User.GetBaseInfo为例说明如何编写高效的文档. 温馨提示:斜体字表示是注释说明. 功能说明 对接口功能的简单

接口文档

什么是接口文档? 在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护. 为什么要使用接口文档? 1.项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发. 2.项目维护中或者项目人员更迭,方便后期人员查看.维护. 接口文档的核心是什么? 接口核心分为四个部分: 请求方法. uri.请求参数.返回参数. 请求方法: 即请求的方法是什么.常用的请求方法有get.post.delete.

程序员不得的不会的接口文档

一.传统方式 众所周知,我们Java程序员在写完数据接口之后,想要前端或者App工程师调用的,需要写出接口文档,方便描述每一个接口都是干什么的,需要什么,怎么请求,返回的结果又是什么?可是现在的你是否还在手写接口文档呢?在手写接口文档中,有没有遇到,文档刚写好,测试反馈接口有问题,又不得不改写接口,结果接口改完之后,发送文档对不上了,怎么办? 我在工作中,是如何编写接口文档的呢?接下来给大家聊一神器,惊喜在后面. 首先,我新建一个项目,基于Spring Boot,开发几个接口,发布运行. 编写代

第05章—Swagger2打造在线接口文档

spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxiaohang/springboot 一.添加Swagger2依赖 <dependency><!--添加Swagger依赖 --> <groupId>io.springfox</groupId> <artifactId>springfox-swagger

Api接口文档管理工具,你知道哪些呢?

上周看到有人在我的Github开源项目中提了个issue,说是否考虑接入swagger.那今天我就用swagger与其他接口文档工具做对比,同时说说Api接口文档工具的那点事.如今,在前后端分离开发的这个年代,Api接口文档管理工具越来越显得重要.完整的Api接口文档能大大提升前后端开发协作的效率. image 目前市场有哪些比较优秀的接口文档管理工具呢?Swagger Api接口文档工具到底如何,我大致汇总一下吧! 一.Swagger 说到Swagger,他确实是为开发者发明的一款神器,他可以