///<summary> /// Retrieves the SensorType field /// Comment: Indicates which sensor the calibration is for</summary> /// <returns>Returns nullable SensorType enum representing the SensorType field</returns> public SensorType?GetSensorType() { object obj = GetFieldValue(0, 0, Fit.SubfieldIndexMainField); SensorType?value = obj == null ? (SensorType?)null : (SensorType)obj; return(value); }
/// <summary> /// Initializes a new instance of the <see cref="SmartAttribute"/> class. /// </summary> /// <param name="identifier">The SMART identifier of the attribute.</param> /// <param name="name">The name of the attribute.</param> /// <param name="rawValueConversion">A delegate for converting the raw byte /// array into a value (or null to use the attribute value).</param> /// <param name="sensorType">Type of the sensor or null if no sensor is to /// be created.</param> /// <param name="sensorChannel">If there exists more than one attribute with /// the same sensor channel and type, then a sensor is created only for the /// first attribute.</param> public SmartAttribute(byte identifier, string name, RawValueConversion rawValueConversion, SensorType?sensorType, int sensorChannel) { this.Identifier = identifier; this.Name = name; this.rawValueConversion = rawValueConversion; this.SensorType = sensorType; this.SensorChannel = sensorChannel; }
/// <summary> /// Initializes a new instance of the <see cref="SmartAttribute" /> class. /// </summary> /// <param name="identifier">The SMART identifier of the attribute.</param> /// <param name="name">The name of the attribute.</param> /// <param name="rawValueConversion"> /// A delegate for converting the raw byte /// array into a value (or null to use the attribute value). /// </param> /// <param name="sensorType"> /// Type of the sensor or null if no sensor is to /// be created. /// </param> /// <param name="sensorChannel"> /// If there exists more than one attribute with /// the same sensor channel and type, then a sensor is created only for the /// first attribute. /// </param> /// <param name="sensorName"> /// The name to be used for the sensor, or null if /// no sensor is created. /// </param> /// <param name="defaultHiddenSensor">True to hide the sensor initially.</param> /// <param name="parameterDescriptions"> /// Description for the parameters of the sensor /// (or null). /// </param> public SmartAttribute(byte identifier, string name, RawValueConversion rawValueConversion, SensorType?sensorType, int sensorChannel, string sensorName, bool defaultHiddenSensor = false, ParameterDescription[] parameterDescriptions = null) { Identifier = identifier; Name = name; _rawValueConversion = rawValueConversion; SensorType = sensorType; SensorChannel = sensorChannel; SensorName = sensorName; DefaultHiddenSensor = defaultHiddenSensor; ParameterDescriptions = parameterDescriptions; }
/// <summary> /// Initializes a new instance of the <see cref="SmartAttribute"/> class. /// </summary> /// <param name="identifier">The SMART identifier of the attribute.</param> /// <param name="name">The name of the attribute.</param> /// <param name="rawValueConversion">A delegate for converting the raw byte /// array into a value (or null to use the attribute value).</param> /// <param name="sensorType">Type of the sensor or null if no sensor is to /// be created.</param> /// <param name="sensorChannel">If there exists more than one attribute with /// the same sensor channel and type, then a sensor is created only for the /// first attribute.</param> /// <param name="defaultHiddenSensor">True to hide the sensor initially.</param> public SmartAttribute(byte identifier, string name, RawValueConversion rawValueConversion, SensorType?sensorType, int sensorChannel, bool defaultHiddenSensor = false) { this.Identifier = identifier; this.Name = name; this.rawValueConversion = rawValueConversion; this.SensorType = sensorType; this.SensorChannel = sensorChannel; this.DefaultHiddenSensor = defaultHiddenSensor; }
/// <summary> /// Initializes a new instance of the <see cref="SmartAttribute"/> class. /// </summary> /// <param name="identifier">The SMART identifier of the attribute.</param> /// <param name="name">The name of the attribute.</param> /// <param name="rawValueConversion">A delegate for converting the raw byte /// array into a value (or null to use the attribute value).</param> /// <param name="sensorType">Type of the sensor or null if no sensor is to /// be created.</param> /// <param name="sensorChannel">If there exists more than one attribute with /// the same sensor channel and type, then a sensor is created only for the /// first attribute.</param> /// <param name="defaultHiddenSensor">True to hide the sensor initially.</param> /// <param name="parameterDescriptions">Description for the parameters of the sensor /// (or null).</param> public SmartAttribute(byte identifier, string name, RawValueConversion rawValueConversion, SensorType?sensorType, int sensorChannel, bool defaultHiddenSensor, ParameterDescription[] parameterDescriptions) { this.Identifier = identifier; this.Name = name; this.rawValueConversion = rawValueConversion; this.SensorType = sensorType; this.SensorChannel = sensorChannel; this.DefaultHiddenSensor = defaultHiddenSensor; this.ParameterDescriptions = parameterDescriptions; }
public ApiResult <string> Save(int Value, string SensorId, SensorType?sensorType) { SensorMeasurement obj = new SensorMeasurement { Vrijednost = Value, Date = DateTime.Now, SensorId = SensorId, SensorType = sensorType }; _db.SensorMeasurement.Add(obj); _db.SaveChanges(); return(ApiResult <string> .OK(null)); }
/// <summary> /// Gets a formated string from a collection of <see cref="IHardware"/> /// </summary> /// <param name="ihardware"></param> private void RenderHardware(IEnumerable <IHardware> ihardware) { foreach (var hardware in ihardware) { hardware.Update(); if (hardware.HardwareType == HardwareType.HDD) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, string.Format("col-sm-12 col-md-12 col-lg-6 col-xl-4 hardware_{0}", hardware.HardwareType.ToString().ToLower())); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); } else { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-12"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); } HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "well text-center"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); if (HardwareIcon.ContainsKey(hardware.HardwareType)) { if (HardwareIcon.ContainsKey(hardware.HardwareType)) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H1); HtmlWriter.RenderTag(HtmlTextWriterTag.I, HtmlTextWriterAttribute.Class, HardwareIcon[hardware.HardwareType], string.Empty); HtmlWriter.RenderEndTag(); } } HtmlWriter.RenderTag(HtmlTextWriterTag.H2, hardware.HardwareType.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.H3, hardware.Name); HtmlWriter.RenderTag(HtmlTextWriterTag.P, " "); SensorType?lastSensorType = null; HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "row"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); foreach (var sensor in hardware.Sensors) { if (hardware.Sensors.Length > 3 && lastSensorType.HasValue && lastSensorType.Value != sensor.SensorType) { HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderTag(HtmlTextWriterTag.Div, HtmlTextWriterAttribute.Class, "clearfix", string.Empty); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "row"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); } lastSensorType = sensor.SensorType; if (hardware.HardwareType == HardwareType.HDD) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-6"); } else { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-4 col-md-3 col-lg-2"); } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "well"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); if (SensorIcon.ContainsKey(sensor.SensorType)) { HtmlWriter.RenderBeginTag(HtmlTextWriterTag.H1); HtmlWriter.RenderTag(HtmlTextWriterTag.I, HtmlTextWriterAttribute.Class, SensorIcon[sensor.SensorType], string.Empty); HtmlWriter.RenderEndTag(); } HtmlWriter.Write("{0} {1} = <strong>{2}{3}</strong>", sensor.Name, sensor.Name.Contains(sensor.SensorType.ToString()) ? string.Empty : sensor.SensorType.ToString(), sensor.Value.HasValue ? sensor.Value.Value.ToString("#.##") : "no value", SensorUnit[sensor.SensorType]); // Print a progress bar for some sensor types. if (sensor.Value.HasValue && (sensor.SensorType == SensorType.Temperature || sensor.SensorType == SensorType.Load || sensor.SensorType == SensorType.Control)) { HtmlWriter.RenderTag(HtmlTextWriterTag.P, string.Empty); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "progress"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); string progressbarType; if (sensor.Value >= 80) { progressbarType = "danger"; } else if (sensor.Value >= 65) { progressbarType = "warning"; } else if (sensor.Value >= 50) { progressbarType = "info"; } else { progressbarType = "success"; } HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "progress-bar"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, string.Format("progress-bar-{0}", progressbarType)); HtmlWriter.AddAttribute("role", "progressbar"); HtmlWriter.AddAttribute("aria-valuenow", ((int)sensor.Value).ToString()); HtmlWriter.AddAttribute("aria-valuemin", "0"); HtmlWriter.AddAttribute("aria-valuemax", "100"); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Style, string.Format("width:{0}%", (int)sensor.Value)); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); HtmlWriter.RenderTag(HtmlTextWriterTag.Strong, string.Format("{0}{1}", sensor.Value.Value.ToString("#.##"), SensorUnit[sensor.SensorType])); HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> } HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> } RenderHardware(hardware.SubHardware); if (hardware.HardwareType == HardwareType.HDD && SystemHelper.IsWindows && Managers.HardwareManager.DiskManager.Count > 0) { var disk = Managers.HardwareManager.DiskManager[hardware.Name]; if (!ReferenceEquals(disk, null)) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "col-sm-12 text-left"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Div); // Disk Info HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h3>Information</h3>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Property"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Value"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); var props = disk.GetType().GetProperties(); foreach (var propertyInfo in props) { if (propertyInfo.Name.Equals("Attributes")) { continue; } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, propertyInfo.Name); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, propertyInfo.GetValue(disk).ToString()); HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> // Disk SMART HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, TABLE_CLASS); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Table); HtmlWriter.RenderTag(HtmlTextWriterTag.Caption, HtmlTextWriterAttribute.Class, "text-center", "<h3>S.M.A.R.T.</h3>"); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Thead); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Attribute"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Current"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Worst"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Threshold"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, "Raw"); HtmlWriter.RenderTag(HtmlTextWriterTag.Th, HtmlTextWriterAttribute.Class, "text-center", "Status"); HtmlWriter.RenderEndTag(); // </tr> HtmlWriter.RenderEndTag(); // </thead> HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tbody); foreach (var attribute in disk.Attributes) { if (!attribute.Value.HasData) { continue; } if (!attribute.Value.IsOK) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "danger"); } else { if (attribute.Value.Threshold > 0 && !attribute.Value.AttributeName.Contains("time")) { if (attribute.Value.Raw > 0) { if (attribute.Value.Raw >= attribute.Value.Threshold) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "danger"); } else { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "warning"); } } } else { if (attribute.Value.IsCritical && attribute.Value.Raw > 0) { HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "warning"); } } } HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Tr); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, (attribute.Value.IsCritical ? "<span class=\"text-danger\">*</span> " : String.Empty) + attribute.Value.AttributeName); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Current.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Worst.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Threshold.ToString()); HtmlWriter.RenderTag(HtmlTextWriterTag.Td, attribute.Value.Raw.ToString()); HtmlWriter.AddAttribute(HtmlTextWriterAttribute.Class, "text-center isok"); HtmlWriter.AddAttribute("data-order", Convert.ToByte(attribute.Value.IsOK).ToString()); HtmlWriter.RenderBeginTag(HtmlTextWriterTag.Td); HtmlWriter.Write(attribute.Value.IsOK ? "<span class=\"glyphicon glyphicon-ok text-success\"></span>" : "<span class=\"glyphicon glyphicon-remove text-error\"></span>"); HtmlWriter.RenderEndTag(); HtmlWriter.RenderEndTag(); } HtmlWriter.RenderEndTag(); // </tbody> HtmlWriter.RenderEndTag(); // </table> HtmlWriter.RenderTag(HtmlTextWriterTag.P, "<span class=\"text-danger\">*</span> Potential indicators of imminent electromechanical failure."); if (disk.Status.Equals("Pred Fail")) { HtmlWriter.RenderTag(HtmlTextWriterTag.Div, HtmlTextWriterAttribute.Class, "alert alert-danger", "<strong>This drive is failing and/or in bad condition! Consider making a backup of whole disk or your critical data and replace this disk.<br>" + "If the health keeps declining you will not be able to recover the disk at some point.</strong>"); } HtmlWriter.RenderEndTag(); // </div> } } HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> HtmlWriter.RenderEndTag(); // </div> } }
public void SetSensorType(SensorType? sensorType) { if (this.sensorType == sensorType) return; if (sensorType < 0 || sensorType > Enum.GetValues(typeof(SensorType)).Cast<SensorType>().Max()) { throw new ArgumentOutOfRangeException("This exception occurs when the serial port does not have time to write the data"); } this.sensorType = sensorType; switch (sensorType) { case SerialGateway.SensorType.S_DOOR: AddOrUpdateData(SensorDataType.V_TRIPPED, "0"); //AddOrUpdateData(SensorDataType.V_ARMED, "0"); break; case SerialGateway.SensorType.S_MOTION: break; case SerialGateway.SensorType.S_SMOKE: break; case SerialGateway.SensorType.S_LIGHT: AddOrUpdateData(SensorDataType.V_STATUS, "0"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SerialGateway.SensorType.S_DIMMER: //AddOrUpdateData(SensorDataType.V_STATUS, "0"); AddOrUpdateData(SensorDataType.V_DIMMER, "0"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SerialGateway.SensorType.S_COVER: break; case SerialGateway.SensorType.S_TEMP: break; case SerialGateway.SensorType.S_HUM: break; case SerialGateway.SensorType.S_BARO: break; case SerialGateway.SensorType.S_WIND: break; case SerialGateway.SensorType.S_RAIN: break; case SerialGateway.SensorType.S_UV: break; case SerialGateway.SensorType.S_WEIGHT: break; case SerialGateway.SensorType.S_POWER: break; case SerialGateway.SensorType.S_HEATER: break; case SerialGateway.SensorType.S_DISTANCE: break; case SerialGateway.SensorType.S_LIGHT_LEVEL: break; case SerialGateway.SensorType.S_ARDUINO_NODE: break; case SerialGateway.SensorType.S_ARDUINO_REPEATER_NODE: break; case SerialGateway.SensorType.S_LOCK: break; case SerialGateway.SensorType.S_IR: AddOrUpdateData(SensorDataType.V_IR_SEND, ""); break; case SerialGateway.SensorType.S_WATER: break; case SerialGateway.SensorType.S_AIR_QUALITY: break; case SerialGateway.SensorType.S_CUSTOM: break; case SerialGateway.SensorType.S_DUST: break; case SerialGateway.SensorType.S_SCENE_CONTROLLER: break; case SerialGateway.SensorType.S_RGB_LIGHT: AddOrUpdateData(SensorDataType.V_RGB, "000000"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SerialGateway.SensorType.S_RGBW_LIGHT: AddOrUpdateData(SensorDataType.V_RGBW, "00000000"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SerialGateway.SensorType.S_COLOR_SENSOR: break; case SerialGateway.SensorType.S_HVAC: break; case SerialGateway.SensorType.S_MULTIMETER: break; case SerialGateway.SensorType.S_SPRINKLER: break; case SerialGateway.SensorType.S_WATER_LEAK: break; case SerialGateway.SensorType.S_SOUND: break; case SerialGateway.SensorType.S_VIBRATION: break; case SerialGateway.SensorType.S_MOISTURE: break; } }
public static string GetSimpleSensorType(SensorType?sensorType) { switch (sensorType) { case SensorType.S_DOOR: return("Door"); case SensorType.S_MOTION: return("Motion"); case SensorType.S_SMOKE: return("Smoke"); case SensorType.S_BINARY: return("Binary"); case SensorType.S_DIMMER: return("Dimmer"); case SensorType.S_COVER: return("Cover"); case SensorType.S_TEMP: return("Temp"); case SensorType.S_HUM: return("Humidity"); case SensorType.S_BARO: return("Baro"); case SensorType.S_WIND: return("Wind"); case SensorType.S_RAIN: return("Rain"); case SensorType.S_UV: return("UV"); case SensorType.S_WEIGHT: return("Weight"); case SensorType.S_POWER: return("Power"); case SensorType.S_HEATER: return("Heater"); case SensorType.S_DISTANCE: return("Distance"); case SensorType.S_LIGHT_LEVEL: return("Light Level"); case SensorType.S_ARDUINO_NODE: return("Simple node"); case SensorType.S_ARDUINO_REPEATER_NODE: return("Repeater node"); case SensorType.S_LOCK: return("Lock"); case SensorType.S_IR: return("IR"); case SensorType.S_WATER: return("Water"); case SensorType.S_AIR_QUALITY: return("Air"); case SensorType.S_CUSTOM: return("Custom"); case SensorType.S_DUST: return("Dust"); case SensorType.S_SCENE_CONTROLLER: return("Scene controller"); case SensorType.S_RGB_LIGHT: return("RGB Light"); case SensorType.S_RGBW_LIGHT: return("RGMW Light"); case SensorType.S_COLOR_SENSOR: return("Color"); case SensorType.S_HVAC: return("HRAC"); case SensorType.S_MULTIMETER: return("Multimiter"); case SensorType.S_SPRINKLER: return("Sprinkler"); case SensorType.S_WATER_LEAK: return("Water leak"); case SensorType.S_SOUND: return("Sound"); case SensorType.S_VIBRATION: return("Vibration"); case SensorType.S_MOISTURE: return("Moisture"); } return("Unknown"); }
public void SetSensorType(SensorType? sensorType) { if (this.sensorType==sensorType) return; this.sensorType = sensorType; switch (sensorType) { case SensorType.S_DOOR: AddOrUpdateData(SensorDataType.V_TRIPPED, "0"); //AddOrUpdateData(SensorDataType.V_ARMED, "0"); break; case SensorType.S_MOTION: break; case SensorType.S_SMOKE: break; case SensorType.S_LIGHT: AddOrUpdateData(SensorDataType.V_STATUS, "0"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SensorType.S_DIMMER: AddOrUpdateData(SensorDataType.V_STATUS, "0"); AddOrUpdateData(SensorDataType.V_DIMMER, "0"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SensorType.S_COVER: break; case SensorType.S_TEMP: break; case SensorType.S_HUM: break; case SensorType.S_BARO: break; case SensorType.S_WIND: break; case SensorType.S_RAIN: break; case SensorType.S_UV: break; case SensorType.S_WEIGHT: break; case SensorType.S_POWER: break; case SensorType.S_HEATER: break; case SensorType.S_DISTANCE: break; case SensorType.S_LIGHT_LEVEL: break; case SensorType.S_ARDUINO_NODE: break; case SensorType.S_ARDUINO_REPEATER_NODE: break; case SensorType.S_LOCK: break; case SensorType.S_IR: AddOrUpdateData(SensorDataType.V_IR_SEND, ""); break; case SensorType.S_WATER: break; case SensorType.S_AIR_QUALITY: break; case SensorType.S_CUSTOM: break; case SensorType.S_DUST: break; case SensorType.S_SCENE_CONTROLLER: break; case SensorType.S_RGB_LIGHT: AddOrUpdateData(SensorDataType.V_RGB, "000000"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SensorType.S_RGBW_LIGHT: AddOrUpdateData(SensorDataType.V_RGBW, "00000000"); //AddOrUpdateData(SensorDataType.V_WATT, "0"); break; case SensorType.S_COLOR_SENSOR: break; case SensorType.S_HVAC: break; case SensorType.S_MULTIMETER: break; case SensorType.S_SPRINKLER: break; case SensorType.S_WATER_LEAK: break; case SensorType.S_SOUND: break; case SensorType.S_VIBRATION: break; case SensorType.S_MOISTURE: break; case null: break; default: throw new ArgumentOutOfRangeException(nameof(sensorType), sensorType, null); } }
protected virtual IWebResponse GetResponse(ref string address, string function) { switch (function) { case nameof(XmlFunction.TableData): case nameof(XmlFunction.HistoricData): return(GetTableResponse(address, function, false)); case nameof(CommandFunction.Pause): case nameof(CommandFunction.PauseObjectFor): return(new BasicResponse("<a data-placement=\"bottom\" title=\"Resume\" href=\"#\" onclick=\"var self=this; _Prtg.objectTools.pauseObject.call(this,'1234',1);return false;\"><i class=\"icon-play icon-dark\"></i></a>")); case nameof(HtmlFunction.ChannelEdit): var components = UrlUtilities.CrackUrl(address); if (components["channel"] != "99") { return(new ChannelResponse(new ChannelItem())); } return(new BasicResponse(string.Empty)); case nameof(CommandFunction.DuplicateObject): address = "https://prtg.example.com/public/login.htm?loginurl=/object.htm?id=9999&errormsg="; return(new BasicResponse(string.Empty)); case nameof(HtmlFunction.EditSettings): return(new BasicResponse(string.Empty)); case nameof(JsonFunction.GetStatus): return(new ServerStatusResponse(new ServerStatusItem())); case nameof(JsonFunction.Triggers): return(new TriggerOverviewResponse()); case nameof(JsonFunction.SensorTypes): return(new SensorTypeResponse()); case nameof(HtmlFunction.ObjectData): return(GetObjectDataResponse(address)); case nameof(XmlFunction.GetObjectProperty): case nameof(XmlFunction.GetObjectStatus): return(GetRawObjectProperty(address)); case nameof(CommandFunction.AddSensor2): newSensorType = UrlUtilities.CrackUrl(address)["sensortype"].ToEnum <SensorType>(); address = "http://prtg.example.com/controls/addsensor3.htm?id=9999&tmpid=2"; return(new BasicResponse(string.Empty)); case nameof(HtmlFunction.EditNotification): return(new NotificationActionResponse(new NotificationActionItem())); case nameof(JsonFunction.GetAddSensorProgress): var progress = hitCount[function] % 2 == 0 ? 100 : 50; return(new BasicResponse($"{{\"progress\":\"{progress}\",\"targeturl\":\" /addsensor4.htm?id=4251&tmpid=119\"}}")); case nameof(HtmlFunction.AddSensor4): return(GetSensorTargetResponse()); case nameof(XmlFunction.GetTreeNodeStats): return(new SensorTotalsResponse(new SensorTotalsItem())); case nameof(JsonFunction.GeoLocator): return(new GeoLocatorResponse()); case nameof(CommandFunction.AcknowledgeAlarm): case nameof(CommandFunction.AddSensor5): case nameof(CommandFunction.AddDevice2): case nameof(CommandFunction.AddGroup2): case nameof(CommandFunction.ClearCache): case nameof(CommandFunction.DeleteObject): case nameof(HtmlFunction.RemoveSubObject): case nameof(CommandFunction.DiscoverNow): case nameof(CommandFunction.LoadLookups): case nameof(CommandFunction.MoveObjectNow): case nameof(CommandFunction.ProbeState): case nameof(CommandFunction.RecalcCache): case nameof(CommandFunction.Rename): case nameof(CommandFunction.RestartServer): case nameof(CommandFunction.RestartProbes): case nameof(CommandFunction.ReloadFileLists): case nameof(CommandFunction.SaveNow): case nameof(CommandFunction.ScanNow): case nameof(CommandFunction.SetPosition): case nameof(CommandFunction.Simulate): case nameof(CommandFunction.SortSubObjects): case nameof(CommandFunction.SysInfoCheckNow): return(new BasicResponse(string.Empty)); default: throw GetUnknownFunctionException(function); } }
public void SetSensorType(SensorType? sensorType) { if (this.type == sensorType) return; if (sensorType < 0 || sensorType > Enum.GetValues(typeof (SensorType)).Cast<SensorType>().Max()) { Console.WriteLine("This exception occurs when the serial port does not have time to write the data"); throw new ArgumentOutOfRangeException("This exception occurs when the serial port does not have time to write the data"); } this.type = sensorType; switch (sensorType) { case SensorType.S_DOOR: dataType = SensorDataType.V_TRIPPED; break; case SensorType.S_MOTION: dataType = SensorDataType.V_TRIPPED; break; case SensorType.S_SMOKE: dataType = SensorDataType.V_TRIPPED; break; case SensorType.S_BINARY: dataType = SensorDataType.V_STATUS; break; case SensorType.S_DIMMER: dataType = SensorDataType.V_DIMMER; break; case SensorType.S_COVER: dataType = SensorDataType.V_PERCENTAGE; break; case SensorType.S_TEMP: dataType = SensorDataType.V_TEMP; break; case SensorType.S_HUM: dataType = SensorDataType.V_HUM; break; case SensorType.S_BARO: dataType = SensorDataType.V_PRESSURE; break; case SensorType.S_WIND: dataType = SensorDataType.V_WIND; break; case SensorType.S_RAIN: dataType = SensorDataType.V_RAIN; break; case SensorType.S_UV: dataType = SensorDataType.V_UV; break; case SensorType.S_WEIGHT: dataType = SensorDataType.V_WEIGHT; break; case SensorType.S_POWER: dataType = SensorDataType.V_WATT; break; case SensorType.S_HEATER: dataType = SensorDataType.V_TEMP; break; case SensorType.S_DISTANCE: dataType = SensorDataType.V_DISTANCE; break; case SensorType.S_LIGHT_LEVEL: dataType = SensorDataType.V_LIGHT_LEVEL; break; case SensorType.S_ARDUINO_NODE: dataType = null; break; case SensorType.S_ARDUINO_REPEATER_NODE: dataType = null; break; case SensorType.S_LOCK: dataType = SensorDataType.V_LOCK_STATUS; break; case SensorType.S_IR: dataType = SensorDataType.V_IR_SEND; break; case SensorType.S_WATER: dataType = SensorDataType.V_VOLUME; break; case SensorType.S_AIR_QUALITY: dataType = SensorDataType.V_LEVEL; break; case SensorType.S_CUSTOM: dataType = null; break; case SensorType.S_DUST: dataType = SensorDataType.V_LEVEL; break; case SensorType.S_SCENE_CONTROLLER: dataType = SensorDataType.V_SCENE_ON; break; case SensorType.S_RGB_LIGHT: dataType = SensorDataType.V_RGB; break; case SensorType.S_RGBW_LIGHT: dataType = SensorDataType.V_RGBW; break; case SensorType.S_COLOR_SENSOR: dataType = SensorDataType.V_RGB; break; case SensorType.S_HVAC: dataType = SensorDataType.V_HVAC_SETPOINT_HEAT; break; case SensorType.S_MULTIMETER: dataType = SensorDataType.V_VOLTAGE; break; case SensorType.S_SPRINKLER: dataType = SensorDataType.V_STATUS; break; case SensorType.S_WATER_LEAK: dataType = SensorDataType.V_TRIPPED; break; case SensorType.S_SOUND: dataType = SensorDataType.V_LEVEL; break; case SensorType.S_VIBRATION: dataType = SensorDataType.V_LEVEL; break; case SensorType.S_MOISTURE: dataType = SensorDataType.V_LEVEL; break; } }
/// <summary> /// Read the intensity of the reflected light /// </summary> public int Read() { int value = 0; switch (mode) { case (SensorMode)ColorMode.Ambient: value = GetRead(); break; case (SensorMode)ColorMode.Color: value = GetRaw(); if(type == null) type = this.GetSensorType(); if(type == SensorType.NXTColor){ NXT.Color nxtColor = (NXT.Color) value; switch(nxtColor){ case MonoBrick.NXT.Color.Black: value = (int) Color.Black; break; case MonoBrick.NXT.Color.Blue: value = (int) Color.Blue; break; case MonoBrick.NXT.Color.Green: value = (int) Color.Green; break; case MonoBrick.NXT.Color.Red: value = (int) Color.Red; break; case MonoBrick.NXT.Color.White: value = (int) Color.White; break; case MonoBrick.NXT.Color.Yellow: value = (int) Color.Yellow; break; } } break; case (SensorMode)ColorMode.Reflection: value = GetRead(); break; case (SensorMode)ColorMode.Raw: if(type == null) type = this.GetSensorType(); if(type == SensorType.NXTColor){ if( ((ColorMode)mode) == ColorMode.Raw){ SetMode(SensorMode.Mode5); } } value = GetRaw(); break; default: value = GetRaw(); break; } return value; }
public SmartAttribute(byte identifier, string name, RawValueConversion rawValueConversion, SensorType?sensorType, int sensorChannel) : this(identifier, name, rawValueConversion, sensorType, sensorChannel, false, null) { }
public SmartAttribute(byte identifier, string name, RawValueConversion rawValueConversion, SensorType?sensorType, int sensorChannel, bool defaultHiddenSensor) : this(identifier, name, rawValueConversion, sensorType, sensorChannel, defaultHiddenSensor, null) { }
/// <summary> /// Set SensorType field /// Comment: Indicates which sensor the calibration is for</summary> /// <param name="sensorType_">Nullable field value to be set</param> public void SetSensorType(SensorType?sensorType_) { SetFieldValue(0, 0, sensorType_, Fit.SubfieldIndexMainField); }
/// <summary> /// Read the intensity of the reflected light /// </summary> public int Read() { int value = 0; switch (mode) { case (SensorMode)ColorMode.Ambient: value = GetRead(); break; case (SensorMode)ColorMode.Color: value = GetRaw(); if (type == null) { type = this.GetSensorType(); } if (type == SensorType.NXTColor) { NXT.Color nxtColor = (NXT.Color)value; switch (nxtColor) { case MonoBrick.NXT.Color.Black: value = (int)Color.Black; break; case MonoBrick.NXT.Color.Blue: value = (int)Color.Blue; break; case MonoBrick.NXT.Color.Green: value = (int)Color.Green; break; case MonoBrick.NXT.Color.Red: value = (int)Color.Red; break; case MonoBrick.NXT.Color.White: value = (int)Color.White; break; case MonoBrick.NXT.Color.Yellow: value = (int)Color.Yellow; break; } } break; case (SensorMode)ColorMode.Reflection: value = GetRead(); break; case (SensorMode)ColorMode.Raw: if (type == null) { type = this.GetSensorType(); } if (type == SensorType.NXTColor) { if (((ColorMode)mode) == ColorMode.Raw) { SetMode(SensorMode.Mode5); } } value = GetRaw(); break; default: value = GetRaw(); break; } return(value); }