private DeviceCollection Filter(DeviceCollection devices, FluxPlace fluxPlace) { DeviceCollection r = new DeviceCollection(); foreach (IDevice device in devices) { PlaceDeviceBase pd = device as PlaceDeviceBase; if (pd.Place == fluxPlace) { r.Add(pd); } } return(r); }
/// <summary> /// /// </summary> /// <param name="deviceExtendParameters"></param> /// <returns></returns> private FluxPlace GetFluxPlace(string deviceExtendParameters) { FluxPlace p = FluxPlace.Unknown; StringStringDictionary ssd = StringStringDictionaryConverter.Parse(deviceExtendParameters); if (ssd.ContainsKey(PlaceDeviceBase.PN_FLUXPLACE)) { string place = ssd[PlaceDeviceBase.PN_FLUXPLACE]; try { p = (FluxPlace)Enum.Parse(typeof(FluxPlace), place); } catch (Exception ex) { log.Error(ex.ToString()); } } return(p); }
/// <summary> /// /// </summary> /// <param name="hs"></param> /// <param name="fluxPlace"></param> /// <returns></returns> private List <double> GetHashValue(Hashtable hs, FluxPlace fluxPlace) { object obj = hs[fluxPlace]; if (obj != null) { return((List <double>)obj); } else { List <double> list = new List <double>(); // add instantFlux, sum // list.Add(0); list.Add(0); hs[fluxPlace] = list; return(list); } }
private DeviceCollection Filter(DeviceCollection devices, FluxPlace fluxPlace) { DeviceCollection r = new DeviceCollection(); foreach (IDevice device in devices) { PlaceDeviceBase pd = device as PlaceDeviceBase; if (pd.Place == fluxPlace) { r.Add(pd); } } return r; }
/// <summary> /// /// </summary> /// <param name="hs"></param> /// <param name="fluxPlace"></param> /// <returns></returns> private List<double> GetHashValue(Hashtable hs, FluxPlace fluxPlace) { object obj = hs[fluxPlace]; if (obj != null) { return (List<double>)obj; } else { List<double> list = new List<double>(); // add instantFlux, sum // list.Add(0); list.Add(0); hs[fluxPlace] = list; return list; } }
/// <summary> /// /// </summary> /// <param name="d"></param> /// <param name="parseResult"></param> private void ProcessReadReal(ITask task, IParseResult pr) { GRData data = new GRData(); data.DT = DateTime.Now; data.GT1 = Convert.ToSingle(pr.Results["GT1"]); data.BT1 = Convert.ToSingle(pr.Results["BT1"]); data.GT2 = Convert.ToSingle(pr.Results["GT2"]); data.BT2 = Convert.ToSingle(pr.Results["BT2"]); data.OT = Convert.ToSingle(pr.Results["OT"]); data.GTBase2 = Convert.ToSingle(pr.Results["GTBase2"]); data.GP1 = Convert.ToSingle(pr.Results["GP1"]); data.BP1 = Convert.ToSingle(pr.Results["BP1"]); data.WL = Convert.ToSingle(pr.Results["WL"]); data.GP2 = Convert.ToSingle(pr.Results["GP2"]); data.BP2 = Convert.ToSingle(pr.Results["BP2"]); data.I1 = Convert.ToSingle(pr.Results["I1"]); data.IR = Convert.ToSingle(pr.Results["IR"]); data.I2 = Convert.ToSingle(pr.Results["I2"]); data.S2 = Convert.ToInt32(pr.Results["S2"]); data.S1 = Convert.ToInt32(pr.Results["S1"]); data.SR = Convert.ToInt32(pr.Results["SR"]); data.OD = Convert.ToInt32(pr.Results["OD"]); //data.IH1 = Convert.ToDouble (parseResult.Results ["IH1"]); //data.SH1 = Convert.ToDouble (parseResult.Results ["SH1"]); data.IH1 = 0d; data.SH1 = 0d; // 2012-10-09 xd1100 pump status // bool[] pumpStatusArray = (bool[])pr.Results["pumpstate"]; data.CM1 = IsPumpRun(pumpStatusArray[0]); data.CM2 = IsPumpRun(pumpStatusArray[1]); data.CM3 = IsPumpRun(pumpStatusArray[2]); data.RM1 = IsPumpRun(pumpStatusArray[3]); data.RM2 = IsPumpRun(pumpStatusArray[4]); object objWarn = pr.Results["Warn"]; IList listWarn = (IList)objWarn; bool isContainsPowerAlaram = listWarn.Contains(POWER_ALARM); if (!isContainsPowerAlaram) { if (HasPowerAlaramInStatus(task.Device as XD1100Device)) { listWarn.Add(POWER_ALARM); } } WarnWrapper ww = new WarnWrapper(listWarn); data.Warn = ww; XD1100Device d = (XD1100Device)task.Device; //List<IFluxProvider> fluxProviderList = GetFluxProviderList(d); DeviceCollection fluxDevices = d.Station.Devices.GetDevices(this.KIND_FLUX); fluxDevices = RemoveUnkonwnPlaceDevice(fluxDevices); bool hasFluxDevices = fluxDevices.Count > 0; bool hasFluxData = fluxDevices.HasData(HasDataOption.All); bool success = true; if (hasFluxDevices) { if (hasFluxData) { Hashtable fluxResultHashTable = GetFluxDatas(fluxDevices); foreach (object obj in fluxResultHashTable.Keys) { FluxPlace place = (FluxPlace)obj; List <double> list = (List <double>)fluxResultHashTable[obj]; switch (place) { case FluxPlace.FirstSide: data.I1 = Convert.ToSingle(list[0]); data.S1 = Convert.ToInt32(list[1]); break; case FluxPlace.SecondSide: data.I2 = Convert.ToSingle(list[0]); data.S2 = Convert.ToInt32(list[1]); break; case FluxPlace.RecruitSide: data.IR = Convert.ToSingle(list[0]); data.SR = Convert.ToInt32(list[1]); break; default: break; } } } else { success = false; } } if (!success) { return; } DeviceCollection heatDevices = d.Station.Devices.GetDevices(KIND_HEAT); //heatDevices = RemoveUnkonwnPlaceDevice(heatDevices); heatDevices = this.Filter(heatDevices, FluxPlace.FirstSide); bool hasHeatDevices = heatDevices.Count > 0; bool hasHeatData = heatDevices.HasData(HasDataOption.All); if (hasHeatDevices) { if (hasHeatData) { double instantFlux = 0d; double sumFlux = 0d; double ih = 0d; double sh = 0d; foreach (IDevice hd in heatDevices) { IData last = hd.DeviceDataManager.Last; ih += Convert.ToDouble(last.GetValue("InstantHeat")); sh += Convert.ToDouble(last.GetValue("SumHeat")); instantFlux += Convert.ToDouble(last.GetValue("InstantFlux")); sumFlux += Convert.ToDouble(last.GetValue("Sum")); } data.I1 = Convert.ToSingle(instantFlux); data.S1 = Convert.ToInt32(sumFlux); data.IH1 = ih; data.SH1 = sh; } else { success = false; } } if (!success) { return; } switch (d.HtmMode.ModeValue) { case ModeValue.Indirect: data.CyclePumpDatas.Add(new PumpData("1#", Convert.ToInt32(pr.Results["cyclefrequency"]))); data.RecruitPumpDatas.Add(new PumpData("1#", Convert.ToInt32(pr.Results["recruitfrequency"]))); break; case ModeValue.Direct: data.GT1 = data.GT2; data.BT1 = data.BT2; break; case ModeValue.Mixed: data.BT1 = data.BT2; data.CyclePumpDatas.AddRange( new PumpData("1#", Convert.ToInt32(pr.Results["cyclefrequency"])), new PumpData("2#", Convert.ToInt32(pr.Results["recruitfrequency"])), new PumpData("3#", Convert.ToInt32(pr.Results["I2"]))); break; } d.DeviceDataManager.Last = data; // save // int id = GuidHelper.ConvertToInt32(d.Guid); DBI.Instance.InsertXD1100Data(id, data); }