public override ARESULT Initialize(Dictionary <string, object> arguments) { device = arguments["device"] as IDevice; // 读取配置信息 if (!device.Read(ReadMode.IrCameraParameters, null, out object outData, out _)) { return(ARESULT.E_INVALIDARG); } // 创建资源 Repository.Entities.Configuration.IrCameraParameters irCameraParameters = outData as Repository.Entities.Configuration.IrCameraParameters; temperature = PinnedBuffer <float> .Alloc(irCameraParameters.temperatureWidth *irCameraParameters.temperatureHeight); irImage = PinnedBuffer <byte> .Alloc(irCameraParameters.width *irCameraParameters.height * 3 / 2); tempertureDuration = 1000 / irCameraParameters.temperatureFrameRate; // 读取配置信息 if (!device.Read(ReadMode.CameraParameters, null, out outData, out _)) { return(ARESULT.E_INVALIDARG); } // 创建资源 Repository.Entities.Configuration.CameraParameters cameraParameters = outData as Repository.Entities.Configuration.CameraParameters; image = PinnedBuffer <byte> .Alloc(cameraParameters.width *cameraParameters.height * 3 / 2); videoDuration = 1000 / cameraParameters.videoFrameRate; return(base.Initialize(arguments)); }
public override ARESULT Initialize(Dictionary <string, object> arguments) { service = arguments["service"] as CellService; device = arguments["device"] as IDevice; // 读取配置信息 if (!device.Read(ReadMode.IrCameraParameters, null, out object outData, out _)) { return(ARESULT.E_INVALIDARG); } irCameraParameters = outData as Repository.Entities.Configuration.IrCameraParameters; tempertureDuration = 1000 / irCameraParameters.temperatureFrameRate; // 声明事件处理函数 onReceiveTemperature = (arguments) => { if (arguments[0] == device) { temperature = Arrays.Clone(arguments[1] as float[], temperature); } }; onReceiveImage = (arguments) => { if (arguments[0] == device) { image = Arrays.Clone(arguments[1] as byte[], image); } }; return(base.Initialize(arguments)); }