public override void execute(Tag tag) { //TODO LIST:解析压力数据,保存压力数据 UploadTag pressTag = tag as UploadTag; int itv = pressTag.CollectInter; String collecTime = pressTag.CollectTime; int len = pressTag.Len; String dataValue = pressTag.DataValue; AdlerCmd.adlerSession.Logger.Info("压力数据上传TAG:oid:" + pressTag.Oid + " 采集间隔: " + itv + "采集时间:" + collecTime + "上传数值:" + dataValue); int num = len / 4; //上传的压力数据个数 List <Model.DjPressInfo> djs = new List <Model.DjPressInfo>(); DateTime baseTime = Convert.ToDateTime(AdlerCmd.currentSystemDate + " " + collecTime); for (int i = 0; i < num; i++) { DjPressInfo pressInfo = new DjPressInfo(); String press = strHexToFloat(dataValue.Substring(i * 8, 8)).ToString(); //TODO LIST:电池电量 pressInfo.PRESSDATA = press; pressInfo.LOGTIME = DateTime.Now; pressInfo.UPTIME = baseTime.AddMinutes(i * itv); pressInfo.DEVID = AdlerCmd.devCode; djs.Add(pressInfo); } new BLL.DjPress().insert(djs); new BLL.DjPress().saveAlarmInfo(djs); new BLL.DjPress().updateDevStatus(AdlerCmd.devCode); AdlerCmd.adlerSession.Logger.Info("压力数据保存成功"); }
/// <summary> /// An internal function to bind values parameters for insert /// </summary> /// <param name="parms">Database parameters</param> /// <param name="press">Values to bind to parameters</param> private void SetAdapterParameters(OracleParameter[] parms, DjPressInfo press) { parms[0].Value = press.DEVID; if (null != press.PRESSDATA) { parms[1].Value = press.PRESSDATA; } else { parms[1].Value = DBNull.Value; } if (null != press.CELL) { parms[2].Value = press.CELL; } else { parms[2].Value = DBNull.Value; } if (null != press.SIGNAL) { parms[3].Value = press.SIGNAL; } else { parms[3].Value = DBNull.Value; } if (null != press.STATUS) { parms[4].Value = press.STATUS; } else { parms[4].Value = DBNull.Value; } if (null != press.UPTIME) { parms[5].Value = press.UPTIME; } else { parms[5].Value = DBNull.Value; } if (null != press.LOGTIME) { parms[6].Value = press.LOGTIME; } else { parms[6].Value = DBNull.Value; } }
public override void execute(Tag tag, String devCode, CellTag cellTag, SystemDateTag systemDateTag, CasicSession session) { //TODO LIST:解析压力数据保存压力数据 UploadTag pressTag = tag as UploadTag; int itv = pressTag.CollectInter; String collecTime = pressTag.CollectTime; int len = pressTag.Len; String dataValue = pressTag.DataValue; session.Logger.Info("压力数据上传TAG:oid:" + pressTag.Oid + " 采集间隔: " + itv + "采集时间:" + collecTime + "上传数值:" + dataValue); int num = len / 4; //上传的液位数据个数 //List<Model.CasicPress> djs = new List<Model.CasicPress>(); List <Model.DjPressInfo> djs = new List <Model.DjPressInfo>(); DateTime baseTime = Convert.ToDateTime(systemDateTag.CollectDate + " " + collecTime); for (int i = 0; i < num; i++) { DjPressInfo pressInfo = new DjPressInfo(); String press = strHexToFloat(dataValue.Substring(i * 8, 8)).ToString(); //TODO LIST:电池电量 pressInfo.CELL = (cellTag == null ? "" : cellTag.Cell); pressInfo.PRESSDATA = press; pressInfo.LOGTIME = DateTime.Now; pressInfo.UPTIME = baseTime.AddMinutes(i * itv); pressInfo.DEVID = devCode; djs.Add(pressInfo); } new BLL.DjPress().insert(djs); //new BLL.DjPress().saveAlarmInfo(djs); new BLL.DjPress().updateDevStatus(devCode); session.Logger.Info("压力数据保存成功"); }
public override void ExecuteCommand(DGNSZSession session, StringRequestInfo requestInfo) { try { session.Logger.Info("多功能漏损监测仪:压力数据已经上传!"); session.Logger.Info(requestInfo.Body); //LSPRESS:40,002A,01,000033,51,000069130118,000105A0,039E,0D090E,1A0F0D090E, //000000000000000000,59,59,61B1,03 string[] data = requestInfo.Body.Split(','); if (string.IsNullOrEmpty(session.MacID)) { session.MacID = data[5]; } string cfg = data[6]; string press = data[10]; //采集时间 string year = (Int32.Parse(data[9].Substring(8, 2), System.Globalization.NumberStyles.HexNumber) + 2000).ToString(); string mon = Int32.Parse(data[9].Substring(6, 2), System.Globalization.NumberStyles.HexNumber).ToString(); string day = Int32.Parse(data[9].Substring(4, 2), System.Globalization.NumberStyles.HexNumber).ToString(); string hor = Int32.Parse(data[9].Substring(2, 2), System.Globalization.NumberStyles.HexNumber).ToString(); string min = Int32.Parse(data[9].Substring(0, 2), System.Globalization.NumberStyles.HexNumber).ToString(); DateTime upTime = Convert.ToDateTime(year + "-" + mon + "-" + day + " " + hor + ":" + min + ":00"); //采集压力数据条数 int count = 24 * 60 / Int16.Parse(cfg.Substring(4, 4), System.Globalization.NumberStyles.HexNumber) / Int16.Parse(cfg.Substring(0, 4), System.Globalization.NumberStyles.HexNumber); //采集间隔 int interval = Int16.Parse(cfg.Substring(0, 4), System.Globalization.NumberStyles.HexNumber); List <Model.DjPressInfo> djs = new List <DjPressInfo>(); for (int i = 0; i < count; i++) { Model.DjPressInfo dj = new DjPressInfo(); //设备ID dj.DEVID = session.MacID; //压力数据 dj.PRESSDATA = HexToASCII(data[10].Substring(i * 18, 18)); //电池电量 dj.CELL = Int16.Parse(data[11], System.Globalization.NumberStyles.HexNumber).ToString(); //采集时间 dj.UPTIME = upTime; //记录时间 dj.LOGTIME = DateTime.Now; djs.Add(dj); upTime = upTime.AddMinutes(-interval * (count - i - 1)); } new BLL.DjPress().insert(djs); new BLL.DjPress().saveAlarmInfo(djs); new BLL.DjPress().updateDevStatus(session.MacID); session.Logger.Info("多功能漏损监测仪:压力数据已经保存!"); } catch (Exception e) { session.Logger.Error("多功能漏损监测仪:压力数据保存失败!"); session.Logger.Error(requestInfo.Body); session.Logger.Error(e.ToString()); } }