aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Integration/ExternalBridge
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-07-31 15:45:54 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-07-31 15:45:54 +0300
commite514b66b261c24257b149ecc6aaa52195509a2b5 (patch)
treeae889a11eb88c36e3b70ebe8d83b7e60bc80408b /Software/Visual_Studio/Tango.Integration/ExternalBridge
parenta56427605302770b4c0a71a5ff4da439300a2250 (diff)
downloadTango-e514b66b261c24257b149ecc6aaa52195509a2b5.tar.gz
Tango-e514b66b261c24257b149ecc6aaa52195509a2b5.zip
Working on external bridge.
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/ExternalBridge')
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs47
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs7
2 files changed, 34 insertions, 20 deletions
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs
index e17a8eb71..99d841dd6 100644
--- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs
+++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs
@@ -387,35 +387,44 @@ namespace Tango.Integration.ExternalBridge
protected async virtual void OnExternalBridgeLoginRequest(MessageContainer container)
{
+
var request = MessageFactory.ParseTangoMessageFromContainer<ExternalBridgeLoginRequest>(container);
- LogManager.Log(String.Format("External bridge login attempt:{0}{1}", Environment.NewLine, request.ToJsonString()));
+ LogManager.Log(String.Format("External bridge login attempt:{0}{1}", Environment.NewLine, request.Message.ToJsonString()));
- ExternalBridgeClientConnectedEventArgs args = new ExternalBridgeClientConnectedEventArgs();
- args.Request = request;
- args.IpAddress = Adapter.Address;
- ConnectionRequest?.Invoke(this, args);
+ if (MachineOperator.Status != MachineStatuses.Printing || request.Message.Intent != ExternalBridgeLoginIntent.Override)
+ {
+ ExternalBridgeClientConnectedEventArgs args = new ExternalBridgeClientConnectedEventArgs();
+ args.Request = request;
+ args.IpAddress = Adapter.Address;
+ ConnectionRequest?.Invoke(this, args);
- var response = new ExternalBridgeLoginResponse();
- response.Authenticated = args.Confirmed;
- response.SerialNumber = Machine.SerialNumber;
- response.DeviceInformation = MachineOperator.DeviceInformation;
+ var response = new ExternalBridgeLoginResponse();
+ response.Authenticated = args.Confirmed;
+ response.SerialNumber = Machine.SerialNumber;
+ response.DeviceInformation = MachineOperator.DeviceInformation;
- IsInSession = args.Confirmed;
+ IsInSession = args.Confirmed;
- if (IsInSession)
- {
- LogManager.Log("External bridge client has logged-in successfully.");
- MachineOperator.EnableDiagnostics = false;
- MachineOperator.EnableEmbeddedDebugging = false;
- SessionIntent = request.Message.Intent;
+ if (IsInSession)
+ {
+ LogManager.Log("External bridge client has logged-in successfully.");
+ MachineOperator.EnableDiagnostics = false;
+ MachineOperator.EnableEmbeddedDebugging = false;
+ SessionIntent = request.Message.Intent;
+ }
+ else
+ {
+ LogManager.Log("External bridge client login failed, invalid password.");
+ }
+
+ await SendResponse<ExternalBridgeLoginResponse>(response, container.Token);
}
else
{
- LogManager.Log("External bridge client login failed.");
+ LogManager.Log("External bridge client login failed because the machine is currently printing.");
+ await SendResponse<ExternalBridgeLoginResponse>(new ExternalBridgeLoginResponse(), container.Token, false, ErrorCode.GeneralError, "Machine connection override is not permitted while printing.");
}
-
- await SendResponse<ExternalBridgeLoginResponse>(response, container.Token);
}
#endregion
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs
index a704d30d1..9492386ed 100644
--- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs
+++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs
@@ -100,7 +100,12 @@ namespace Tango.Integration.ExternalBridge
catch (Exception ex)
{
LogRequestFailed(login, ex);
- await base.Disconnect();
+ try
+ {
+ await Adapter.Disconnect();
+ }
+ catch { }
+
throw ex;
}