From 26a784277ac7f1867a4265cd1ba21f575bf9d613 Mon Sep 17 00:00:00 2001 From: Logophilist Date: Wed, 7 Oct 2020 12:58:50 +0200 Subject: [PATCH] Panel now shows more data --- RH-Engine/Command.cs | 45 ++++++++++++++++++++++++++++++++++++---- RH-Engine/Program.cs | 49 ++++++++++++++++++++++++++++++++------------ 2 files changed, 77 insertions(+), 17 deletions(-) diff --git a/RH-Engine/Command.cs b/RH-Engine/Command.cs index 3875448..ba8a6c0 100644 --- a/RH-Engine/Command.cs +++ b/RH-Engine/Command.cs @@ -164,7 +164,7 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } - public string bikeSpeed(string uuidPanel, string serialCode, double speed) + private string showOnPanel(string uuidPanel, string serialCode, string mText, int index) { dynamic payload = new { @@ -173,9 +173,9 @@ namespace RH_Engine data = new { id = uuidPanel, - text = "Speed: " + speed.ToString(), - position = new int[] { 4, 24 }, - size = 36.0, + text = mText, + position = new int[] { 4, 24 + index * 32 }, + size = 32.0, color = new int[] { 0, 0, 0, 1 }, font = "segoeui" } @@ -184,6 +184,43 @@ namespace RH_Engine return JsonConvert.SerializeObject(Payload(payload)); } + + public string showBikespeed(string uuidPanel, string serialCode, double speed) + { + //dynamic payload = new + //{ + // id = "scene/panel/drawtext", + // serial = serialCode, + // data = new + // { + // id = uuidPanel, + // text = "Speed: " + speed + " m/s", + // position = new int[] { 4, 24 }, + // size = 36.0, + // color = new int[] { 0, 0, 0, 1 }, + // font = "segoeui" + // } + //}; + + //return JsonConvert.SerializeObject(Payload(payload)); + return showOnPanel(uuidPanel, serialCode, "Speed: " + speed + " m/s", 0); + } + + public string showHeartrate(string uuidPanel, string serialCode, int bpm) + { + return showOnPanel(uuidPanel, serialCode, "Heartrate: " + bpm + " bpm", 1); + } + + public string showPower(string uuidPanel, string serialCode, double power) + { + return showOnPanel(uuidPanel, serialCode, "Inst. Power: " + power + " W", 2); + } + + public string showResistance(string uuidPanel, string serialCode, double resistance) + { + return showOnPanel(uuidPanel, serialCode, "Resistance: " + resistance + " %", 3); + } + public string SwapPanelCommand(string uuid) { dynamic payload = new diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index ae25339..4d11703 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -81,7 +81,11 @@ namespace RH_Engine //Console.WriteLine("GOT MESSAGE WITH SERIAL: " + message + "\n\n\n"); string serial = JSONParser.GetSerial(message); //Console.WriteLine("Got serial " + serial); - if (serialResponses.ContainsKey(serial)) serialResponses[serial].Invoke(message); + if (serialResponses.ContainsKey(serial)) + { + serialResponses[serial].Invoke(message); + serialResponses.Remove(serial); + } } } @@ -181,19 +185,9 @@ namespace RH_Engine panelId = JSONParser.getPanelID(message); WriteTextMessage(stream, mainCommand.ColorPanel(panelId)); WriteTextMessage(stream, mainCommand.ClearPanel(panelId)); - - SendMessageAndOnResponse(stream, mainCommand.MoveTo(panelId, "panelMove", new float[] { 0f, 0f, 0f }, "Z", 1, 5), "panelMove", - (message) => - { - Console.WriteLine(message); - - SendMessageAndOnResponse(stream, mainCommand.bikeSpeed(panelId, "bikeSpeed", 5.0), "bikeSpeed", - (message) => - { - WriteTextMessage(stream, mainCommand.SwapPanel(panelId)); - }); - }); + + showPanel(stream, mainCommand, 5.3, 83, 52, 53); //while (!(speedReplied && moveReplied)) { } @@ -325,6 +319,35 @@ namespace RH_Engine return res; } + + private static void showPanel(NetworkStream stream, Command mainCommand, double bikeSpeed, int bpm, int power, int resistance) + { + SendMessageAndOnResponse(stream, mainCommand.showBikespeed(panelId, "bikeSpeed", bikeSpeed), "bikeSpeed", + (message) => + { + // TODO check if is drawn + }); + SendMessageAndOnResponse(stream, mainCommand.showHeartrate(panelId, "bpm", bpm), "bpm", + (message) => + { + // TODO check if is drawn + }); + SendMessageAndOnResponse(stream, mainCommand.showPower(panelId, "power", power), "power", + (message) => + { + // TODO check if is drawn + }); + SendMessageAndOnResponse(stream, mainCommand.showResistance(panelId, "resistance", resistance), "resistance", + (message) => + { + // TODO check if is drawn + }); + + // Check if every text is drawn! + + WriteTextMessage(stream, mainCommand.SwapPanel(panelId)); + } + private static void SetFollowSpeed(float speed, NetworkStream stream, Command mainCommand) { WriteTextMessage(stream, mainCommand.RouteFollow(routeId, bikeId, speed, new float[] { 0, -(float)Math.PI / 2f, 0 }, new float[] { 0, 0, 0 }));