VERSION 5.00
Object = "{5D27C99A-26CF-41E4-9EFF-8224CC672CD8}#1.0#0"; "DWCanvas.dll"
Begin VB.Form Form1 
   Caption         =   "Caputure"
   ClientHeight    =   5760
   ClientLeft      =   120
   ClientTop       =   450
   ClientWidth     =   7485
   LinkTopic       =   "Form1"
   ScaleHeight     =   5760
   ScaleWidth      =   7485
   StartUpPosition =   3  'Windows ‚ÌŠù’è’l
   Begin VB.ComboBox cmdImgID 
      Height          =   300
      Left            =   1680
      TabIndex        =   2
      Text            =   "Combo1"
      Top             =   120
      Width           =   1455
   End
   Begin VB.CommandButton cmdChange 
      Caption         =   "Change"
      Height          =   375
      Left            =   3240
      TabIndex        =   1
      Top             =   120
      Width           =   855
   End
   Begin VB.Timer Timer1 
      Interval        =   100
      Left            =   360
      Top             =   4800
   End
   Begin DWCanvasLibCtl.DWImage DWImage1 
      Height          =   4800
      Left            =   240
      OleObjectBlob   =   "Form1.frx":0000
      TabIndex        =   0
      Top             =   600
      Width           =   6405
   End
   Begin VB.Label Label1 
      Caption         =   "Image ID :"
      Height          =   255
      Left            =   840
      TabIndex        =   3
      Top             =   150
      Width           =   855
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Dim g_caoEng As CaoEngine
Dim g_caoCtrl As CaoController
Dim g_caoImg As CaoFile

Dim g_caoImgMax As CaoVariable
Dim g_caoImgExtCam As CaoVariable

Dim g_LastUpdate As Date

' Change Image ID
Private Sub cmdChange_Click()
    g_caoImg.ID = CLng(cmdImgID.Text)
    g_LastUpdate = 0
End Sub

Private Sub Form_Load()
    On Error GoTo ErrorProc
    Dim lCnt As Long
    Dim lImgCount As Long
    Dim vntExtImgCount As Variant
    
    Set g_caoEng = New CaoEngine
    Set g_caoCtrl = g_caoEng.Workspaces(0).AddController("OpenCVPov", "caoProv.OpenCV", "", "")
    Set g_caoImg = g_caoCtrl.AddFile("Img", "ID=1")
    Set g_caoImgMax = g_caoCtrl.AddVariable("@IMG_MAX")
    Set g_caoImgExtCam = g_caoCtrl.AddVariable("@EXT_CAM_COUNT")
    
    g_LastUpdate = 0
    
    ' Count Image ID
    lImgCount = g_caoImgMax.Value
    vntExtImgCount = g_caoImgExtCam.Value

    For lCnt = 0 To UBound(vntExtImgCount)
        lImgCount = lImgCount + vntExtImgCount(lCnt)
    Next
    
    ' Init cmbBox
    cmdImgID.Clear
    For lCnt = 1 To lImgCount
        cmdImgID.AddItem lCnt
    Next
    cmdImgID.ListIndex = 0
    
    Exit Sub
ErrorProc:
    MsgBox "Error:" & Hex(Err.Number)
    Timer1.Enabled = False
    cmdChange.Enabled = False
    
End Sub

Private Sub Timer1_Timer()
    On Error Resume Next
    
    Dim tmp As Date
    
    ' Ext Camera
    If (g_caoImg.ID > g_caoImgMax.Value) Then
        g_caoCtrl.ExtExecSoftTrigger g_caoImg.ID
        g_caoCtrl.ExtRefreshImage g_caoImg.ID
    End If
    
    ' Redraw image
    If Not g_caoImg.IsEmpty Then
        tmp = g_caoImg.DateLastModified
        If (tmp <> g_LastUpdate) Then
            DWImage1.Value = g_caoImg.Value
            g_LastUpdate = tmp
        End If
    End If
    
End Sub
