private void DeviceManager_PhotoCaptured(object sender, CameraControl.Devices.Classes.PhotoCapturedEventArgs eventArgs)
        {
            //var randomName = Path.GetRandomFileName() + Path.GetExtension(eventArgs.FileName);
            //string tempFile = Path.Combine(Settings.Instance.TempFolder, randomName);

            //try
            //{
            //    TransferInProgress = true;
            //    Utils.CreateFolder(tempFile);

            //    Log.Debug("Transfer started");
            //    eventArgs.CameraDevice.TransferFile(eventArgs.Handle, tempFile);
            //    Log.Debug("Transfer finished " + tempFile);

            //    Utils.WaitForFile(tempFile);

            //    eventArgs.CameraDevice.DeleteObject(new DeviceObject() { Handle = eventArgs.Handle });
            //    eventArgs.CameraDevice.ReleaseResurce(eventArgs.Handle);

            //    Log.Debug("Transfer prodedure finished ");
            //    if (eventArgs.CameraDevice != null)
            //    {
            //        eventArgs.CameraDevice.IsBusy = false;
            //        eventArgs.CameraDevice.TransferProgress = 0;
            //    }
            //}
            //catch (Exception ex)
            //{
            //    Log.Error("Error transfer file", ex);
            //}
            //TransferInProgress = false;
        }
 static void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     Thread thread = new Thread(PhotoCaptured);
     thread.SetApartmentState(ApartmentState.STA);
     thread.Start(eventArgs);
     //thread.Join();
 }
 private void DeviceManager_PhotoCaptured(object sender, CameraControl.Devices.Classes.PhotoCapturedEventArgs eventArgs)
 {
     if (eventArgs != null)
     {
         this.PhotoCaptured(eventArgs);
     }
 }
Example #4
0
 private void StillImageDevice_DeviceEvent(object sender, PortableDeviceEventArgs e)
 {
     if (e.EventType.EventGuid == PortableDeviceGuids.WPD_EVENT_OBJECT_ADDED)
     {
         var id = e.EventType.DeviceObject.ID;
         PhotoCapturedEventArgs args = new PhotoCapturedEventArgs
         {
             WiaImageItem = null,
             CameraDevice = this,
             FileName = e.EventType.DeviceObject.Name,
             Handle = e.EventType.DeviceObject.ID
         };
         OnPhotoCapture(this, args);
     }
 }
 private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
 }
 private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     //if (!IsDisabled)
     //  _timer.Start();
 }
        private void getEvent()
        {
            try
            {
                if (_eventIsbusy)
                    return;
                _eventIsbusy = true;
                //DeviceReady();
                MTPDataResponse response = ExecuteReadDataEx(CONST_CMD_CANON_EOS_GetEvent);

                if (response.Data == null)
                {
                    Log.Debug("Get event error :" + response.ErrorCode.ToString("X"));
                    return;
                }
                int eventCount = BitConverter.ToInt16(response.Data, 0);
                Log.Debug("Number of events " + eventCount);
                if (eventCount > 0)
                {
                    Console.WriteLine("Event queue length " + eventCount);
                    for (int i = 0; i < eventCount; i++)
                    {
                        try
                        {
                            uint eventCode = BitConverter.ToUInt16(response.Data, 6 * i + 2);
                            ushort eventParam = BitConverter.ToUInt16(response.Data, 6 * i + 4);
                            int longeventParam = BitConverter.ToInt32(response.Data, 6 * i + 4);
                            switch (eventCode)
                            {
                                case CONST_Event_CANON_EOS_PropValueChanged:
                                    Log.Debug("EOS property changed " + eventParam.ToString("X"));
                                    //ReadDeviceProperties(eventParam);
                                    break;
                                case CONST_Event_CANON_EOS_ObjectAddedEx:
                                case CONST_Event_ObjectAddedInSdram:
                                case CONST_Event_ObjectAdded:
                                    {
                                        try
                                        {
                                            MTPDataResponse objectdata = ExecuteReadDataEx(CONST_CMD_CANON_EOS_GetObjectInfo, (uint)longeventParam);
                                            string filename = "DSC_0000.JPG";
                                            if (objectdata.Data != null)
                                            {
                                                filename = Encoding.Unicode.GetString(objectdata.Data, 53, 12 * 2);
                                                if (filename.Contains("\0"))
                                                    filename = filename.Split('\0')[0];
                                            }
                                            else
                                            {
                                                Log.Error("Error getting file name");
                                            }
                                            Log.Debug("File transfer " + filename);
                                            PhotoCapturedEventArgs args = new PhotoCapturedEventArgs
                                            {
                                                WiaImageItem = null,
                                                EventArgs =
                                                  new PortableDeviceEventArgs(new PortableDeviceEventType()
                                                  {
                                                      ObjectHandle =
                                                        (uint)longeventParam
                                                  }),
                                                CameraDevice = this,
                                                FileName = filename,
                                                Handle = (uint)longeventParam
                                            };
                                            OnPhotoCapture(this, args);
                                        }
                                        catch (Exception exception)
                                        {
                                            Log.Error("Object added error", exception);
                                        }
                                    }
                                    break;
                                //case CONST_Event_CaptureComplete:
                                //case CONST_Event_CaptureCompleteRecInSdram:
                                //    {
                                //        OnCaptureCompleted(this, new EventArgs());
                                //    }
                                //    break;
                                //case CONST_Event_ObsoleteEvent:
                                //    break;
                                default:
                                    //Console.WriteLine("Unknown event code " + eventCode.ToString("X"));
                                    Log.Debug("Unknown event code :" + eventCode.ToString("X") + "|" +
                                              longeventParam.ToString("X"));
                                    break;
                            }
                        }
                        catch (Exception exception)
                        {
                            Log.Error("Event queue processing error ", exception);
                        }
                    }
                }
            }
            catch (InvalidComObjectException)
            {
                return;
            }
            catch (Exception)
            {
                //Log.Error("Event exception ", exception);
            }
            _eventIsbusy = false;
            _timer.Start();
        }
Example #8
0
        void Protocol_DataReceiverd(object sender, string data)
        {
            try
            {
                if (data.Contains("msg_id"))
                {
                    dynamic resp = JsonConvert.DeserializeObject(data);
                    switch ((string)resp.msg_id)
                    {
                        case "3": // allproperties
                            CurrentValues.Clear();
                            foreach (JObject o in resp.param)
                            {
                                var k = o.ToObject<Dictionary<string, string>>();
                                CurrentValues.Add(k.First().Key, k.First().Value);
                            }
                            break;
                        case "7":
                            switch ((string)resp.type)
                            {
                                case "burst_complete":
                                case "photo_taken":
                                    string filename = Path.GetFileName(((string)resp.param).Replace('/', '\\'));
                                        PhotoCapturedEventArgs args = new PhotoCapturedEventArgs
                                                                          {
                                                                              WiaImageItem = null,
                                                                              EventArgs =new PortableDeviceEventArgs(),
                                                                              CameraDevice = this,
                                                                              FileName = filename,
                                                                              Handle = filename
                                                                          };
                                        OnPhotoCapture(this, args);
                                    break;
                                default:
                                    SetProperty((string)resp.type, (string)resp.param);
                                    break;
                            }
                            break;
                        case "9":
                            SetValues(data);
                            break;
                    }
                    _lastData = data;
                    if (data.Contains("listing"))
                        _listingEvent.Set();
                }
            }
            catch (Exception)
            {

            }
            _resetEvent.Set();
        }
 private void DeviceManager_OnEvent(string eventId, string deviceId, string itemId)
 {
     Item tem = Device.GetItem(itemId);
     ImageFile imageFile = (ImageFile) tem.Transfer("{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}");
     PhotoCapturedEventArgs args = new PhotoCapturedEventArgs
                                       {
                                           EventArgs = imageFile,
                                           CameraDevice = this,
                                           FileName = "00000." + imageFile.FileExtension,
                                           Handle = imageFile
                                       };
     OnPhotoCapture(this, args);
     OnCaptureCompleted(this, new EventArgs());
 }
 public void OnPhotoCapture(object sender, PhotoCapturedEventArgs args)
 {
     if (PhotoCaptured != null)
     {
         PhotoCaptured(sender, args);
     }
 }
Example #11
0
 void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     // to prevent UI freeze start the transfer process in a new thread
     Thread thread = new Thread(PhotoCaptured);
     thread.Start(eventArgs);
 }
 private void CameraDevicePhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     _detector.Reset();
     _photoCapturedTime = DateTime.Now;
     if (PhotoCount <= PhotoNo && IsFocusStackingRunning)
     {
         var threadPhoto = new Thread(TakePhoto);
         threadPhoto.Start();
     }
     else
     {
         IsFocusStackingRunning = false;
         _timer.Start();
         StartLiveView();
     }
 }
 private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     PhotoCaptured(eventArgs);
     //Thread thread = new Thread(PhotoCaptured);
     //thread.Start(eventArgs);
 }
 private void CameraDevicePhotoCaptured(object sender, PhotoCapturedEventArgs eventargs)
 {
     _photoCapturedTime = DateTime.Now;
     StartLiveView();
 }
        private void Camera_PictureTaken(object sender, EosImageEventArgs e)
        {
            try
            {
                Log.Debug("Picture taken event received type" + e.GetType().ToString());
                PhotoCapturedEventArgs args = new PhotoCapturedEventArgs
                                                  {
                                                      WiaImageItem = null,
                                                      //EventArgs =
                                                      //  new PortableDeviceEventArgs(new PortableDeviceEventType()
                                                      //  {
                                                      //      ObjectHandle =
                                                      //        (uint)longeventParam
                                                      //  }),
                                                      CameraDevice = this,
                                                      FileName = "IMG0000.jpg",
                                                      Handle = e
                                                  };

                EosFileImageEventArgs file = e as EosFileImageEventArgs;
                if (file != null)
                {
                    args.FileName = Path.GetFileName(file.ImageFilePath);
                }
                EosMemoryImageEventArgs memory = e as EosMemoryImageEventArgs;
                if (memory != null)
                {
                    if (!string.IsNullOrEmpty(memory.FileName))
                        args.FileName = Path.GetFileName(memory.FileName);
                }
                OnPhotoCapture(this, args);
                OnCaptureCompleted(this, new EventArgs());
            }
            catch (Exception exception)
            {
                Log.Error("EOS Picture taken event error", exception);
            }
        }
 private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     Dispatcher.Invoke(new Action(delegate
                                      {
                                          Activate();
                                          Focus();
                                          txt_barcode.Focus();
                                          txt_barcode.SelectAll();
                                      }));
 }
 private void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     if (ServiceProvider.Settings.UseParallelTransfer)
     {
         PhotoCaptured(eventArgs);
     }
     else
     {
         lock (_locker)
         {
             PhotoCaptured(eventArgs);
         }
     }
 }
 private void CameraDevicePhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     _detector.Reset();
     _photoCapturedTime = DateTime.Now;
     if (IsFocusStackingRunning)
     {
         _focusStackingTimer.Start();
     }
     _timer.Start();
     StartLiveView();
 }
 private void cameraDevice_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     if (PhotoCaptured != null)
         PhotoCaptured(sender, eventArgs);
 }
        private void PhotoCaptured(PhotoCapturedEventArgs eventArgs)
        {
            if (eventArgs == null)
            {
                throw new ArgumentNullException("eventArgs");
            }

            Debug.Assert(eventArgs.CameraDevice != null, "PhotoCaptured: eventArgs.CameraDevice == null");

            ICameraDevice cameraDev = eventArgs.CameraDevice;
            try
            {
                cameraDev.IsBusy = true;
                CameraProperty property = ServiceProvider.Settings.CameraProperties.Get(cameraDev);
                PhotoSession session = (PhotoSession)cameraDev.AttachedPhotoSession ??
                                       ServiceProvider.Settings.DefaultSession;

                if ((property.NoDownload && !eventArgs.CameraDevice.CaptureInSdRam))
                {
                    cameraDev.IsBusy = false;
                    return;
                }

                string fileName = GetTempFilePathWithExtension(".jpg");
                DateTime testTime = DateTime.Now;
                Debug.WriteLine("Pre transfer: {0}:{1}:{2}:{3}", testTime.Hour, testTime.Minute, testTime.Second, testTime.Millisecond);
                cameraDev.TransferFile(eventArgs.Handle, fileName);
                testTime = DateTime.Now;
                Debug.WriteLine("Post transfer: {0}:{1}:{2}:{3}", testTime.Hour, testTime.Minute, testTime.Second, testTime.Millisecond);

                if (this.DeleteFromDevice)
                {
                    try
                    {
                        AsyncObservableCollection<DeviceObject> devObjs = cameraDev.GetObjects(eventArgs.Handle);
                        if (devObjs.Count == 1)
                        {
                            Debug.WriteLine("delete {0}", devObjs[0].FileName);
                            //cameraDev.DeleteObject(devObjs[0]);
                        }
                    }
                    catch (NotImplementedException) { }
                }
                this.lastImageFile = fileName;
                this.imageCaptured = true;
                cameraDev.IsBusy = false;
                Debug.WriteLine("Captured image at {0} to {1}{2}", DateTime.Now.ToLongTimeString(), fileName, Environment.NewLine);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("PhotoCaptured exception: {0}", ex);
                eventArgs.CameraDevice.IsBusy = false;
            }
        }
 private void CameraDevice_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
 {
     if (AutomaticGuiding && PhdType > 0)
     {
         var thread = new Thread(() => PhdGuiding(PhdType));
         thread.Start();
     }
 }
        private static void DeviceManager_PhotoCaptured(object sender, PhotoCapturedEventArgs eventArgs)
        {
            if (eventArgs == null)
                return;
            try
            {
                string fileName = Path.GetTempFileName();
                eventArgs.CameraDevice.TransferFile(eventArgs.Handle, fileName);


                eventArgs.CameraDevice.IsBusy = false;

                // delete the old file
                if (string.IsNullOrEmpty(latestPicturePath) && File.Exists(latestPicturePath))
                {
                    File.Delete(latestPicturePath);
                }

                latestPicturePath = fileName;

                if (!File.Exists(fileName))
                {
                    throw CreateFaultException(string.Format("File {0} does not exist after transfer", fileName));
                }
            }
            catch (Exception exception)
            {
                eventArgs.CameraDevice.IsBusy = false;
                throw CreateFaultException(exception.Message);
                //MessageBox.Show( "Error download photo from camera :\n" + exception.Message );
            }
            finally
            {
                //ServiceProvider.DeviceManager.PhotoCaptured -= DeviceManager_PhotoCaptured;
                _autoEvent.Set();
            }
        }