diff --git a/ClientApp/Utils/Client.cs b/ClientApp/Utils/Client.cs
index 8dd0ad1..2650e15 100644
--- a/ClientApp/Utils/Client.cs
+++ b/ClientApp/Utils/Client.cs
@@ -212,7 +212,7 @@ namespace ClientApp.Utils
if (engineConnection.Connected && engineConnection.FollowingRoute)
{
engineConnection.BikeBPM = bytes[1];
- engineConnection.UpdateInfoPanel();
+
}
@@ -225,6 +225,7 @@ namespace ClientApp.Utils
/// the message
public void Bike(byte[] bytes)
{
+
if (!sessionRunning)
{
return;
@@ -234,18 +235,19 @@ namespace ClientApp.Utils
throw new ArgumentNullException("no bytes");
}
byte[] message = DataParser.GetRawDataMessage(bytes);
+ bool canSendToEngine = engineConnection.Connected && engineConnection.FollowingRoute;
switch (bytes[0])
{
+
case 0x10:
- engineConnection.BikeSpeed = (bytes[4] | (bytes[5] << 8)) * 0.01f;
+ if (canSendToEngine) engineConnection.BikeSpeed = (bytes[4] | (bytes[5] << 8)) * 0.01f;
break;
case 0x19:
- engineConnection.BikePower = (bytes[5]) | (bytes[6] & 0b00001111) << 8;
+ if (canSendToEngine) engineConnection.BikePower = (bytes[5]) | (bytes[6] & 0b00001111) << 8;
break;
}
- if (engineConnection.Connected && engineConnection.FollowingRoute)
- engineConnection.UpdateInfoPanel();
+
this.stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWrite), null);
}
diff --git a/ClientApp/Utils/EngineConnection.cs b/ClientApp/Utils/EngineConnection.cs
index a4dd657..bc7781f 100644
--- a/ClientApp/Utils/EngineConnection.cs
+++ b/ClientApp/Utils/EngineConnection.cs
@@ -14,6 +14,7 @@ namespace ClientApp.Utils
{
private static EngineConnection instance = null;
private static readonly object padlock = new object();
+ private static System.Timers.Timer updateTimer;
public HandleNoTunnelId OnNoTunnelId;
public OnSuccessfullConnection OnSuccessFullConnection;
@@ -57,6 +58,15 @@ namespace ClientApp.Utils
BikePower = 0;
BikeBPM = 0;
BikeResistance = 50;
+ updateTimer = new System.Timers.Timer(1000);
+ updateTimer.Elapsed += UpdateTimer_Elapsed;
+ updateTimer.AutoReset = true;
+ updateTimer.Enabled = false;
+ }
+
+ private void UpdateTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
+ {
+ UpdateInfoPanel();
}
///
@@ -165,6 +175,7 @@ namespace ClientApp.Utils
public void initScene()
{
+
Write("initializing scene...");
mainCommand = new Command(tunnelId);
@@ -180,9 +191,6 @@ namespace ClientApp.Utils
string headId = JSONParser.GetIdSceneInfoChild(message, "Head");
string handLeftId = JSONParser.GetIdSceneInfoChild(message, "LeftHand");
string handRightId = JSONParser.GetIdSceneInfoChild(message, "RightHand");
-
- //Force(stream, mainCommand.DeleteNode(handLeftId, "deleteHandL"), "deleteHandL", (message) => Console.WriteLine("Left hand deleted"));
- //Force(stream, mainCommand.DeleteNode(handRightId, "deleteHandR"), "deleteHandR", (message) => Console.WriteLine("Right hand deleted"));
});
// add the route and set the route id
SendMessageAndOnResponse(mainCommand.RouteCommand("routeID"), "routeID", (message) => routeId = JSONParser.GetResponseUuid(message));
@@ -205,6 +213,7 @@ namespace ClientApp.Utils
WriteTextMessage(mainCommand.ColorPanel(panelId));
UpdateInfoPanel();
+ updateTimer.Enabled = true;
while (cameraId == string.Empty) { }
SetFollowSpeed(5.0f);