超高频读写器安卓APP API说明(二)

API 说明手册:

1.HTTP 访问数据说明:

  1. 自行开发的APP一般默认可以用GET 方式向本机系统的网络服务(Host OS Web Service)发送HTTP请求访问,以获取硬件设备(Hardware)的数据。
  2. 若访问成功,则返回http状态码200 ,则数据结果将以JSON格式返回,结果中必然会包含 “recvsend 两个成员对象。其中: "send": "Success" 只是表示URL指令成功发送到了硬件设备执行了,至于硬件设备会返回什么样的结果则体现在"recv"成员对象中。同理,"send": "Fail" 表示URL指令都没有发送给硬件设备执行,此时,"recv"对象的值绝对不是URL操作设备所期望得到的结果。
  3. 若http 访问结果返回的不是http状态码200 ,则需要检查本机系统的网络服务是否运行正常。一般的检查方式是直接在本机(通过本机浏览器或者其他开发使用的http工具)发起一个http访问 http://127.0.0.1:6969/ ,若结果得到一个字符串为 ”Hello UHF” ,则说明本机系统的网络服务程序是已经运行成功。

2.具体硬件设备操作

  1. 以下示例多数只演示 "send": "Success" 情况下的返回结果。
  2. 示例中默认使用127.0.0.1作为Host系统的ip,端口号使用默认的6969 。
  3. 所有的操作都需要带一个cmd的query参数,cmd的值表示操作的动作。
  4. 如果完成该动作还需要传入其他辅助参数数值,则由一个action的query参数将这些辅助参数数值传入。

2.1通用API

        1.连接设备 -- online :

URL Example:  http://127.0.0.1:6969/ctrl?cmd=online

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "Method": "online",

        "Status": "Success"

    },

    "send": "Success"

}

{

    "recv": {

        "Method": "online",

        "Status": "Fail"

    },

    "send": "Success"

}

        2.断开设备 -- offline :

URL Example:  http://127.0.0.1:6969/ctrl?cmd=offline

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "Method": "offline",

        "Status": "Success"

    },

    "send": "Success"

}

{

    "recv": {

        "Method": "offline",

        "Status": "Fail"

    },

    "send": "Success"

}

        3.获取版本信息和指令地址 -- getFirmwareVersion :

URL Example:  http://127.0.0.1:6969/uhf?cmd=getFirmwareVersion

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "HexExCmdAddr": "01",

        "Major": "8",

        "Method": "getfirmwareversion",

        "Minor": "2"

    },

    "send": "Success"

}

{

    "recv": {

        "Method": "getfirmwareversion",

        "Status": "Fail"

    },

    "send": "Fail"

}

recv说明

Major

固件主版本号。

Minor

固件次版本号。

HexExCmdAddr

读写器通讯指令的地址

        4.获取功率设置 -- getOutputPower4 :

URL Example:  http://127.0.0.1:6969/uhf?cmd=getOutputPower4

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "Method": "getoutputpower4",

        "OutputPower1": "30",

        "OutputPower2": "30",

        "OutputPower3": "30",

        "OutputPower4": "30"

    },

    "send": "Success"

}

{

    "recv": {

        "Method": "getoutputpower4",

        "Status": "Fail"

    },

    "send": "Fail"

}

recv说明

OutputPower1

天线 1 的功率值

OutputPower2

天线 2 的功率值

OutputPower3

天线 3 的功率值

OutputPower4

天线 4 的功率值

        5.设置功率大小 -- setOutputPowerAll :

action参数说明:

allpower

需要设置的功率值大小,单位:dbm

URL Example:  

http://127.0.0.1:6969/uhf?cmd=setOutputPowerAll&action={allpower:28}

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "Method": "setoutputpowerall",

        "Status": "Success"

    },

    "send": "Success"

}

{

    "recv": {

        "Method": "setoutputpowerall",

        "Status": "Fail"

    },

    "send": "Fail"

}

        6.盘点标签 -- SessionInventory :

action参数说明:

Session

指定盘存的session。其值可以为S0 / S1 /  S2 / S3

Target

指定盘存的Inventoried Flag,其值可以为target_A / target_B

Repeat

盘存过程重复的次数,其值可以为[1-255]

URL Example :

http://127.0.0.1:6969/uhf?cmd=SessionInventory&action={session:s0,target:target_A,repeat:1}

Success Return:  

{

    "recv": {

        "AntID": "Ant_01",

        "Info": {

            "TagList": [

                {

                    "AntID": "Ant_01",

                    "FreQ": "924.00",

                    "HexEPC": "",

                    "HexPC": "0400",

                    "RSSI": "-83"

                },

                {

                    "AntID": "Ant_01",

                    "FreQ": "924.00",

                    "HexEPC": "000000000000000000361975",

                    "HexPC": "3400",

                    "RSSI": "-76"

                }

            ]

        },

        "Method": "sessioninventory",

        "ReadRate": "95",

        "TagHits": "2",

        "TotalRead": "2"

    },

    "send": "Success"

}

Note:

1.最真实的标签数量是解析 TagList 数组的大小,TagList 数组的大小<= TagHits <= TotalRead ,某种意义上可以认为TotalRead 和 TagHits 是不能代表盘点到的标签数量的;

2.若对象recv中包含有Status对象, 则Status 仅仅代表最后一次repeat盘点的结果。当repeat 值 大于1 的时候,最后一轮盘点若返回天线未连接的状态,则会出现 既有TagList数据,但 Status 值却又是Fail的状态。此时是没有TotalRead这个字段的。

TagList说明

AntID

读到标签的天线号。

FreQ

标签的实时频点。

HexEPC

标签的EPC号,长度可变化。

HexPC

标签的PC ,固定两个字节

RSSI

标签的实时RSSI。

        7.存取读标签 -- readTag :

action参数说明:

Membank

指定读取的区域。其值可以为reserved/ epc /  tid / user

Wordadd

读取数据首地址

Wordcnt

读取数据字长度,单位为 word

Hexpassword

标签访问密码,4字节,标签默认值是 00 00 00 00

Read Tid URL Example :  

http://127.0.0.1:6969/uhf?cmd=ReadTag&action={membank:tid,wordadd:00,wordcnt:06,hexpassword:00 00 00 00}

Success Return:  

{

    "recv": {

        "Counter": "2",

        "Info": {

            "TagList": [

                {

                    "AntID": "Ant_01",

                    "DataLen": "28",

                    "FreQ": "903.00",

                    "HexCRC": "87B9",

                    "HexEPC": "778E106ABB3D106ABB3DD0C6",

                    "HexPC": "3000",

                    "HexReadTargetData": "E28068942000400826935456",

                    "ReadCount": "1",

                    "ReadLen": "12"

                },

                {

                    "AntID": "Ant_01",

                    "DataLen": "28",

                    "FreQ": "903.00",

                    "HexCRC": "8FC2",

                    "HexEPC": "010101010506020A0F6A0C48",

                    "HexPC": "3400",

                    "HexReadTargetData": "E280117020001448ED410941",

                    "ReadCount": "1",

                    "ReadLen": "12"

                }

            ]

        },

        "Method": "readtag"

    },

    "send": "Success"

}

Note:

  1. Counter对象的值,就是TagList 数组的大小。

TagList说明

AntID

读到标签的天线号。

FreQ

标签的实时频点。

HexEPC

标签的EPC号,长度可变化。

HexPC

标签的PC ,固定两个字节

HexReadTargetData

读取的目标数据

ReadCount

该标签被读操作的次数。

ReadLen

读取的目标数据的长度,单位是字节。

DataLen

所操作标签的有效数据长度。(PC+CRC+EPC+读取的标签数据)。 单位是字节。

        8.存取写标签 -- writeTag :

action参数说明:

Membank

指定读取的区域。其值可以为reserved/ epc / user

Wordadd

写入数据首地址

Wordcnt

写入数据的字长度,单位为 word,需要对应Hexdata

Hexpassword

标签访问密码,4字节,标签默认值是 00 00 00 00

Hexdata

写入标签的数据标签数据

URL:  

Write EPC data Example :01 02 03 04 05 06  , write data count 3 words

http://127.0.0.1:6969/uhf?cmd=WriteTag&action={membank:epc,wordadd:02,wordcnt:03,hexpassword:00 00 00 00,hexdata:01 02 03 04 05 06}

Success Return:  

{

    "recv": {

        "Counter": "2",

        "Info": {

            "TagList": [

                {

                    "AntID": "Ant_01",

                    "DataLen": "16",

                    "FreQ": "911.50",

                    "HexCRC": "9A46",

                    "HexEPC": "E28011606000020497CA6951",

                    "HexPC": "3000",

                    "Status": "Success",

                    "WriteCount": "1"

                },

                {

                    "AntID": "Ant_01",

                    "DataLen": "16",

                    "FreQ": "911.50",

                    "HexCRC": "6CB2",

                    "HexEPC": "332211606000020497CA6961",

                    "HexPC": "3000",

                    "Status": "Fail : Error occurred when write",

                    "WriteCount": "1"

                }

            ]

        },

        "Method": "writetag"

    },

    "send": "Success"

}

Note:

  1. Counter 的值,就是TagList 数组的大小。
  2. 可以通过判断标签里面的 Status的值来判断该标签是否写入成功。

TagList说明

AntID

读到标签的天线号。

FreQ

标签的实时频点。

HexEPC

标签的EPC号,长度可变化。

HexPC

标签的PC ,固定两个字节

WriteCount

该标签被操作的次数。

Status

所操作标签的操作结果,即错误代码

DataLen

所操作标签的有效数据长度。(PC+CRC+EPC+读取的标签数据)。 单位是字节。

 


2.2 蓝牙设备专用API

        1.获取蓝牙读写器电池电压 -- getbtvolt :

URL Example:  http://172.16.10.128:6969/ctrl?cmd=getbtvolt 

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "Info": "3788",

        "Method": "getbtvolt",

        "Status": "Success"

    },

    "send": "Success"

}

{

    "recv": {

        "Info": "Fail",

        "Method": "getbtvolt",

        "Status": "Fail"

    },

    "send": "Fail"

}

recv说明

 Info

读写器的电池电压值,单位是mV

        2.启动二维码扫描 -- getbtbarcode :

URL Example:  http://127.0.0.1:6969/ctrl?cmd=getbtbarcode

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "Info": "123456789",

        "Method": "getbtbarcode",

        "Status": "Success"

    },

    "send": "Success"

}

{

    "recv": {

        "Info": "Fail",

        "Method": "getbtbarcode",

        "Status": "Fail"

    },

    "send": "Fail"

}

recv说明

 Info

条码的内容,如果扫描失败,则为"Fail"

Note:

使用该API之前首先需要确认读写器的条码头功能是否已经开启;

        3.关闭蓝牙读写器电源 -- setbtshutdown:

URL Example:  http://172.16.10.128:6969/ctrl?cmd=setbtshutdown 

Recv Success Return:

Recv Fail Return:  

{

    "recv": {

        "Method": "setbtshutdown",

        "Status": "Success"

    },

    "send": "Success"

}

{

    "recv": {

        "Method": "setbtshutdown",

        "Status": "Fail"

    },

    "send": "Fail"

}

Note:

该API执行成功之后,读写器会发出滴的一声响,然后完全断电。因此,APP也会断开蓝牙的连接。

你可能感兴趣的:(rfid,BLE,BLED)