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

📄 gpdfrm.frm

📁 dsp6713开发板的许多例程.对入门特别有用
💻 FRM
📖 第 1 页 / 共 3 页
字号:
    ' Set the number of Rows and Columns
    ' Find the biggest max message of all the channels
    For channel_counter = 1 To lst_ChannelList.ListItems.Count
        nbr_rows = lst_ChannelList.ListItems.Item(channel_counter).SubItems(MAXMESSAGES_ITEM)
        If nbr_rows > total_rows Then
            total_rows = nbr_rows
        End If
    Next channel_counter
    
    GPDGridFrm.grd_GridSheet.Rows = total_rows + 1
    
    ' Find the total amount of columns needed for all the channels
    For channel_counter = 1 To lst_ChannelList.ListItems.Count
        ' If the current channel is not the last channel then
        ' add max members to total columns, plus an additional
        ' column.  Otherwise, just add max members.  This will
        ' make sure that we have just enough columns.
        total_columns = total_columns + _
            lst_ChannelList.ListItems.Item(channel_counter).SubItems(MAXMEMBERS_ITEM)
        If channel_counter < lst_ChannelList.ListItems.Count Then
            total_columns = total_columns + 1
        End If
    Next channel_counter
    GPDGridFrm.grd_GridSheet.Cols = total_columns + 1
    
    ' Clear Grid
    GPDGridFrm.grd_GridSheet.Clear
    
    ' Label rows
    GPDGridFrm.grd_GridSheet.Col = 0
    For rowinc = 1 To total_rows
        GPDGridFrm.grd_GridSheet.Row = rowinc
        GPDGridFrm.grd_GridSheet = rowinc
    Next rowinc

    ' Make an array to hold column locations per channel object
    ReDim Column_Point(1 To lst_ChannelList.ListItems.Count) As Column_Break_Points
    
    ' Label columns & set column locations per channel
    GPDGridFrm.grd_GridSheet.Row = 0
    For channel_counter = 1 To lst_ChannelList.ListItems.Count
        If channel_counter = 1 Then
            Column_Point(1).Start_Point = 1
            Column_Point(1).End_Point = (lst_ChannelList.ListItems.Item(1).SubItems(MAXMEMBERS_ITEM))
        Else ' Leave blank column between channels
            Column_Point(channel_counter).Start_Point = _
                Column_Point(channel_counter - 1).End_Point + 2
            Column_Point(channel_counter).End_Point = _
                Column_Point(channel_counter).Start_Point + _
                lst_ChannelList.ListItems.Item(channel_counter).SubItems(MAXMEMBERS_ITEM) - 1
        End If
        ' Label column with channel name and member number
        GPDGridFrm.grd_GridSheet.Col = _
            Column_Point(channel_counter).Start_Point
        GPDGridFrm.grd_GridSheet = _
            lst_ChannelList.ListItems.Item(channel_counter)
        For colinc = 2 To lst_ChannelList.ListItems.Item(channel_counter).SubItems(MAXMEMBERS_ITEM)
            GPDGridFrm.grd_GridSheet.Col = _
                colinc + Column_Point(channel_counter).Start_Point - 1
            GPDGridFrm.grd_GridSheet = colinc
        Next colinc
    Next channel_counter
    
    ' Set width of every column
    For colinc = 1 To total_columns
        GPDGridFrm.grd_GridSheet.ColWidth(colinc) = 1000
    Next colinc
    
End Sub
Private Sub Init_Row_Col_Start_Points()
' Initialize column start points for all channels
Dim RC_channel_counter As Integer

    For RC_channel_counter = 1 To lst_ChannelList.ListItems.Count
        
        ' Initialize row start point
        MethodValues(RC_channel_counter).message_counter = 1
        
        ' Initialize column start point
        MethodValues(RC_channel_counter).member_counter = _
            Column_Point(RC_channel_counter).Start_Point
        
    Next RC_channel_counter
End Sub
Private Sub Process_Data(ByVal member_value As Long)
' distribute data to grid cells
    
    ' Determine where to put message on grid sheet
    ' Test member value of message
    If (MethodValues(channel_number).member_counter > _
        Column_Point(channel_number).End_Point) Then
        ' reset column
        MethodValues(channel_number).member_counter = _
            Column_Point(channel_number).Start_Point
        ' increment the rows
        MethodValues(channel_number).message_counter = _
            MethodValues(channel_number).message_counter + 1
    End If
    
    ' If we are within are row boundaries then display the data
    If (MethodValues(channel_number).message_counter <= _
        lst_ChannelList.ListItems.Item(channel_number).SubItems(MAXMESSAGES_ITEM)) Then
            ' Set focus on a cell
            GPDGridFrm.grd_GridSheet.Row = _
                MethodValues(channel_number).message_counter
            GPDGridFrm.grd_GridSheet.Col = _
                MethodValues(channel_number).member_counter
    
            ' Fill cell with a value
            GPDGridFrm.grd_GridSheet = member_value
        
            ' Increment member number counter
            MethodValues(channel_number).member_counter = _
            MethodValues(channel_number).member_counter + 1
    End If
    
End Sub

Private Sub Do_Read()
Dim read_value_I2 As Integer
Dim read_value_I4 As Long

    ' Read until we have reached the end of a log file
    If (MethodValues(channel_number).read_status = EEndOfLogFile) Then
        ' Close channel
        MethodValues(channel_number).stat = _
            rtdx(channel_number).Close()
        ' Mark channel as closed
        MethodValues(channel_number).CHANNEL_OPEN = False
        Exit Sub
    End If
           
    ' Test for 32bit or 16bit Read
    If (lst_ChannelList.ListItems.Item(channel_number).SubItems(DATATYPE_ITEM) = TYPE_32BIT_INTEGER) Then
        '########## RTDX(TM) ##########'
        MethodValues(channel_number).read_status = _
            rtdx(channel_number).ReadI4(read_value_I4)
        '########## RTDX(TM) ##########'
    Else
        '########## RTDX(TM) ##########'
        MethodValues(channel_number).read_status = _
            rtdx(channel_number).ReadI2(read_value_I2)
        '########## RTDX(TM) ##########'
            read_value_I4 = read_value_I2
    End If
            
    If (MethodValues(channel_number).read_status = SUCCESS) Then
        ' Call the procedure that distributes the
        ' member values to grid cells
        Process_Data read_value_I4
    End If
    
End Sub

Private Sub Do_Write()
Dim Write_Value_I2 As Integer
    
    ' Write until Write_Value_I4 is greater than or equal
    ' to (total messages(rows) * total members(columns))
    If MethodValues(channel_number).Write_Value_I4 >= _
        lst_ChannelList.ListItems.Item(channel_number).SubItems(MAXMESSAGES_ITEM) * _
            lst_ChannelList.ListItems.Item(channel_number).SubItems(MAXMEMBERS_ITEM) Then
                ' Close channel
                MethodValues(channel_number).stat = _
                    rtdx(channel_number).Close()
                ' Mark channel as closed
                MethodValues(channel_number).CHANNEL_OPEN = False
                Exit Sub
    End If
    
    ' check buffer status
    '########## RTDX(TM) ##########'
    ' Test for 32bit or 16bit StatusOfWrite
    MethodValues(channel_number).write_status = _
        rtdx(channel_number).StatusOfWrite _
            (MethodValues(channel_number).buffer_status)
    '########## RTDX(TM) ##########'
    If (lst_ChannelList.ListItems.Item(channel_number).SubItems(DATATYPE_ITEM) = TYPE_32BIT_INTEGER) Then
       MethodValues(channel_number).buffer_status = _
            MethodValues(channel_number).buffer_status / 4
    Else
        '########## RTDX(TM) ##########'
       MethodValues(channel_number).buffer_status = _
            MethodValues(channel_number).buffer_status / 2
        '########## RTDX(TM) ##########'
    End If
    
    ' Write Data if buffer is negative & last write status is OK
    If (MethodValues(channel_number).buffer_status < 0) And _
    (MethodValues(channel_number).write_status <> FAIL) Then
        MethodValues(channel_number).Write_Value_I4 = _
            MethodValues(channel_number).Write_Value_I4 + 1
        
        ' Call Ole WriteI4 Method
        If (lst_ChannelList.ListItems.Item(channel_number).SubItems(DATATYPE_ITEM) = TYPE_32BIT_INTEGER) Then
            '########## RTDX(TM) ##########'
            MethodValues(channel_number).write_status = _
                rtdx(channel_number).WriteI4 _
                    (MethodValues(channel_number).Write_Value_I4, _
                        MethodValues(channel_number).buffer_status)
            '########## RTDX(TM) ##########'
        Else
            Write_Value_I2 = MethodValues(channel_number).Write_Value_I4
            '########## RTDX(TM) ##########'
            MethodValues(channel_number).write_status = _
                rtdx(channel_number).WriteI2(Write_Value_I2, _
                    MethodValues(channel_number).buffer_status)
            '########## RTDX(TM) ##########'
        End If

        ' Display Data
        Process_Data MethodValues(channel_number).Write_Value_I4
    End If

End Sub

Private Sub cmd_Toggle()
Dim instantiation_incr As Integer
    
    If on_off_toggle = False Then
        
        on_off_toggle = True
        cmd_ToolBar.Buttons.Item(TOGGLE_BUTTON).Caption = STOP_CAPTION
        cmd_ToolBar.Buttons.Item(TOGGLE_BUTTON).Image = HALT_IMAGE
        sts_GPDStatus.Panels.Item(GPD_STATE_PANEL).Text = RUNNING_MODE_CAPTION
        'Initialize grid
        Init_Grid

        ' Disable ALL controls
        cmd_ToolBar.Buttons.Item(ADDCHANNEL_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
        
        
        ' Allocate array for OLE objects
        ReDim rtdx(1 To lst_ChannelList.ListItems.Count) As Object
    
        ReDim MethodValues(1 To lst_ChannelList.ListItems.Count) As RTDX_Method_Attributes
        
        For instantiation_incr = 1 To lst_ChannelList.ListItems.Count
            ' Do the object instantiation
            '########## RTDX(TM) ##########'
#If DIRECT_INTERFACE_CONNECTION Then
        Set Engine_Write = CreateObject("CodeComposer.Application").DspBoards _
                .GetDspTaskByFullName(BoardProc_frm.CurrentSelectedBoard + "\" + BoardProc_frm _
                .CurrentSelectedProcessor).rtdx.CreateRtdxChannel
                
            Set rtdx(instantiation_incr) = CreateObject("CodeComposer.Application").DspBoards _
                                            .GetDspTaskByFullName(lst_ChannelList.ListItems.Item(instantiation_incr).SubItems(BOARD_ITEM) _
                                            + "\" + lst_ChannelList.ListItems.Item(instantiation_incr).SubItems(PROCESSOR_ITEM)) _
                                            .rtdx.CreateRtdxChannel
                                            
                                           DspTasks.Item(0).rtdx.CreateRtdxChannel
#Else
            Set rtdx(instantiation_incr) = CreateObject("RTDX")
            
            MethodValues(instantiation_incr).stat = _
            rtdx(instantiation_incr).SetProcessor(lst_ChannelList.ListItems.Item(instantiation_incr).SubItems(BOARD_ITEM), _
                                                    lst_ChannelList.ListItems.Item(instantiation_incr).SubItems(PROCESSOR_ITEM))
#End If
            '########## RTDX(TM) ##########'
            
            ' Open a channel
            '########## RTDX(TM) ##########'
            MethodValues(instantiation_incr).stat = _
            rtdx(instantiation_incr).Open(lst_ChannelList.ListItems.Item(instantiation_incr), _
                lst_ChannelList.ListItems.Item(instantiation_incr).SubItems(CHANNELTYPE_ITEM))
            '########## RTDX(TM) ##########'
            
            If MethodValues(instantiation_incr).stat <> SUCCESS Then
                MethodValues(instantiation_incr).CHANNEL_OPEN = False
                MsgBox (lst_ChannelList.ListItems.Item(instantiation_incr) & _
                        " is an unknown channel name")
                on_off_toggle = True
                cmd_Toggle
                Exit Sub
            Else
                MethodValues(instantiation_incr).CHANNEL_OPEN = True
            End If
            
        Next instantiation_incr
        
        ' Initialize row & column start points for all channels
        Init_Row_Col_Start_Points
    
        'Show grid
        GPDGridFrm.Show

⌨️ 快捷键说明

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