Reset branch back to latest DEVELOPMENT head

This commit is contained in:
Jonathan Arndt
2021-03-10 21:34:19 -08:00
parent f74fa35ca4
commit 921819592e
7 changed files with 106 additions and 20 deletions

View File

@@ -5,30 +5,62 @@ namespace PepperDash.Essentials.Room.Config
{ {
public class EssentialsTechRoomConfig public class EssentialsTechRoomConfig
{ {
/// <summary>
/// The key of the dummy device used to enable routing
/// </summary>
[JsonProperty("dummySourceKey")] [JsonProperty("dummySourceKey")]
public string DummySourceKey { get; set; } public string DummySourceKey { get; set; }
/// <summary>
/// The keys of the displays assigned to this room
/// </summary>
[JsonProperty("displays")] [JsonProperty("displays")]
public List<string> Displays; public List<string> Displays { get; set; }
/// <summary>
/// The keys of the tuners assinged to this room
/// </summary>
[JsonProperty("tuners")] [JsonProperty("tuners")]
public List<string> Tuners; public List<string> Tuners { get; set; }
/// <summary>
/// PIN to access the room as a normal user
/// </summary>
[JsonProperty("userPin")] [JsonProperty("userPin")]
public string UserPin; public string UserPin { get; set; }
/// <summary>
/// PIN to access the room as a tech user
/// </summary>
[JsonProperty("techPin")] [JsonProperty("techPin")]
public string TechPin; public string TechPin { get; set; }
/// <summary>
/// Name of the presets file. Path prefix is assumed to be /html/presets/lists/
/// </summary>
[JsonProperty("presetsFileName")] [JsonProperty("presetsFileName")]
public string PresetsFileName; public string PresetsFileName { get; set; }
[JsonProperty("scheduledEvents")] [JsonProperty("scheduledEvents")]
public List<ScheduledEventConfig> ScheduledEvents; public List<ScheduledEventConfig> ScheduledEvents { get; set; }
[JsonProperty("isPrimary")] public bool IsPrimary; /// <summary>
/// Indicates that the room is the primary when true
/// </summary>
[JsonProperty("isPrimary")]
public bool IsPrimary { get; set; }
[JsonProperty("isTvPresetsProvider")] public bool IsTvPresetsProvider; /// <summary>
/// Indicates which tuners should mirror preset recall when two rooms are configured in a primary->secondary scenario
/// </summary>
[JsonProperty("mirroredTuners")]
public Dictionary<uint, string> MirroredTuners { get; set; }
/// <summary>
/// Indicates the room
/// </summary>
[JsonProperty("isTvPresetsProvider")]
public bool IsTvPresetsProvider;
public EssentialsTechRoomConfig() public EssentialsTechRoomConfig()
{ {

View File

@@ -373,13 +373,32 @@ Params: {2}"
uint i; uint i;
if (_config.IsPrimary) if (_config.IsPrimary)
{ {
i = 0; Debug.Console(1, this, "Linking Primary system Tuner Preset Mirroring");
foreach (var feedback in CurrentPresetsFeedbacks) if (_config.MirroredTuners != null && _config.MirroredTuners.Count > 0)
{ {
feedback.Value.LinkInputSig(trilist.StringInput[(uint) (joinMap.CurrentPreset.JoinNumber + i)]); foreach (var tuner in _config.MirroredTuners)
i++; {
var f = CurrentPresetsFeedbacks[tuner.Value];
if (f == null)
{
Debug.Console(1, this, "Unable to find feedback with key: {0}", tuner.Value);
continue;
}
var join = joinMap.CurrentPreset.JoinNumber + tuner.Key;
f.LinkInputSig(trilist.StringInput[(uint)(join)]);
Debug.Console(1, this, "Linked Current Preset feedback for tuner: {0} to serial join: {1}", tuner.Value, join);
}
} }
//i = 0;
//foreach (var feedback in CurrentPresetsFeedbacks)
//{
// feedback.Value.LinkInputSig(trilist.StringInput[(uint) (joinMap.CurrentPreset.JoinNumber + i)]);
// i++;
//}
trilist.OnlineStatusChange += (device, args) => trilist.OnlineStatusChange += (device, args) =>
{ {
if (!args.DeviceOnLine) if (!args.DeviceOnLine)
@@ -395,15 +414,35 @@ Params: {2}"
return; return;
} }
else
i = 0;
foreach (var setTopBox in _tuners)
{ {
var tuner = setTopBox; Debug.Console(1, this, "Linking Secondary system Tuner Preset Mirroring");
trilist.SetStringSigAction(joinMap.CurrentPreset.JoinNumber + i, s => _tunerPresets.Dial(s, tuner.Value)); if (_config.MirroredTuners != null && _config.MirroredTuners.Count > 0)
{
foreach (var tuner in _config.MirroredTuners)
{
var t = _tuners[tuner.Value];
i++; if (t == null)
{
Debug.Console(1, this, "Unable to find tuner with key: {0}", tuner.Value);
continue;
}
var join = joinMap.CurrentPreset.JoinNumber + tuner.Key;
trilist.SetStringSigAction(join, s => _tunerPresets.Dial(s, t));
Debug.Console(1, this, "Linked preset recall action for tuner: {0} to serial join: {1}", tuner.Value, join);
}
//foreach (var setTopBox in _tuners)
//{
// var tuner = setTopBox;
// trilist.SetStringSigAction(joinMap.CurrentPreset.JoinNumber + i, s => _tunerPresets.Dial(s, tuner.Value));
//}
}
} }
} }

View File

@@ -47,6 +47,13 @@ namespace PepperDash.Essentials.Core
return true; return true;
} }
void Port_LineReceived(object dev, GenericCommMethodReceiveTextArgs args)
{
if (Debug.Level == 2)
Debug.Console(2, this, "RX: '{0}'",
ShowHexResponse ? ComTextHelper.GetEscapedText(args.Text) : args.Text);
}
void SendLine(string s) void SendLine(string s)
{ {
//if (Debug.Level == 2) //if (Debug.Level == 2)

View File

@@ -96,6 +96,7 @@ namespace PepperDash.Essentials.Core
// this is a permanent event handler. This cannot be -= from event // this is a permanent event handler. This cannot be -= from event
CommPort.TextReceived += (s, a) => CommPort.TextReceived += (s, a) =>
{ {
//Debug.Console(2, this, "RX: {0}", a.Text);
trilist.SetString(joinMap.TextReceived.JoinNumber, a.Text); trilist.SetString(joinMap.TextReceived.JoinNumber, a.Text);
}; };
trilist.SetStringSigAction(joinMap.SendText.JoinNumber, s => CommPort.SendText(s)); trilist.SetStringSigAction(joinMap.SendText.JoinNumber, s => CommPort.SendText(s));

View File

@@ -33,6 +33,7 @@ namespace PepperDash.Essentials.Core
string url = string.Format("http://{0}/{1}", Client.HostName, path); string url = string.Format("http://{0}/{1}", Client.HostName, path);
request.Url = new UrlParser(url); request.Url = new UrlParser(url);
HttpClient.DISPATCHASYNC_ERROR error = Client.DispatchAsyncEx(request, Response, request); HttpClient.DISPATCHASYNC_ERROR error = Client.DispatchAsyncEx(request, Response, request);
Debug.Console(2, this, "GenericHttpClient SentRequest TX:'{0}'", url);
} }
public void SendText(string format, params object[] items) public void SendText(string format, params object[] items)
{ {
@@ -40,6 +41,7 @@ namespace PepperDash.Essentials.Core
string url = string.Format("http://{0}/{1}", Client.HostName, string.Format(format, items)); string url = string.Format("http://{0}/{1}", Client.HostName, string.Format(format, items));
request.Url = new UrlParser(url); request.Url = new UrlParser(url);
HttpClient.DISPATCHASYNC_ERROR error = Client.DispatchAsyncEx(request, Response, request); HttpClient.DISPATCHASYNC_ERROR error = Client.DispatchAsyncEx(request, Response, request);
Debug.Console(2, this, "GenericHttpClient SentRequest TX:'{0}'", url);
} }
public void SendTextNoResponse(string format, params object[] items) public void SendTextNoResponse(string format, params object[] items)
@@ -48,6 +50,7 @@ namespace PepperDash.Essentials.Core
string url = string.Format("http://{0}/{1}", Client.HostName, string.Format(format, items)); string url = string.Format("http://{0}/{1}", Client.HostName, string.Format(format, items));
request.Url = new UrlParser(url); request.Url = new UrlParser(url);
Client.Dispatch(request); Client.Dispatch(request);
Debug.Console(2, this, "GenericHttpClient SentRequest TX:'{0}'", url);
} }
private void Response(HttpClientResponse response, HTTP_CALLBACK_ERROR error, object request) private void Response(HttpClientResponse response, HTTP_CALLBACK_ERROR error, object request)
@@ -60,6 +63,10 @@ namespace PepperDash.Essentials.Core
{ {
if (ResponseRecived != null) if (ResponseRecived != null)
ResponseRecived(this, new GenericHttpClientEventArgs(responseReceived.ContentString, (request as HttpClientRequest).Url.ToString(), error)); ResponseRecived(this, new GenericHttpClientEventArgs(responseReceived.ContentString, (request as HttpClientRequest).Url.ToString(), error));
Debug.Console(2, this, "GenericHttpClient ResponseReceived");
Debug.Console(2, this, "RX:{0}", responseReceived.ContentString);
Debug.Console(2, this, "TX:{0}", (request as HttpClientRequest).Url.ToString());
} }
} }

View File

@@ -47,7 +47,7 @@ namespace PepperDash.Essentials.Core.Utilities
/// </summary> /// </summary>
public void StartSequence() public void StartSequence()
{ {
if (_worker.ThreadState == Thread.eThreadStates.ThreadRunning) if (_worker !=null && _worker.ThreadState == Thread.eThreadStates.ThreadRunning)
{ {
Debug.Console(1, this, "Thread already running. Cannot Start Sequence"); Debug.Console(1, this, "Thread already running. Cannot Start Sequence");
return; return;

View File

@@ -820,7 +820,7 @@ namespace PepperDash.Essentials.DM
{ {
if (RouteOffTimers.ContainsKey(pnt)) if (RouteOffTimers.ContainsKey(pnt))
return; return;
RouteOffTimers[pnt] = new CTimer(o => ExecuteSwitch(0, pnt.Number, pnt.Type), RouteOffTime); RouteOffTimers[pnt] = new CTimer(o => ExecuteSwitch(null, pnt.Selector, pnt.Type), RouteOffTime);
} }
#region IRouting Members #region IRouting Members