using System; using System.Collections.Generic; using System.Linq; using System.Text; using Crestron.SimplSharp; namespace PepperDash.Essentials.Devices.Common.DSP { public abstract class QscDspControlPoint : DspControlPoint { public string Key { get; protected set; } public string LevelInstanceTag { get; set; } public string MuteInstanceTag { get; set; } public QscDsp Parent { get; private set; } public bool IsSubscribed { get; protected set; } protected QscDspControlPoint(string levelInstanceTag, string muteInstanceTag, QscDsp parent) { LevelInstanceTag = levelInstanceTag; MuteInstanceTag = muteInstanceTag; Parent = parent; } virtual public void Initialize() { } /// /// Sends a command to the DSP /// /// command /// attribute code /// value (use "" if not applicable) public virtual void SendFullCommand(string cmd, string instance, string value) { var cmdToSemd = string.Format("{0} {1} {2}", cmd, instance, value); Parent.SendLine(cmdToSemd); } virtual public void ParseGetMessage(string attributeCode, string message) { } public virtual void SendSubscriptionCommand(string instanceTag, string changeGroup) { // Subscription string format: InstanceTag subscribe attributeCode Index1 customName responseRate // Ex: "RoomLevel subscribe level 1 MyRoomLevel 500" string cmd; cmd = string.Format("cga {0} {1}", changeGroup, instanceTag); Parent.SendLine(cmd); } } }