From 6240aad18f5dc54d4e29bf2d39f49ef1ba39742f Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 10 Dec 2018 12:59:22 +0200 Subject: Added array support for stubsexec. Improved PPC update & setup. --- .../Connection/DefaultMachineProvider.cs | 141 +++++++++++---------- 1 file changed, 77 insertions(+), 64 deletions(-) (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/Connection') 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 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(); - - var demo = settings.DemoMode; - - if (!demo) - { - if (String.IsNullOrWhiteSpace(settings.EmbeddedComPort)) - { - TimeSpan timeout = TimeSpan.FromSeconds(SettingsManager.Default.GetOrCreate().MachineScanningTimeoutSeconds); - - LogManager.Default.Log("Scanning for machine on available serial ports..."); - Transport.Discovery.UsbCommunicationScanner scanner = new Transport.Discovery.UsbCommunicationScanner(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; - } - /// /// Tries to connect to the machine by scanning all available serial ports. /// The timeout for a scan cycle is specified on . @@ -262,5 +198,82 @@ namespace Tango.PPC.Common.Connection await Machine.GetDbContext().SaveChangesAsync(); TangoMessenger.Default.Send(new MachineSettingsSavedMessage() { Machine = Machine }); } + + /// + /// Creates and connects a machine operator with no continuous requests at all. + /// + /// + public static async Task CreateMinimalMachineOperator(Action 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(); + + var demo = settings.DemoMode; + + if (!demo) + { + if (String.IsNullOrWhiteSpace(settings.EmbeddedComPort)) + { + TimeSpan timeout = TimeSpan.FromSeconds(SettingsManager.Default.GetOrCreate().MachineScanningTimeoutSeconds); + + onProgress?.Invoke("Scanning for the machine..."); + LogManager.Default.Log("Scanning for machine on available serial ports..."); + Transport.Discovery.UsbCommunicationScanner scanner = new Transport.Discovery.UsbCommunicationScanner(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; + } } } -- cgit v1.3.1