| | |
| | | using System.Drawing; |
| | | using System.IO; |
| | | using System.Linq; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Runtime.InteropServices; |
| | | using System.Text; |
| | | using System.Threading; |
| | |
| | | //imgSet.HImage.GenImage1("int4", (int)width, zoomHeight, zoomPtr); |
| | | imgSet.HImage.GenImage1(IIConfig.ByteNums == GocatorDataByteNums.Byte2 ? "uint2" : "int4", (int)width, zoomHeight, zoomPtr); |
| | | |
| | | imgSet.HImage_2 = imgSet.HImage.Clone(); |
| | | //imgSet.HImage_2 = imgSet.HImage.Clone(); |
| | | //imgSet.HImage_2.GenImage1("uint2", (int)width, zoomHeight, zoomPtr); |
| | | //imgSet.HImage_2.GenImage1("int4", (int)width, zoomHeight, zoomPtr); |
| | | //imgSet.HImage_2.GenImage1(IIConfig.ByteNums == GocatorDataByteNums.Byte2 ? "uint2" : "int4", (int)width, zoomHeight, zoomPtr); |
| | | |
| | | imgSet.HImage_2 = new HImage(); |
| | | imgSet.HImage_2.GenImage1(IIConfig.ByteNums == GocatorDataByteNums.Byte2 ? "uint2" : "int4", (int)width, zoomHeight, zoomPtr); |
| | | |
| | | LaserScanParam para = new LaserScanParam() |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | [MethodImpl(MethodImplOptions.Synchronized)] |
| | | public override IImageSet Snapshot(IOperationConfig config) |
| | | { |
| | | GocatorOperationConfig opConfig = config as GocatorOperationConfig; |
| | |
| | | { |
| | | if (opConfig.IsOpenConnection) |
| | | { |
| | | system.Start(); |
| | | while (sensor.State != GoState.Ready) |
| | | { |
| | | Thread.Sleep(10); |
| | | } |
| | | |
| | | do |
| | | { |
| | | try |
| | | { |
| | | sensor.Start(); |
| | | LogAsync(DateTime.Now, $"传感器状态:{sensor.State.ToString()}", ""); |
| | | if (sensor.State != GoState.Running) |
| | | { |
| | | Thread.Sleep(100); |
| | | } |
| | | else |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogAsync(DateTime.Now, $"开启异常:{ex.GetExceptionMessage()}", ""); |
| | | Thread.Sleep(100); |
| | | } |
| | | } while (true); |
| | | |
| | | LogAsync(DateTime.Now, $"传感器启动成功", ""); |
| | | } |
| | | |
| | | if (!opConfig.IsSnapshotAction) |
| | |
| | | return null; |
| | | } |
| | | |
| | | try |
| | | int reTryTime = 3; |
| | | do |
| | | { |
| | | dataSet = system.ReceiveData(IIConfig.SnapshotTimeout); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogAsync(DateTime.Now, $"{Name}获取图像异常", ex.GetExceptionMessage()); |
| | | return null; |
| | | } |
| | | try |
| | | { |
| | | dataSet = system.ReceiveData(IIConfig.SnapshotTimeout); |
| | | reTryTime = 0; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | reTryTime--; |
| | | LogAsync(DateTime.Now, $"{Name}获取图像异常", ex.GetExceptionMessage()); |
| | | |
| | | if (reTryTime <= 0) |
| | | { |
| | | imgSet.HImage = null; |
| | | dataSet = null; |
| | | system.ClearData(); |
| | | } |
| | | } |
| | | } while (reTryTime > 0); |
| | | } |
| | | |
| | | if (!IIConfig.IsAsyncMode) |
| | | { |
| | | if (!opConfig.IsOpenConnection) |
| | | { |
| | | system.Stop(); |
| | | while (sensor.State == GoState.Busy) |
| | | { |
| | | Thread.Sleep(100); |
| | | } |
| | | |
| | | do |
| | | { |
| | | try |
| | | { |
| | | sensor.Stop(); |
| | | |
| | | LogAsync(DateTime.Now, $"传感器状态:{sensor.State.ToString()}", ""); |
| | | if (sensor.State != GoState.Ready) |
| | | { |
| | | Thread.Sleep(100); |
| | | } |
| | | else |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogAsync(DateTime.Now, $"关闭异常:{ex.GetExceptionMessage()}", ""); |
| | | Thread.Sleep(100); |
| | | } |
| | | } while (true); |
| | | |
| | | sensor.Flush(); |
| | | LogAsync(DateTime.Now, $"传感器关闭成功", ""); |
| | | } |
| | | } |
| | | |
| | | HandleGoData(dataSet, imgSet); |
| | | |
| | | dataSet.Dispose(); |
| | | |
| | | if (imgSet.HImage == null) |
| | | if (dataSet != null) |
| | | { |
| | | LogAsync(DateTime.Now, $"{Name}未能获取HImage图像", ""); |
| | | HandleGoData(dataSet, imgSet); |
| | | |
| | | dataSet.Dispose(); |
| | | |
| | | if (imgSet.HImage == null) |
| | | { |
| | | LogAsync(DateTime.Now, $"{Name}未能获取HImage图像", ""); |
| | | } |
| | | } |
| | | |
| | | return imgSet; |
| | |
| | | { |
| | | base.Start(); |
| | | |
| | | if (IIConfig.IsAsyncMode) |
| | | if (sensor.State != GoState.Ready) |
| | | { |
| | | system.Start(); |
| | | } |
| | | |
| | | if (IIConfig.IsAsyncMode) |
| | | { |
| | | sensor.Start(); |
| | | } |
| | | else |
| | | { |
| | | //if (sensor.State == GoState.Ready) |
| | | { |
| | | sensor.Stop(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | protected override void Stop() |