frmMain.frm
上传用户:fuyouda
上传日期:2015-08-19
资源大小:6876k
文件大小:13k
源码类别:

家庭/个人应用

开发平台:

Visual C++

  1. VERSION 5.00
  2. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  4. Begin VB.Form frmMain 
  5.    Caption         =   "OPC DA Client Demo by VB(Agilewill software co.ltd)"
  6.    ClientHeight    =   6105
  7.    ClientLeft      =   165
  8.    ClientTop       =   450
  9.    ClientWidth     =   9915
  10.    Icon            =   "frmMain.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    ScaleHeight     =   6105
  13.    ScaleWidth      =   9915
  14.    StartUpPosition =   2  'CenterScreen
  15.    Begin MSComctlLib.ListView lvListView 
  16.       Height          =   2055
  17.       Left            =   120
  18.       TabIndex        =   1
  19.       Top             =   360
  20.       Width           =   1455
  21.       _ExtentX        =   2566
  22.       _ExtentY        =   3625
  23.       View            =   3
  24.       LabelEdit       =   1
  25.       LabelWrap       =   -1  'True
  26.       HideSelection   =   -1  'True
  27.       FullRowSelect   =   -1  'True
  28.       HotTracking     =   -1  'True
  29.       _Version        =   393217
  30.       ForeColor       =   -2147483640
  31.       BackColor       =   -2147483643
  32.       BorderStyle     =   1
  33.       Appearance      =   1
  34.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  35.          Name            =   "MS Sans Serif"
  36.          Size            =   8.25
  37.          Charset         =   0
  38.          Weight          =   400
  39.          Underline       =   0   'False
  40.          Italic          =   0   'False
  41.          Strikethrough   =   0   'False
  42.       EndProperty
  43.       NumItems        =   5
  44.       BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  45.          Text            =   "Name"
  46.          Object.Width           =   3881
  47.       EndProperty
  48.       BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  49.          SubItemIndex    =   1
  50.          Text            =   "Value"
  51.          Object.Width           =   3351
  52.       EndProperty
  53.       BeginProperty ColumnHeader(3) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  54.          SubItemIndex    =   2
  55.          Text            =   "Quality"
  56.          Object.Width           =   3351
  57.       EndProperty
  58.       BeginProperty ColumnHeader(4) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  59.          SubItemIndex    =   3
  60.          Text            =   "TimeStamp"
  61.          Object.Width           =   3351
  62.       EndProperty
  63.       BeginProperty ColumnHeader(5) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  64.          SubItemIndex    =   4
  65.          Object.Width           =   2540
  66.       EndProperty
  67.    End
  68.    Begin MSComctlLib.StatusBar sbStatusBar 
  69.       Align           =   2  'Align Bottom
  70.       Height          =   270
  71.       Left            =   0
  72.       TabIndex        =   0
  73.       Top             =   5835
  74.       Width           =   9915
  75.       _ExtentX        =   17489
  76.       _ExtentY        =   476
  77.       _Version        =   393216
  78.       BeginProperty Panels {8E3867A5-8586-11D1-B16A-00C0F0283628} 
  79.          NumPanels       =   3
  80.          BeginProperty Panel1 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
  81.             AutoSize        =   1
  82.             Object.Width           =   11853
  83.             Text            =   "Status"
  84.             TextSave        =   "Status"
  85.          EndProperty
  86.          BeginProperty Panel2 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
  87.             Style           =   6
  88.             AutoSize        =   2
  89.             TextSave        =   "2005-11-22"
  90.          EndProperty
  91.          BeginProperty Panel3 {8E3867AB-8586-11D1-B16A-00C0F0283628} 
  92.             Style           =   5
  93.             AutoSize        =   2
  94.             TextSave        =   "22:10"
  95.          EndProperty
  96.       EndProperty
  97.    End
  98.    Begin MSComDlg.CommonDialog dlgCommonDialog 
  99.       Left            =   1740
  100.       Top             =   1350
  101.       _ExtentX        =   847
  102.       _ExtentY        =   847
  103.       _Version        =   393216
  104.    End
  105.    Begin VB.Menu mnuFile 
  106.       Caption         =   "&File"
  107.       Begin VB.Menu mnuExit 
  108.          Caption         =   "Exit"
  109.       End
  110.    End
  111.    Begin VB.Menu mnuOpc 
  112.       Caption         =   "&OPC"
  113.       Begin VB.Menu mnuConnect 
  114.          Caption         =   "&Connect"
  115.       End
  116.       Begin VB.Menu mnuDisconnect 
  117.          Caption         =   "&Disconnect"
  118.          Enabled         =   0   'False
  119.       End
  120.       Begin VB.Menu mnuServerStatus 
  121.          Caption         =   "Server Status"
  122.          Enabled         =   0   'False
  123.       End
  124.       Begin VB.Menu mnuSplit2 
  125.          Caption         =   "-"
  126.       End
  127.       Begin VB.Menu mnuGroupStatus 
  128.          Caption         =   "Group Stat"
  129.          Enabled         =   0   'False
  130.       End
  131.       Begin VB.Menu mnuGroupRefresh 
  132.          Caption         =   "Refresh Data"
  133.          Enabled         =   0   'False
  134.       End
  135.       Begin VB.Menu mnuSplit 
  136.          Caption         =   "-"
  137.       End
  138.       Begin VB.Menu mnuAddItem 
  139.          Caption         =   "&Add Item"
  140.          Enabled         =   0   'False
  141.       End
  142.       Begin VB.Menu mnuRemoveItem 
  143.          Caption         =   "&Remove Item"
  144.          Enabled         =   0   'False
  145.       End
  146.       Begin VB.Menu mnuReadItem 
  147.          Caption         =   "R&ead Item"
  148.          Enabled         =   0   'False
  149.       End
  150.       Begin VB.Menu mnuWriteItem 
  151.          Caption         =   "&Write Item"
  152.          Enabled         =   0   'False
  153.       End
  154.       Begin VB.Menu mnuItemStatus 
  155.          Caption         =   "Item Properties"
  156.          Enabled         =   0   'False
  157.       End
  158.    End
  159.    Begin VB.Menu mnuHelp 
  160.       Caption         =   "&Help"
  161.       Begin VB.Menu mnuHelpAbout 
  162.          Caption         =   "&About"
  163.       End
  164.    End
  165. End
  166. Attribute VB_Name = "frmMain"
  167. Attribute VB_GlobalNameSpace = False
  168. Attribute VB_Creatable = False
  169. Attribute VB_PredeclaredId = True
  170. Attribute VB_Exposed = False
  171. Option Explicit
  172. Public Sub Disconnect()
  173.     If ServerHandle = 0 Then Exit Sub
  174.     If GroupHandle > 0 Then
  175.         lvListView.ListItems.Clear
  176.         ASDAC_RemoveGroup ServerHandle, GroupHandle
  177.     End If
  178.     
  179.     If ASDAC_Disconnect(ServerHandle) Then
  180.         ServerHandle = 0
  181.         GroupHandle = 0
  182.         mnuConnect.Enabled = True
  183.         mnuDisconnect.Enabled = False
  184.         mnuServerStatus.Enabled = False
  185.         mnuGroupStatus.Enabled = False
  186.         mnuGroupRefresh.Enabled = False
  187.         mnuAddItem.Enabled = False
  188.         mnuAddItem.Enabled = False
  189.         mnuRemoveItem.Enabled = False
  190.         mnuReadItem.Enabled = False
  191.         mnuWriteItem.Enabled = False
  192.         mnuItemStatus.Enabled = False
  193.     End If
  194. End Sub
  195. Private Sub Form_Load()
  196.     ServerHandle = 0
  197.     GroupHandle = 0
  198.     ItemIndex = 0
  199.     GroupName = "GROUP"
  200.     '序列号用户使用
  201.     'AS_ActiveCode "", ""
  202.     Call ASDAC_Init
  203.     
  204. End Sub
  205. Private Sub Form_Unload(Cancel As Integer)
  206.     If ServerHandle > -1 Then
  207.         ASDAC_Disconnect ServerHandle
  208.     End If
  209.     ASDAC_Uninit
  210. End Sub
  211. Private Sub Form_Resize()
  212.     On Error Resume Next
  213.     If Me.Width < 3000 Then Me.Width = 3000
  214.     lvListView.Top = 0
  215.     lvListView.Left = 10
  216.     lvListView.Width = Me.Width - 120
  217.     lvListView.Height = Me.ScaleHeight - sbStatusBar.Height
  218. End Sub
  219. Private Sub lvListView_ItemClick(ByVal Item As MSComctlLib.listItem)
  220.     If lvListView.SelectedItem Is Nothing Then Exit Sub
  221.     mnuReadItem.Enabled = True
  222.     mnuWriteItem.Enabled = True
  223.     mnuItemStatus.Enabled = True
  224.     mnuRemoveItem.Enabled = True
  225. End Sub
  226. Private Sub mnuAddItem_Click()
  227.     frmItemBrowser.Show vbModal, Me
  228. End Sub
  229. Private Sub mnuConnect_Click()
  230.     frmServerBrowser.Show vbModal, Me
  231.     If frmServerBrowser.mbReturn = False Then Exit Sub
  232.     If Len(frmServerBrowser.ServerClassID) < 1 Then Exit Sub
  233.     
  234.     ServerHandle = ASDAC_Connect(frmServerBrowser.ComputerName, frmServerBrowser.ServerClassID, frmServerBrowser.Version)
  235.     If ServerHandle > 0 Then
  236.         ASDAC_SetDataChangeProc ServerHandle, AddressOf ServerDataChangeProc
  237.         ASDAC_SetShutdownProc ServerHandle, AddressOf ServerShutdownProc
  238.         GroupHandle = ASDAC_AddGroup(ServerHandle, GroupName, True, 1000, 0, 0, 0)
  239.         If GroupHandle > 0 Then
  240.             mnuConnect.Enabled = False
  241.             mnuDisconnect.Enabled = True
  242.             mnuServerStatus.Enabled = True
  243.             mnuGroupStatus.Enabled = True
  244.             mnuGroupRefresh.Enabled = True
  245.             mnuAddItem.Enabled = True
  246.         End If
  247.     End If
  248. End Sub
  249. Private Sub mnuDisconnect_Click()
  250.      If ASDAC_Disconnect(ServerHandle) Then
  251.             lvListView.ListItems.Clear
  252.             GroupHandle = 0
  253.             ServerHandle = 0
  254.             mnuConnect.Enabled = True
  255.             mnuDisconnect.Enabled = False
  256.             mnuServerStatus.Enabled = False
  257.             mnuGroupStatus.Enabled = False
  258.             mnuGroupRefresh.Enabled = False
  259.             mnuAddItem.Enabled = False
  260.             mnuReadItem.Enabled = False
  261.             mnuWriteItem.Enabled = False
  262.             mnuRemoveItem.Enabled = False
  263.             mnuItemStatus.Enabled = False
  264.      End If
  265. End Sub
  266. Private Sub mnuExit_Click()
  267.     Unload Me
  268. End Sub
  269. Private Sub mnuGroupStatus_Click()
  270.     frmGroupStatus.frmGroupName = GroupName
  271.     frmGroupStatus.Show vbModal, Me
  272.     If frmGroupStatus.mbReturn Then
  273.         If frmGroupStatus.frmGroupName <> GroupName Then
  274.             If ASDAC_SetGroupName(ServerHandle, GroupHandle, frmGroupStatus.frmGroupName) Then
  275.                 GroupName = frmGroupStatus.frmGroupName
  276.             End If
  277.         End If
  278.         ASDAC_SetGroupStat ServerHandle, GroupHandle, frmGroupStatus.UpdateRate, frmGroupStatus.Active, frmGroupStatus.TimeBias, frmGroupStatus.DeadBand, 0
  279.     End If
  280. End Sub
  281. Private Sub mnuHelpAbout_Click()
  282.     frmAbout.Show vbModal, Me
  283. End Sub
  284. Private Sub mnuItemStatus_Click()
  285.     If lvListView.SelectedItem Is Nothing Then Exit Sub
  286.     frmItemStatus.ItemName = lvListView.SelectedItem.Text
  287.     frmItemStatus.Show vbModal, Me
  288. End Sub
  289. Private Sub mnuReadItem_Click()
  290.     Dim lvItem As listItem
  291.     
  292.     If lvListView.SelectedItem Is Nothing Then Exit Sub
  293.     Dim Var As Variant
  294.     Dim Ft As Double
  295.     Dim ftdt As FILETIME
  296.     Dim Quality As Integer
  297.     
  298.     
  299.     If ASDAC_ReadItem(ServerHandle, GroupHandle, ItemArr(lvListView.SelectedItem.Tag).Handle, Var, Ft, Quality) Then
  300.         CopyMemory ftdt, Ft, Len(Ft)
  301.         ItemArr(lvListView.SelectedItem.Tag).Value = Var
  302.         ItemArr(lvListView.SelectedItem.Tag).Quality = Quality
  303.         ItemArr(lvListView.SelectedItem.Tag).Ft = ftdt
  304.         lvListView.SelectedItem.SubItems(1) = Var
  305.         lvListView.SelectedItem.SubItems(2) = CStr(Quality)
  306.         lvListView.SelectedItem.SubItems(3) = CStr(FileTimeToDate(ftdt))
  307.     End If
  308. End Sub
  309. Private Sub mnuGroupRefresh_Click()
  310.     ASDAC_RefreshGroup ServerHandle, GroupHandle, 1
  311. End Sub
  312. Private Sub mnuRemoveItem_Click()
  313.     Dim lvItem As listItem
  314.     
  315.     If lvListView.SelectedItem Is Nothing Then Exit Sub
  316.     
  317.     If RemoveItem(lvListView.SelectedItem.Tag) Then
  318.         lvListView.ListItems.Remove lvListView.SelectedItem.Index
  319.     End If
  320. End Sub
  321. Public Sub AddItem(ItemName As String)
  322.     Dim Index As Long
  323.     Dim lvItem As listItem
  324.     Index = Module1.AddItem(ItemName)
  325.     If Index > 0 Then
  326.         Set lvItem = lvListView.ListItems.Add(1, "K" + CStr(Index), ItemName)
  327.         lvItem.Tag = Index
  328.         lvItem.SubItems(1) = "Bad"
  329.         lvItem.SubItems(2) = ""
  330.         lvItem.SubItems(3) = ""
  331.     End If
  332. End Sub
  333. Public Sub RefreshItem(Index As Integer)
  334.     Dim lvItem As listItem
  335.     Set lvItem = lvListView.ListItems("K" + CStr(Index))
  336.     If lvItem Is Nothing Then Exit Sub
  337.     lvItem.SubItems(1) = ItemArr(Index).Value
  338.     lvItem.SubItems(2) = CStr(ItemArr(Index).Quality)
  339.     lvItem.SubItems(3) = CStr(FileTimeToDate(ItemArr(Index).Ft))
  340. End Sub
  341. Private Sub mnuServerStatus_Click()
  342.     Dim ftStart, ftCurrent, ftUpdate As Double
  343.     Dim BandWidth, GroupCount As Long
  344.     Dim State, MajorVersion, MinorVersion, BuildNumber As Integer
  345.     Dim vendor As String
  346.     vendor = Space(128)
  347.     If ASDAC_GetServerStatus(ServerHandle, ftStart, ftCurrent, ftUpdate, State, BandWidth, GroupCount, MajorVersion, MinorVersion, BuildNumber, vendor, 128) Then
  348.         frmServerStatus.Text1.Text = CStr(FileTimeToDate(DoubleToFileTime(ftStart)))
  349.         frmServerStatus.Text2.Text = CStr(FileTimeToDate(DoubleToFileTime(ftCurrent)))
  350.         frmServerStatus.Text3.Text = CStr(FileTimeToDate(DoubleToFileTime(ftUpdate)))
  351.         frmServerStatus.Text4.Text = CStr(BandWidth)
  352.         frmServerStatus.Text5.Text = CStr(State)
  353.         frmServerStatus.Text6.Text = CStr(GroupCount)
  354.         frmServerStatus.Text7.Text = CStr(MajorVersion)
  355.         frmServerStatus.Text8.Text = CStr(MinorVersion)
  356.         frmServerStatus.Text9.Text = CStr(BuildNumber)
  357.         frmServerStatus.Show vbModal, Me
  358.     End If
  359. End Sub
  360. Private Sub mnuWriteItem_Click()
  361.     Dim Index As Long
  362.     Dim Value As Variant
  363.     If lvListView.SelectedItem Is Nothing Then Exit Sub
  364.     frmItemWrite.Show vbModal, Me
  365.     If frmItemWrite.mbReturn = False Then Exit Sub
  366.     If frmItemWrite.Value = "" Then Exit Sub
  367.     
  368.     Index = lvListView.SelectedItem.Tag
  369.     Value = frmItemWrite.Value
  370.    
  371.     If ASDAC_WriteItem(ServerHandle, GroupHandle, ItemArr(Index).Handle, Value, frmItemWrite.Async) Then
  372.         ItemArr(Index).Value = Value
  373.         lvListView.SelectedItem.SubItems(1) = Value
  374.     End If
  375. End Sub