Esempio n. 1
0
 public void DeInitialize()
 {
     if (channel != 0)
     {
         MC.SetParam(channel, "TrigMode", "IMMEDIATE");
         MC.SetParam(channel, "ChannelState", "IDLE");
         MC.Delete(channel);
         MC.CloseDriver();
     }
 }
Esempio n. 2
0
 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");
     }
 }
Esempio n. 3
0
 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();
 }
Esempio n. 4
0
        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");
            }
        }