public static Type ToAccessDataType(this DeviceDataType dataType) { Type type = null; Switch.On(dataType) .Case(DeviceDataType.Int16, () => { type = typeof(Int16); }) .Case(DeviceDataType.Int32, () => { type = typeof(Int32); }) .Case(DeviceDataType.Int64, () => { type = typeof(Int64); }) .Case(DeviceDataType.UInt16, () => { type = typeof(UInt16); }) .Case(DeviceDataType.UInt32, () => { type = typeof(UInt32); }) .Case(DeviceDataType.UInt64, () => { type = typeof(UInt64); }) .Case(DeviceDataType.Boolean, () => { type = typeof(Boolean); }) .Case(DeviceDataType.Byte, () => { type = typeof(Byte); }) .Case(DeviceDataType.SByte, () => { type = typeof(SByte); }) .Case(DeviceDataType.Decimal, () => { type = typeof(Decimal); }) .Case(DeviceDataType.Double, () => { type = typeof(Double); }) .Case(DeviceDataType.HSBCD, () => { type = typeof(HSBCD); }) .Case(DeviceDataType.SBCD10, () => { type = typeof(SBCD10); }) .Case(DeviceDataType.BooleanList, () => { type = typeof(BooleanList); }) .Case(DeviceDataType.String, () => { type = typeof(String); }) .Case(DeviceDataType.BitArray, () => { type = typeof(BitArray); }) .Case(DeviceDataType.Int16Array, () => { type = typeof(Int16[]); }) .Case(DeviceDataType.UInt16Array, () => { type = typeof(UInt16[]); }) .Case(DeviceDataType.Int32Array, () => { type = typeof(Int32[]); }) .Case(DeviceDataType.UInt32Array, () => { type = typeof(UInt32[]); }) .Default(() => { type = typeof(UnknownDateType); }); return(type); }
public static IFAS500 Parsing(DeviceDataType type) { IFAS500 result; switch (type) { case DeviceDataType.OnTime_StsChg: result = new FAS500OnTimeData(); break; case DeviceDataType.Manual_StsChg: result = new FAS500ManualData(); break; case DeviceDataType.UpdateFirmware: result = new FAS500UpdateFirmwareData(); break; case DeviceDataType.Auto_StsChg: result = new FAS500AutoData(); break; default: result = null; break; } return(result); }
public static string ToString(DeviceDataType value) { if (value == DeviceDataType.Quantity) { return("Quantity"); } else if (value == DeviceDataType.Range) { return("Range"); } else if (value == DeviceDataType.Coding) { return("Coding"); } else if (value == DeviceDataType.Array) { return("Array"); } else if (value == DeviceDataType.String) { return("string"); } else { throw new ArgumentException("Unrecognized DeviceDataType value: " + value.ToString()); } }
public static bool TryParse(string value, out DeviceDataType result) { result = default(DeviceDataType); if (value == "Quantity") { result = DeviceDataType.Quantity; } else if (value == "Range") { result = DeviceDataType.Range; } else if (value == "Coding") { result = DeviceDataType.Coding; } else if (value == "Array") { result = DeviceDataType.Array; } else if (value == "string") { result = DeviceDataType.String; } else { return(false); } return(true); }
public ActionResult Realtime(string macaddress, DeviceDataType type = DeviceDataType.EnergyUsage) { ViewBag.Title = "WattchDog - Realtime Device Data"; TempData["data_type"] = type; string table = ""; switch (type) { case DeviceDataType.EnergyUsage: table = "EnergyUsages"; break; case DeviceDataType.Irms: table = "RmsCurrents"; break; case DeviceDataType.PowerFactor: table = "PowerFactors"; break; case DeviceDataType.RealPower: table = "RealPowers"; break; default: table = "RmsVoltages"; break; } var repo = new TempRepo(); var deviceData = new RealtimeDataViewModel(); var device = repo.GetDevice("mac_address", macaddress).Result; if (device.UserId != Session["UID"] as int?) { return(RedirectToAction("Index")); } deviceData.Device = (DeviceViewModel)device; var data = repo.GetData(table, device.ID, 10).Result.Select(d => (DataViewModel)d); data = data.Reverse(); deviceData.Type = type; deviceData.Data = data; return(View(deviceData)); }
public static bool TryParse(string value, out DeviceDataType result) { result = default(DeviceDataType); if( value=="Quantity") result = DeviceDataType.Quantity; else if( value=="Range") result = DeviceDataType.Range; else if( value=="Coding") result = DeviceDataType.Coding; else if( value=="Array") result = DeviceDataType.Array; else if( value=="string") result = DeviceDataType.String; else return false; return true; }
public static string ToString(DeviceDataType value) { if( value==DeviceDataType.Quantity ) return "Quantity"; else if( value==DeviceDataType.Range ) return "Range"; else if( value==DeviceDataType.Coding ) return "Coding"; else if( value==DeviceDataType.Array ) return "Array"; else if( value==DeviceDataType.String ) return "string"; else throw new ArgumentException("Unrecognized DeviceDataType value: " + value.ToString()); }
public ISimTag Build(DeviceDataType dataType) { return(Container.Resolve <ISimTag>()); }
public ActionResult Monthly(string macaddress, DeviceDataType type = DeviceDataType.EnergyUsage) { ViewBag.Title = "WattchDog - Monthly Device Data"; TempData["data_type"] = type; string table = ""; switch (type) { case DeviceDataType.EnergyUsage: table = "EnergyUsages"; break; case DeviceDataType.Irms: table = "RmsCurrents"; break; case DeviceDataType.PowerFactor: table = "PowerFactors"; break; case DeviceDataType.RealPower: table = "RealPowers"; break; default: table = "RmsVoltages"; break; } var repo = new TempRepo(); var aggregatetdData = new MonthlyDataViewModel(); var device = repo.GetDevice("mac_address", macaddress).Result; if (device.UserId != Session["UID"] as int?) { return(RedirectToAction("Index")); } aggregatetdData.Device = (DeviceViewModel)device; var queryTime = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")); List <MonthlyDatapointViewModel> outputData; var curTime = new DateTime(queryTime.Year, queryTime.Month, 1); var refTime = new DateTime(queryTime.Year, queryTime.Month, 1).AddYears(-1); var cache = MemoryCache.Default; var key = $"{macaddress.ToUpper()}-{type.ToString()}-{curTime.ToString()}-monthly"; if (cache.Contains(key)) { outputData = (List <MonthlyDatapointViewModel>)cache[key]; } else { outputData = new List <MonthlyDatapointViewModel>(); var data = repo.GetAggregatedData(table, device.ID, queryTime, DateGrouping.Monthly).Result.Reverse().ToList(); while (refTime < curTime) { if (data.ElementAtOrDefault(0)?.GroupedDate == refTime) { outputData.Add(new MonthlyDatapointViewModel() { Month = data[0].GroupedDate, NumSamples = data[0].NumSamples, Value = type == DeviceDataType.EnergyUsage ? Math.Round(data[0].AvgValue, 7) : Math.Round(data[0].AvgValue, 2) }); data.RemoveAt(0); } else { outputData.Add(new MonthlyDatapointViewModel() { Month = refTime, NumSamples = 0, Value = 0 }); } refTime = refTime.AddMonths(1); } cache.Add(key, outputData, DateTimeOffset.Now.AddMinutes(5)); } aggregatetdData.Data = outputData; aggregatetdData.Type = type; return(View(aggregatetdData)); }