⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpdfrm.frm

📁 dsp6713开发板的许多例程.对入门特别有用
💻 FRM
📖 第 1 页 / 共 3 页
字号:
    
        ' Start Method Dispatch Manager
        channel_number = 1
        tmr_Method_Dispatch.Enabled = True
    
    ElseIf on_off_toggle = True Then
        on_off_toggle = False
        cmd_ToolBar.Buttons.Item(TOGGLE_BUTTON).Caption = START_CAPTION
        cmd_ToolBar.Buttons.Item(TOGGLE_BUTTON).Image = START_IMAGE
        sts_GPDStatus.Panels.Item(GPD_STATE_PANEL).Text = CONFIGURE_MODE_CAPTION
        'Close all channels
        If tmr_Method_Dispatch.Enabled = True Then
            tmr_Method_Dispatch = False
            For instantiation_incr = 1 To lst_ChannelList.ListItems.Count
                '########## RTDX(TM) ##########'
                Sleep (1000) ' Sleep for 1 second
                If (MethodValues(channel_number).CHANNEL_OPEN = True) Then
                    MethodValues(instantiation_incr).stat = _
                        rtdx(instantiation_incr).Close()
                End If
                Set rtdx(instantiation_incr) = Nothing
                '########## RTDX(TM) ##########'
            Next instantiation_incr
        End If
        
        ' Enable ALL controls
        cmd_ToolBar.Buttons.Item(ADDCHANNEL_BUTTON).Enabled = True
        cmd_ToolBar.Buttons.Item(MODIFYCHANNEL_BUTTON).Enabled = True
        cmd_ToolBar.Buttons.Item(DELETECHANNEL_BUTTON).Enabled = True
        cmd_ToolBar.Buttons.Item(DELETEALLCHANNELS_BUTTON).Enabled = True
        
    End If

End Sub
Private Sub cmd_AddChannel()
Dim RTDX_channel As ListItem
    
    ' Show Property page
    GPDPpg.Show 1
    
    If GPDPpg.DataValid Then
    
        ' Insert new channel at the end of list
        Set RTDX_channel = lst_ChannelList.ListItems.Add(, , GPDPpg.txt_ChannelName)
        RTDX_channel.SubItems(MAXMESSAGES_ITEM) = GPDPpg.txt_MaxMessages
        RTDX_channel.SubItems(MAXMEMBERS_ITEM) = GPDPpg.txt_MaxMembers
        RTDX_channel.SubItems(CHANNELTYPE_ITEM) = GPDPpg.ChannelTypeOption
        RTDX_channel.SubItems(DATATYPE_ITEM) = GPDPpg.DataTypeOption
        RTDX_channel.SubItems(BOARD_ITEM) = GPDPpg.CurrentSelectedBoard
        RTDX_channel.SubItems(PROCESSOR_ITEM) = GPDPpg.CurrentSelectedProcessor

        'Highlight inserted channel as selected channel
        lst_ChannelList.SelectedItem = lst_ChannelList.ListItems(lst_ChannelList.ListItems.Count)
        
        ' Update channel count
        sts_GPDStatus.Panels.Item(NUM_OF_CHANNELS_PANEL).Text = TOTAL_CHANNELS_CAPTION + _
                                                                Str(lst_ChannelList.ListItems.Count)
        
        ' Enable controls that require an existing channel
        cmd_ToolBar.Buttons.Item(TOGGLE_BUTTON).Enabled = True
        cmd_ToolBar.Buttons.Item(MODIFYCHANNEL_BUTTON).Enabled = True
        cmd_ToolBar.Buttons.Item(DELETECHANNEL_BUTTON).Enabled = True
        cmd_ToolBar.Buttons.Item(DELETEALLCHANNELS_BUTTON).Enabled = True
    End If
End Sub

Private Sub cmd_ModifyChannel()
Dim i As Integer

    ' Update Text Boxes with current settings for selected channel
    GPDPpg.txt_ChannelName = lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index)
    GPDPpg.txt_MaxMessages = lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(MAXMESSAGES_ITEM)
    GPDPpg.txt_MaxMembers = lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(MAXMEMBERS_ITEM)
        
    ' Update channel type option with current settings for selected channel
    Select Case (lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(CHANNELTYPE_ITEM))
        Case Is = TYPE_READ_ONLY
            GPDPpg.opt_ReadChannel.Value = True
        Case Is = TYPE_WRITE_ONLY
            GPDPpg.opt_WriteChannel.Value = True
        Case Else
            GPDPpg.opt_ReadChannel.Value = True
    End Select
    
    ' Update data type option with current settings for selected channel
    Select Case (lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(DATATYPE_ITEM))
        Case Is = TYPE_8BIT_INTEGER
            GPDPpg.opt_8BitInteger.Value = True
        Case Is = TYPE_16BIT_INTEGER
            GPDPpg.opt_16BitInteger.Value = True
        Case Is = TYPE_32BIT_INTEGER
            GPDPpg.opt_32BitInteger.Value = True
        Case Is = TYPE_32BIT_FLOAT
            GPDPpg.opt_32BitFloat.Value = True
        Case Is = TYPE_64BIT_FLOAT
            GPDPpg.opt_64BitFloat.Value = True
        Case Else
            GPDPpg.opt_16BitInteger.Value = True
    End Select
    
    ' Update board
    For i = 0 To (GPDPpg.list_Boards.ListCount - 1)
        If ((GPDPpg.list_Boards.List(i)) = (lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(BOARD_ITEM))) Then
            GPDPpg.list_Boards.Selected(i) = True
            Exit For
        End If
    Next
    
    ' Update processor
    For i = 0 To (GPDPpg.list_Processors.ListCount - 1)
        If ((GPDPpg.list_Processors.List(i)) = (lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(PROCESSOR_ITEM))) Then
            GPDPpg.list_Processors.Selected(i) = True
            Exit For
        End If
    Next
    
    ' Show Property page
    GPDPpg.DataValid = False
    GPDPpg.Show 1
    
    ' If data is valid then update item in list
    If GPDPpg.DataValid Then
        lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index) = GPDPpg.txt_ChannelName
        lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(MAXMESSAGES_ITEM) = GPDPpg.txt_MaxMessages
        lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(MAXMEMBERS_ITEM) = GPDPpg.txt_MaxMembers
        lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(CHANNELTYPE_ITEM) = GPDPpg.ChannelTypeOption
        lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(DATATYPE_ITEM) = GPDPpg.DataTypeOption
        lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(BOARD_ITEM) = GPDPpg.CurrentSelectedBoard
        lst_ChannelList.ListItems.Item(lst_ChannelList.SelectedItem.Index).SubItems(PROCESSOR_ITEM) = GPDPpg.CurrentSelectedProcessor
    End If
    
End Sub
Private Sub cmd_DeleteChannel()
    
    ' Check to see if we have any channels
    If (lst_ChannelList.ListItems.Count <= 0) Then
        MsgBox ("There are no channels to delete!")
        cmd_ToolBar.Buttons.Item(TOGGLE_BUTTON).Enabled = False
        cmd_ToolBar.Buttons.Item(MODIFYCHANNEL_BUTTON).Enabled = False
        cmd_ToolBar.Buttons.Item(DELETECHANNEL_BUTTON).Enabled = False
        cmd_ToolBar.Buttons.Item(DELETEALLCHANNELS_BUTTON).Enabled = False
    
    ' Check to see if we have more than one channel
    ElseIf (lst_ChannelList.ListItems.Count > 1) Then
        ' Remove channel from the list
        lst_ChannelList.ListItems.Remove (lst_ChannelList.SelectedItem.Index)
            
        'Highlight last channel as selected channel
        lst_ChannelList.SelectedItem = lst_ChannelList.ListItems(lst_ChannelList.ListItems.Count)
        
    ' We must have only one channel left so just call cmd_DeleteAllChannels
    Else
        cmd_DeleteAllChannels
    End If

    ' Update channel count
    sts_GPDStatus.Panels.Item(NUM_OF_CHANNELS_PANEL).Text = TOTAL_CHANNELS_CAPTION + _
                                                        Str(lst_ChannelList.ListItems.Count)
    
End Sub
Private Sub cmd_DeleteAllChannels()
    
    ' clear all channels
    lst_ChannelList.ListItems.Clear
    
    ' Disable all buttons that require available channels
    cmd_ToolBar.Buttons.Item(TOGGLE_BUTTON).Enabled = False
    cmd_ToolBar.Buttons.Item(MODIFYCHANNEL_BUTTON).Enabled = False
    cmd_ToolBar.Buttons.Item(DELETECHANNEL_BUTTON).Enabled = False
    cmd_ToolBar.Buttons.Item(DELETEALLCHANNELS_BUTTON).Enabled = False

    ' Update channel count
    sts_GPDStatus.Panels.Item(NUM_OF_CHANNELS_PANEL).Text = TOTAL_CHANNELS_CAPTION + _
                                                        Str(lst_ChannelList.ListItems.Count)
End Sub

Private Sub cmd_ToolBar_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
        Case Is = "cmd_Toggle"
            cmd_Toggle ' Call cmd_Toggle procedure
        Case Is = "cmd_AddChannel"
            cmd_AddChannel ' Call cmd_AddChannel procedure
        Case Is = "cmd_ModifyChannel"
            cmd_ModifyChannel ' Call cmd_ModifyChannel procedure
        Case Is = "cmd_DeleteChannel"
            cmd_DeleteChannel ' Call cmd_DeleteChannel procedure
        Case Is = "cmd_DeleteAllChannels"
            cmd_DeleteAllChannels ' Call cmd_DeleteAllChannels procedure
        Case Else
    End Select
End Sub

Private Sub Form_Load()
'Dim TestHelpPath As String
'Dim NewHelpFile As String

    Left = (Screen.Width - Width) / 2
    Top = (Screen.Height - Height) / 2
    ' Specify help file
    
'    TestHelpPath = Dir(App.Path + RTDXHELPFILE, vbNormal)
    'If help file is not in the applications directory
'    If (TestHelpPath <> "") Then
'        App.HelpFile = App.Path & RTDXHELPFILE
'    Else
        'Ask user to specify
'        MsgBox ("Warning: RTDX Help File not found!")
'        NewHelpFile = InputBox("Enter path and name of help file")
'        App.HelpFile = NewHelpFile
'    End If
    
    ' Initialize program
    Init_Prog
End Sub

Private Sub Form_Resize()
'#######################################################################
' This procedure is called if the form size if modifed. It's job is to
' re-size and re-position the Active-X controls according to scale.
'#######################################################################
    
'    cmd_ToolBar.Width = GPDFrm.ScaleWidth
    lst_ChannelList.Width = GPDFrm.ScaleWidth
    cmd_ToolBar.Top = GPDFrm.ScaleTop
    lst_ChannelList.Top = GPDFrm.ScaleTop + cmd_ToolBar.Height
    If (GPDFrm.MinButton <> True) Then
        lst_ChannelList.Height = GPDFrm.ScaleHeight - lst_ChannelList.Top - sts_GPDStatus.Height
    End If
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim instantiation_incr As Integer
    'Close all channels
    If tmr_Method_Dispatch.Enabled = True Then
        tmr_Method_Dispatch = False
        For instantiation_incr = 1 To lst_ChannelList.ListItems.Count
            '########## RTDX(TM) ##########'
            Sleep (1000) ' Sleep for 1 second
            If (MethodValues(channel_number).CHANNEL_OPEN = True) Then
                MethodValues(instantiation_incr).stat = _
                    rtdx(instantiation_incr).Close()
            End If
            Set rtdx(instantiation_incr) = Nothing
            '########## RTDX(TM) ##########'
        Next instantiation_incr
    End If
    Unload GPDPpg
    Unload GPDGridFrm
End Sub

Private Sub tmr_Method_Dispatch_Timer()
Dim open_chan_incr As Integer
Dim CHANNELS_STILL_OPEN As Boolean

    ' Test to see if we are done running the program
    CHANNELS_STILL_OPEN = False
    For open_chan_incr = 1 To lst_ChannelList.ListItems.Count
        If MethodValues(open_chan_incr).CHANNEL_OPEN Then
            CHANNELS_STILL_OPEN = True
            Exit For
        End If
    Next open_chan_incr
    
    ' Test to see if we have open channels left
    If Not CHANNELS_STILL_OPEN Then
        MsgBox ("Data Processing Complete!")
        cmd_Toggle
        Exit Sub
    Else
        ' Test to see if we are able to obtain data from the channel
        If MethodValues(channel_number).CHANNEL_OPEN Then
            ' Test the I/O type of the channel
            If (lst_ChannelList.ListItems.Item(channel_number).SubItems(CHANNELTYPE_ITEM) = TYPE_READ_ONLY) Then
                Do_Read
            ElseIf (lst_ChannelList.ListItems.Item(channel_number).SubItems(CHANNELTYPE_ITEM) = TYPE_WRITE_ONLY) Then
                Do_Write
            End If
        End If
        'increment channel number
        channel_number = channel_number + 1
        If channel_number > lst_ChannelList.ListItems.Count Then
            channel_number = 1 ' reset channel number
        End If
    End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -