NFC小程序介绍

首先我们通过微信应用进入小程序

小程序NFC功能开发 微信小程序 rfid_小程序NFC功能开发

按真实情况填写电子纸胸牌需要展示的数据信息,点击处理图像进入下一步。

小程序NFC功能开发 微信小程序 rfid_校验和_02

图像处理通过后将磁卡贴到手机背部,将印有磁条的一侧与手机NFC部分对齐

此时选择小程序点击检测按钮将手机NFC与电子纸胸牌完成数据配对

小程序NFC功能开发 微信小程序 rfid_小程序NFC功能开发_03

1.1传输数据修改电子纸显示界面

在小程序检测到电子纸配对信息之后会在边框部显示彩色光条(红色光条表示数据配对错误,绿色光条表示数据配对成功,并且正在实时传输数据)

小程序NFC功能开发 微信小程序 rfid_字段_04


小程序NFC功能开发 微信小程序 rfid_字段_05

操纵完成,数据传输完成,电子纸显示屏显示改变

附----电子纸胸牌 NFC 数据通信协议

电子纸胸牌NFC 数据通信协议

一、 通信方式

IsoDep APDU 指令

二、 NFC 帧数据段

各字段含义如下:
1.Header
常量:0x7F 0xF7
2.Type

Type[23:16]

Type[15:8]

Type[7:0]

屏幕生产厂家

尺寸及分辨率

单双面

0x01:DKE

0x01: 3.7 寸 416*240

0x01: 单面

0x02:合力泰

0x02: 7.5 寸 640*384

0x02: 双面

0x03: 7.5 寸 800*480

3.Cmd

Cmd[7:0]

0x01:查询设备参数

0x02:查询设备状态

0x03:刷新正面(默认)500ms

0x04:刷新反面 500ms

0x05:发送图片数据

4.Order
分包序号,从 0 开始。

[注]
1.手机发送数据包的时间间隔应大于 60ms。
2.数据包大小:每种颜色的前 56 帧大小为 222 字节,第 57 帧大小为 48字节。

5.Content
用于传输图像数据。
6.CRC: 通信数据校验和,含 Header。

[注 1]CRC 校验和算法

uint8_t get_check_sum(uint8_t *buf, uint8_t len)
{
uint8_t i = 0; uint8_t sum = 0;

for(i = 0; i < len; i++)
{
sum += *(buf++);
}

return ~sum;
}

[注 2]暂时没用到的字段可用 0x00 填充。

三、 串口数据反馈

返回数据均以 0x7F 0xF7 作为数据开始标志。

Head[2]

Cmd[1]

Res[3]

0x7F 0xF7

0x01

Type*

0x7F 0xF7

Cmd*

Res Code

Type: 含义同Type 字段,返回当前设备信息。
Cmd
: 为当前响应的命令。
Res Code 含义如下:
typedef enum {
PANEL_A, /* 刷新正面 /
PANEL_B, /
刷新反面 /
PANEL_D, /
刷新双面 /
CHECK_SUM_PASS, /
校验和成功 /
CHECK_SUM_ERROR, /
校验和错误 /
HEADER_FOUND, /
检测到数据头 /
NO_HEADER_FOUND, /
未检测到数据头 /
FRAME_OUT_RANGE, /
数据帧超出范围 /
FRAME_ORDER_ERR, /
数据帧顺序错误 /
FRAME_INIT_OK, /
面板初始化成功/
FRAME_UPDATE_OK, /
面板刷新成功 /
UNDEFINED_MSG /
其他未定义的行为 */
} Epaper_ResCode;

作者:徐蒙特