public void GetHistoryParamValueTest() { DateTime today = DateTime.Now; string circuitIDs = "000001G0010001"; string[] ids = circuitIDs.Split(','); string circuitPrame = "31000000000711,31000000000700,31000000000701,31000000000702"; string[] prame = circuitPrame.Split(','); DateTime startTime = DateTime.Now; int step = 65; List <HistoryBinarys> historyBinarys = GetHistoryString(ids, prame, today); //int day = 0; //int hour = 0; //int minute = 0; //Console.WriteLine(UtilTest.GetJson(historyBinarys)); List <HistoryParameterValue> historyValueList = new List <HistoryParameterValue>(); foreach (var item in historyBinarys) { for (int hour = 0; hour < 24; hour++) { for (int minute = 0; minute < 56; minute = minute + step) { HistoryParameterValue historyValue = new HistoryParameterValue(); historyValue.ID = item.CircuitID; historyValue.Name = item.CircuitName; historyValue.ParamName = item.ParamName; //historyValue.Time = new DateTime(startTime.Year, startTime.Month, startTime.Day, hour, minute, 0); //double value = GetHistoryValue(item.Value, startTime.Day, hour, minute); //if (-9999 != value) //{ // historyValue.Value = value; // historyValueList.Add(historyValue); //} } } } Console.WriteLine(UtilTest.GetJson(historyValueList)); }
/// <summary> /// 根据仪表ID,获取仪表所有的参数的值 /// </summary> /// <param name="meterID"></param> /// <param name="dateTime"></param> /// <param name="step"></param> /// <returns></returns> public List <HistoryParameterValue> GetParamByMeterIDValue(string meterID, string dateTime, int step) { Acrel.HisDB.GetData getData = new Acrel.HisDB.GetData(); List <HistoryParameterValue> historyValueList = new List <HistoryParameterValue>(); DateTime nowTime = DateTime.Now; DateTime endTime; DateTime startTime = Util.ConvertString2DateTime(dateTime, "yyyy-MM-dd"); //如果查询是的时间是今天,则结束时间为小于当前时间的为5的倍数的时间 if (nowTime.Day == startTime.Day && nowTime.Month == startTime.Month && nowTime.Year == startTime.Year) { endTime = startTime.AddHours(nowTime.Hour).AddMinutes(nowTime.Minute - nowTime.Minute % 5 - 5); } else { //获取某天的23:55:00 endTime = startTime.AddDays(1).AddMinutes(-5); } List <HistoryBinarys> historyBinarys = GetHistoryBinaryStringByMeterID(meterID, startTime); foreach (HistoryBinarys item in historyBinarys) { HistoryParameterValue historyValue = new HistoryParameterValue(); historyValue.ID = item.CircuitID; historyValue.Name = item.CircuitName; historyValue.ParamCode = item.ParamCode; historyValue.ParamName = item.ParamName; historyValue.Values = ConvertDicToList(getData.GetContinueBytesOfFive(item.Value, startTime, endTime, step)); historyValueList.Add(historyValue); } return(historyValueList); }