コード例 #1
0
ファイル: MainForm.cs プロジェクト: tsnewer/COVID19_Detection
        public void StartWaitForFrame(TUCAM_OPEN openCam)
        {
            //if (m_bWaitting)
            //    return;

            m_bWaitting = true;

            if ((IntPtr)0 == m_hThdWaitForFrame)
            {
                m_drawframe.pBuffer     = IntPtr.Zero;
                m_drawframe.ucFormatGet = (byte)TUFRM_FORMATS.TUFRM_FMT_RGB888;
                m_drawframe.uiRsdSize   = 1;                                                                                    // how many frames do you want

                int nValue = 0;
                if ((int)TUCAM_CAPTURE_MODES.TUCCM_SEQUENCE != m_nTriMode)
                {
                    nValue           = (int)TUCamera.TUCAM_Cap_GetTrigger(openCam.hIdxTUCam, ref attrTgr);
                    attrTgr.nTgrMode = m_nTriMode;
                    attrTgr.nFrames  = -1;                                                                                      // how many frames do you want to capture to RAM(the frames less than 0, use maximum frames )
                    nValue           = (int)TUCamera.TUCAM_Cap_SetTrigger(openCam.hIdxTUCam, attrTgr);
                }
                else
                {
                    nValue           = (int)TUCamera.TUCAM_Cap_GetTrigger(openCam.hIdxTUCam, ref attrTgr);
                    attrTgr.nTgrMode = (int)TUCAM_CAPTURE_MODES.TUCCM_SEQUENCE;
                    attrTgr.nFrames  = 1;                                                                                       // TUCCM_SEQUENCE must set 1 frame
                    nValue           = (int)TUCamera.TUCAM_Cap_SetTrigger(openCam.hIdxTUCam, attrTgr);
                }

                TUCamera.TUCAM_Buf_Alloc(openCam.hIdxTUCam, ref m_drawframe);                                                   // Alloc buffer after set resolution or set ROI attribute
                TUCamera.TUCAM_Cap_Start(openCam.hIdxTUCam, (uint)attrTgr.nTgrMode);                                            // Start capture

                m_dwFrmCnt = 0;                                                                                                 // reset frame count
                //m_dwSTm = TUCamera.GetTickCount();                                                                              // reset start tick count

                m_hThdWaitForFrame = TUCamera.CreateEvent(HANDLE.Zero, false, true, string.Empty);

//WaitForFrameThread.Start();
            }

            //EnableControl(m_bWaitting);
            //EnableTriggerControl(!m_bWaitting);
        }