using System; using System.Collections.Generic; using System.Collections; using BRServer.Model; namespace BRServer { public class HumiTagHandler : TagHandler { public override bool isThisTag(Tag tag) { if (!(tag is UploadTag)) { return false; } UploadTag uploadTag = tag as UploadTag; return uploadTag.BizType == 17 ? true : false; } public override void execute(CasicSession session, Tag tag, BR br) { //TODO LIST:解析数据,保存数据 UploadTag BRTag = tag as UploadTag; int itv = BRTag.CollectInter; String collecTime = BRTag.CollectTime; int len = BRTag.Len; String dataValue = BRTag.DataValue; float humi = strHexToFloat(dataValue.Substring(0, 8)); if (float.IsNaN(humi)) { br.HUMIDITY = null; } else { br.HUMIDITY = humi; } session.Logger.Info("湿度数据上传TAG:oid:" + BRTag.Oid + " 采集间隔: " + itv + " 采集时间:" + collecTime + " 上传数值:" + humi); } //网络序列转float private float strHexToFloat(String src) { if (src.Length != 8) return 0; byte[] lBt ={ byte.Parse(src.Substring(0,2),System.Globalization.NumberStyles.HexNumber), byte.Parse(src.Substring(2,2),System.Globalization.NumberStyles.HexNumber), byte.Parse(src.Substring(4,2),System.Globalization.NumberStyles.HexNumber), byte.Parse(src.Substring(6,2),System.Globalization.NumberStyles.HexNumber) }; float ss = BitConverter.ToSingle(lBt, 0); return ss; } } }