NFC小程序介绍
首先我们通过微信应用进入小程序
按真实情况填写电子纸胸牌需要展示的数据信息,点击处理图像进入下一步。
图像处理通过后将磁卡贴到手机背部,将印有磁条的一侧与手机NFC部分对齐
此时选择小程序点击检测按钮将手机NFC与电子纸胸牌完成数据配对
1.1传输数据修改电子纸显示界面
在小程序检测到电子纸配对信息之后会在边框部显示彩色光条(红色光条表示数据配对错误,绿色光条表示数据配对成功,并且正在实时传输数据)
操纵完成,数据传输完成,电子纸显示屏显示改变
附----电子纸胸牌 NFC 数据通信协议
电子纸胸牌NFC 数据通信协议
一、 通信方式
IsoDep APDU 指令
二、 NFC 帧数据段
Header(2) | Cmd(1) | Type(3) | Order(1) | Content | CRC(1) |
---|
各字段含义如下:
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;
标签:NFC,胸牌,数据,Cmd,程序,0x01,Type From: https://www.cnblogs.com/DTCLOUD/p/17287140.html作者:徐蒙特