Bizideal Zigbee V24 SDK C#开发手记(3)

RFID与之前部分较为相似
依旧需要引用库
也需要实例化命名控制 此处有些不同

BIControllerManager ControllerRfid = new BIControllerManager(new BIRFIDProtocol());//生成控制实例,并指定相关协议。BIRFIDProtocol射频RFID协议。

开始接收

this.ControllerRfid.PacketReceived += ctrlrfid_PacketReceived;this.ctrlrfid.OpenPort(this.cmbRfid.Text, 9600, Parity.Even, 8, StopBits.One);//射频(RFID)串口号,波特率是9600,偶校验,数据位8,停止位1this.ctrlrfid.StartReceiver();

处理接收到的数据

void ctrlrfid_PacketReceived(object sender, BIPacketReceivedEventArgs e){ //添加新建一个线程 防止用户界面卡死 this.BeginInvoke(new Action(() => { //解析数据包 BIRfidUpgoingPacket Packet = BIRfidUpgoingPacket.ParseFromBinary(e.BinaryData); if (Packet != null) { byte channel = Packet.AntennaChannel; //如果读取成功 if (Packet.TagCardState == BizIdeal.Data.BIRFIDTagReadResult.Succeeded) { //如果包为标签 if (Packet.DataList[0].SensorType==BISensorType.RFID_15693_Tag) { this.lblId.Text = Packet.TagID; } //如果包为数据 if (Packet.DataList[0].SensorType == BISensorType.RFID_15693_Data) { this.txtData.Text = BitConverter.ToString(Packet.BlockData); } } //如果没有读到 else if (Packet.TagCardState == BIRFIDTagReadResult.NoCard) { this.lblId.Text = "NoCard"; this.txtData.Text = "00-00-00-00"; } else if (Packet.TagCardState == BIRFIDTagReadResult.Error) { this.lblId.Text = "Error"; this.txtData.Text = "00-00-00-00"; } } }), null);

读取标签

this.ctrlrfid.RFID.ReadTag(0xffff, 0, BIRfidReadMode.Manual15693);//第一位短地址 此处使用广播//第二位通道//第三位读取模式,手动 //BIRfidReadMode.Auto15693(自动模式)

读取数据

this.ctrlrfid.RFID.ReadDataBlock(0xffff, 0, 0, BIRfidReadMode.Manual15693);//第一位短地址//第二位通道//第三位数据块//第四位读取模式,手动

写入数据

this.ctrlrfid.RFID.WriteDataBlock(0xffff, 0, 0, data);//第一位短地址//第二位通道//第三位数据块//第四位数据内容

发表评论

电子邮件地址不会被公开。 必填项已用*标注