internal override double Update() { // Check is the ParentMeasure is still there. // Find parent using name AND the skin handle to be sure that it's the right one. ParentMeasure = null; foreach (MqttClientMeasure parentMeasure in MqttClientMeasure.ParentMeasures) { if (parentMeasure.Skin.Equals(Skin) && parentMeasure.Name.Equals(ParentName)) { ParentMeasure = parentMeasure; try { // Child Topic value return(ParentMeasure.GetValue(Topic)); } catch { Debug("Error Updating !", 1); } } } return(0.0); }
public static void Initialize(ref IntPtr data, IntPtr rm) { Rainmeter.API api = new Rainmeter.API(rm); string parent = api.ReadString("ParentName", ""); Measure measure; if (String.IsNullOrEmpty(parent)) { measure = new MqttClientMeasure(api); } else { measure = new MqttTopicMeasure(api); } data = GCHandle.ToIntPtr(GCHandle.Alloc(measure)); }
internal override String GetString() { // Find parent using name AND the skin handle to be sure that it's the right one. ParentMeasure = null; foreach (MqttClientMeasure parentMeasure in MqttClientMeasure.ParentMeasures) { if (parentMeasure.Skin.Equals(Skin) && parentMeasure.Name.Equals(ParentName)) { ParentMeasure = parentMeasure; try { Debug(Topic, 5); String data = ParentMeasure.GetString(Topic); if (Property != "") { try { JObject o = JObject.Parse(data); data = (string)o.SelectToken(Property).ToString(); } catch { Log(API.LogType.Warning, Property + " not valid"); } return(data); } else { return(data); } } catch { Debug("Error Retrieving String !", 1); } } } return(""); }
internal override void Reload(Rainmeter.API api, ref double maxValue) { Rainmeter = api; base.Reload(api, ref maxValue); Topic = api.ReadString("Topic", "defaulttopic"); Property = api.ReadString("Property", ""); var qos = api.ReadInt("Qos", 0); ParentName = api.ReadString("ParentName", ""); Skin = api.GetSkin(); // Find parent using name AND the skin handle to be sure that it's the right one. ParentMeasure = null; foreach (MqttClientMeasure parentMeasure in MqttClientMeasure.ParentMeasures) { if (parentMeasure.Skin.Equals(Skin) && parentMeasure.Name.Equals(ParentName)) { ParentMeasure = parentMeasure; try { DebugLevel = parentMeasure.DebugLevel; ParentMeasure.Subscribe(Topic, (byte)qos); } catch { Debug("Error Subscribing !", 1); } } } if (ParentMeasure == null) { Log(API.LogType.Error, "ParentChild.dll: ParentName=" + ParentName + " not valid"); } }