aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-12-06 15:48:47 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-12-06 15:48:47 +0200
commite47f736bca350350a55fa287093dad560da8f678 (patch)
treee74e726fd90cb6e791ecb5872010cb6eb61a13c8 /Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
parent1eb3962e5923cbb398c5ebad505e69f4617f963f (diff)
downloadTango-e47f736bca350350a55fa287093dad560da8f678.tar.gz
Tango-e47f736bca350350a55fa287093dad560da8f678.zip
Working on PPC firmware upgrade !!!
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs64
1 files changed, 64 insertions, 0 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
index 5b85aab52..8ca943b8c 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
@@ -118,6 +118,70 @@ namespace Tango.PPC.Common.Connection
}
}
+ public static async Task<IMachineOperator> CreateMinimalMachineOperator()
+ {
+ var machineOperator = new MachineOperator();
+ machineOperator.EnableDiagnostics = false;
+ machineOperator.EnableEmbeddedDebugging = false;
+ machineOperator.EnableEventsNotification = false;
+ machineOperator.EnableJobResume = false;
+
+ LogManager.Default.Log("Starting machine connection procedure...");
+
+ var settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
+
+ var demo = settings.DemoMode;
+
+ if (!demo)
+ {
+ if (String.IsNullOrWhiteSpace(settings.EmbeddedComPort))
+ {
+ TimeSpan timeout = TimeSpan.FromSeconds(SettingsManager.Default.GetOrCreate<PPCSettings>().MachineScanningTimeoutSeconds);
+
+ LogManager.Default.Log("Scanning for machine on available serial ports...");
+ Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse> scanner = new Transport.Discovery.UsbCommunicationScanner<ConnectRequest, ConnectResponse>(UsbSerialBaudRates.BR_115200);
+ var response = await scanner.Scan(new ConnectRequest() { Password = "1234" }, timeout);
+
+ LogManager.Default.Log("Machine discovered on port: " + response.Adapter.Address);
+ LogManager.Default.Log("Device Information:");
+ LogManager.Default.Log(response.Response.DeviceInformation.ToJsonString());
+
+ LogManager.Default.Log("Disconnecting machine operator...");
+ machineOperator.Adapter = response.Adapter;
+ machineOperator.JobHandlingMode = JobHandlerModes.SettingUp;
+ LogManager.Default.Log("Connecting machine operator...");
+ await machineOperator.Connect();
+ }
+ else
+ {
+ LogManager.Default.Log($"Connecting to machine on {settings.EmbeddedComPort}...");
+
+ UsbTransportAdapter adapter = new UsbTransportAdapter(settings.EmbeddedComPort, UsbSerialBaudRates.BR_115200);
+ machineOperator.Adapter = adapter;
+ machineOperator.JobHandlingMode = JobHandlerModes.SettingUp;
+ await machineOperator.Connect();
+ }
+ }
+ else
+ {
+ LogManager.Default.Log("Application in demo mode!");
+
+ LogManager.Default.Log("Starting embedded emulator...");
+ MachineEmulator emulator = new MachineEmulator(new BasicTransporter(new MemoryTransportAdapter("emulator")));
+ await emulator.Start();
+
+ LogManager.Default.Log("Emulator started. Connecting to emulator...");
+
+ MemoryTransportAdapter adapter = new MemoryTransportAdapter("emulator");
+ machineOperator.Adapter = adapter;
+ machineOperator.JobHandlingMode = JobHandlerModes.SettingUp;
+ LogManager.Default.Log("Connecting machine operator...");
+ await machineOperator.Connect();
+ }
+
+ return machineOperator;
+ }
+
/// <summary>
/// Tries to connect to the machine by scanning all available serial ports.
/// The timeout for a scan cycle is specified on <see cref="PPCSettings.MachineScanningTimeoutSeconds"/>.