aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-12-10 12:59:22 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-12-10 12:59:22 +0200
commit6240aad18f5dc54d4e29bf2d39f49ef1ba39742f (patch)
tree8899a6345ec0f2ac105d10536a8b33ecacdaf2da /Software/Visual_Studio/PPC/Tango.PPC.Common/Connection
parentee0f4151c329542c30041ff1da91d25e8d8e2575 (diff)
downloadTango-6240aad18f5dc54d4e29bf2d39f49ef1ba39742f.tar.gz
Tango-6240aad18f5dc54d4e29bf2d39f49ef1ba39742f.zip
Added array support for stubsexec.
Improved PPC update & setup.
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/Connection')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs141
1 files changed, 77 insertions, 64 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 8ca943b8c..09d4ed9f8 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs
@@ -118,70 +118,6 @@ 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"/>.
@@ -262,5 +198,82 @@ namespace Tango.PPC.Common.Connection
await Machine.GetDbContext().SaveChangesAsync();
TangoMessenger.Default.Send(new MachineSettingsSavedMessage() { Machine = Machine });
}
+
+ /// <summary>
+ /// Creates and connects a machine operator with no continuous requests at all.
+ /// </summary>
+ /// <returns></returns>
+ public static async Task<IMachineOperator> CreateMinimalMachineOperator(Action<String> onProgress = null)
+ {
+ LogManager.Default.Log("Creating minimal machine operator...");
+
+ 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);
+
+ onProgress?.Invoke("Scanning for the machine...");
+ 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);
+
+ onProgress?.Invoke("Machine discovered on port: " + response.Adapter.Address);
+ LogManager.Default.Log("Machine discovered on port: " + response.Adapter.Address);
+ LogManager.Default.Log("Device Information:");
+ LogManager.Default.Log(response.Response.DeviceInformation.ToJsonString());
+
+ machineOperator.Adapter = response.Adapter;
+ machineOperator.JobHandlingMode = JobHandlerModes.SettingUp;
+ LogManager.Default.Log("Connecting machine operator...");
+
+ onProgress?.Invoke("Connecting machine operator...");
+ await machineOperator.Connect();
+ }
+ else
+ {
+ LogManager.Default.Log($"Connecting to machine on {settings.EmbeddedComPort}...");
+
+ onProgress?.Invoke($"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!");
+
+ onProgress?.Invoke("Application in demo mode, Starting embedded emulator...");
+
+ 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...");
+ onProgress?.Invoke("Connecting machine operator...");
+ await machineOperator.Connect();
+ }
+
+ return machineOperator;
+ }
}
}