public void ParseSubscriptionMessage(string customName, string message) { IsSubscribed = true; SubscribedFeedback.FireUpdate(); Debug.Console(2, this, "Parsing Message - '{0}'", message); var value = Double.Parse(message).Scale(_meterMinimum, _meterMaximum, (double)ushort.MinValue, (double)ushort.MaxValue); _currentMeter = (ushort)value; Debug.Console(2, this, "Scaled Meter Value - '{0}'", _currentMeter); MeterFeedback.FireUpdate(); }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { var joinMap = new TesiraMeterJoinMapAdvancedStandalone(joinStart); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); if (!string.IsNullOrEmpty(joinMapSerialized)) { joinMap = JsonConvert.DeserializeObject <TesiraMeterJoinMapAdvancedStandalone>(joinMapSerialized); } if (bridge != null) { bridge.AddJoinMap(Key, joinMap); } Debug.Console(2, this, "AddingMeterBridge {0} | Join:{1}", Key, joinMap.Label.JoinNumber); MeterFeedback.LinkInputSig(trilist.UShortInput[joinMap.Meter.JoinNumber]); NameFeedback.LinkInputSig(trilist.StringInput[joinMap.Label.JoinNumber]); SubscribedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Subscribe.JoinNumber]); trilist.SetSigTrueAction(joinMap.Subscribe.JoinNumber, Subscribe); trilist.SetSigFalseAction(joinMap.Subscribe.JoinNumber, UnSubscribe); trilist.OnlineStatusChange += (d, args) => { if (!args.DeviceOnLine) { return; } foreach (var feedback in Feedbacks) { feedback.FireUpdate(); } }; }