Beispiel #1
0
        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);
        }
Beispiel #2
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));
        }
Beispiel #3
0
        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("");
        }
Beispiel #4
0
        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");
            }
        }