public void DeInitialize() { if (channel != 0) { MC.SetParam(channel, "TrigMode", "IMMEDIATE"); MC.SetParam(channel, "ChannelState", "IDLE"); MC.Delete(channel); MC.CloseDriver(); } }
private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) { try { Stop_Click(sender, e); // Delete the channel if (channel != 0) { MC.Delete(channel); channel = 0; } } catch (Euresys.MultiCamException exc) { MessageBox.Show(exc.Message, "MultiCam Exception"); } }
public EuresysFrameGrabber() { source = Observable.Create <IplImage>((observer, cancellationToken) => { return(Task.Factory.StartNew(() => { lock (captureLock) { //string camFilePath = CamFile; string camFile = System.IO.Path.GetFileNameWithoutExtension(CamFile); var boardTypology = BoardTypology; global_observer = observer; MC.OpenDriver(); MC.SetParam(MC.BOARD + 0, "BoardTopology", boardTypology.ToString()); MC.Create("CHANNEL", out channel); MC.SetParam(channel, "DriverIndex", 0); MC.SetParam(channel, "Connector", "M"); MC.SetParam(channel, "CamFile", camFile); multiCamCallback = new MC.CALLBACK(multiCamProcessingCallback); MC.RegisterCallback(channel, multiCamCallback, channel); try { MC.SetParam(channel, MC.SignalEnable + MC.SIG_SURFACE_PROCESSING, "ON"); MC.SetParam(channel, "ChannelState", "ACTIVE"); while (!cancellationToken.IsCancellationRequested) { // Do nothing } MC.SetParam(channel, MC.SignalEnable + MC.SIG_SURFACE_PROCESSING, "FREE"); } finally { MC.Delete(channel); MC.CloseDriver(); } } }, cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Default)); }) .PublishReconnectable() .RefCount(); }
private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) { try { Stop_Click(sender, e); // Whait that the channel has finished the last acquisition while (channelactive == true) { Thread.Sleep(10); } // Delete the channel if (channel != 0) { MC.Delete(channel); channel = 0; } } catch (Euresys.MultiCamException exc) { MessageBox.Show(exc.Message, "MultiCam Exception"); } }