/** * <summary> * Retrieves a sensor for a given identifier. * <para> * The identifier can be specified using several formats: * </para> * <para> * </para> * <para> * - FunctionLogicalName * </para> * <para> * - ModuleSerialNumber.FunctionIdentifier * </para> * <para> * - ModuleSerialNumber.FunctionLogicalName * </para> * <para> * - ModuleLogicalName.FunctionIdentifier * </para> * <para> * - ModuleLogicalName.FunctionLogicalName * </para> * <para> * </para> * <para> * This function does not require that the sensor is online at the time * it is invoked. The returned object is nevertheless valid. * Use the method <c>YSensor.isOnline()</c> to test if the sensor is * indeed online at a given time. In case of ambiguity when looking for * a sensor by logical name, no error is notified: the first instance * found is returned. The search is performed first by hardware name, * then by logical name. * </para> * </summary> * <param name="func"> * a string that uniquely characterizes the sensor * </param> * <returns> * a <c>YSensor</c> object allowing you to drive the sensor. * </returns> */ public static YSensor FindSensor(string func) { YSensor obj; obj = (YSensor)YFunction._FindFromCache("Sensor", func); if (obj == null) { obj = new YSensor(func); YFunction._AddToCache("Sensor", func, obj); } return obj; }
public DataEvent(YSensor sensor, double timestamp, List<int> report) { _fun = null; _sensor = sensor; _value = null; _timestamp = timestamp; _report = report; }
static protected void _UpdateTimedReportCallbackList(YSensor func, Boolean add) { if (add) { func.isOnline(); if (!_TimedReportCallbackList.Contains(func)) { _TimedReportCallbackList.Add(func); } } else { _TimedReportCallbackList.Remove(func); } }
public DataEvent(YFunction fun, String value) { _fun = fun; _sensor = null; _value = value; _report = null; _timestamp = 0; }