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

📄 rtdxfrm.frm

📁 TMS320F2812的C++ examples 各个模块的程序
💻 FRM
📖 第 1 页 / 共 4 页
字号:
    For RC_channel_counter = 0 To (Val(NUM_CHANNELS.Text) - 1)                ' 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_counterEnd SubPublic Sub Do_Read()Dim read_value_I2 As IntegerDim 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 RTDX_channel(channel_number).integer_size = "32-Bit" 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 SubPublic 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 >= _        RTDX_channel(channel_number).messages * _            RTDX_channel(channel_number).members 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 RTDX_channel(channel_number).integer_size = "32-Bit" 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 empty and 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 RTDX_channel(channel_number).integer_size = "32-Bit" 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 IfEnd SubPublic 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 <= _        RTDX_channel(channel_number).messages) Then            ' Set focus on a cell            RTDX_gridfrm.RTDX_grid.Row = _                MethodValues(channel_number).message_counter            RTDX_gridfrm.RTDX_grid.Col = _                MethodValues(channel_number).member_counter                ' Fill cell with a value            RTDX_gridfrm.RTDX_grid = member_value                    ' Increment member number counter            MethodValues(channel_number).member_counter = _            MethodValues(channel_number).member_counter + 1    End If    End SubPublic Function Input_Values_Valid() As BooleanDim char_incr As Integer     ' Test input values        If (CHANNEL_NAME.Text = "") Then        MsgBox ("Error: Channel name has not been included")        Input_Values_Valid = False        Exit Function    End If    If (IsNumeric(Left(CHANNEL_NAME.Text, 1))) Then        MsgBox ("Error: The first character of the channel name must be non-numeric!")        Input_Values_Valid = False        Exit Function    End If    If (((Val(MAX_MESSAGES.Text)) <= 0) Or (MAX_MESSAGES.Text = "")) Then        MsgBox ("Error: Message value must be greater than 0!")        Input_Values_Valid = False        Exit Function    End If    If (((Val(MAX_MEMBERS.Text)) <= 0) Or (MAX_MEMBERS.Text = "")) Then        MsgBox ("Error: Member value must be greater than 0!")        Input_Values_Valid = False        Exit Function    End If    ' Visual Basic interprets special characters as numeric.  Test the    ' channel name's integrity by comparing the ascii representation of    ' illegal characters.        For char_incr = 1 To Len(CHANNEL_NAME.Text)        If Not (((AscW(Mid(CHANNEL_NAME.Text, char_incr, 1))) >= AscW("0")) _                And ((AscW(Mid(CHANNEL_NAME.Text, char_incr, 1))) <= AscW("9")) _            Or ((AscW(Mid(CHANNEL_NAME.Text, char_incr, 1))) >= AscW("A")) _                And ((AscW(Mid(CHANNEL_NAME.Text, char_incr, 1))) <= AscW("Z")) _            Or ((AscW(Mid(CHANNEL_NAME.Text, char_incr, 1))) >= AscW("a")) _                And ((AscW(Mid(CHANNEL_NAME.Text, char_incr, 1))) <= AscW("z"))) Then                    MsgBox ("Error: No special characters are permitted in channel name!")                    Input_Values_Valid = False                    Exit Function        End If    Next char_incr        Input_Values_Valid = True    End FunctionPrivate Sub cmd_Add_Channel_Click()Dim organizer_index As Integer            If Input_Values_Valid Then        ' Add record to channel array        NUM_CHANNELS.Text = Str(Val(NUM_CHANNELS.Text) + 1)        chan_incr = Val(NUM_CHANNELS.Text) - 1                'only allocate enough for channels        ReDim Preserve RTDX_channel(Val(NUM_CHANNELS.Text)) _            As RTDX_Channel_Attributes                ' Insert new channel at the end        RTDX_channel(chan_incr).name = CHANNEL_NAME.Text        RTDX_channel(chan_incr).type = IO_TYPE.Text        RTDX_channel(chan_incr).messages = MAX_MESSAGES.Text        RTDX_channel(chan_incr).members = MAX_MEMBERS.Text        RTDX_channel(chan_incr).integer_size = INT_TYPE.Text            ' Re-Label channel        cmd_View_Channel.Clear        For organizer_index = 0 To (Val(NUM_CHANNELS.Text - 1))            cmd_View_Channel.AddItem "Channel " & cmd_View_Channel.ListCount        Next organizer_index            ' Set Focus on current channel        cmd_View_Channel.Text = "Channel " & chan_incr                ' Enable controls that require an existing channel        cmd_Delete_Channel.Enabled = True        cmd_Reset.Enabled = True        cmd_Modify_Channel.Enabled = True        cmd_Toggle.Enabled = True        mnu_Start.Enabled = True            End If    End SubPrivate Sub cmd_Delete_Channel_Click()Dim del_incr As IntegerDim organizer_index As Integer        ' Check to see if we have any channels    If Val(NUM_CHANNELS.Text) <= 0 Then        MsgBox ("There are no channels to delete!")        cmd_Delete_Channel.Enabled = False        cmd_Reset.Enabled = False        cmd_Modify_Channel.Enabled = False        cmd_Toggle.Enabled = False        mnu_Start.Enabled = False    Else        If (Val(NUM_CHANNELS.Text - 1) <> 0) Then            cmd_Delete_Channel.Enabled = True            NUM_CHANNELS.Text = Str(Val(NUM_CHANNELS.Text) - 1)                ' Remove record at position chan_incr by shifting array            ' elements one step to the left            For del_incr = chan_incr To (Val(NUM_CHANNELS.Text - 1))                RTDX_channel(del_incr).name = _                    RTDX_channel(del_incr + 1).name                RTDX_channel(del_incr).type = _                    RTDX_channel(del_incr + 1).type                RTDX_channel(del_incr).messages = _                    RTDX_channel(del_incr + 1).messages                RTDX_channel(del_incr).members = _                    RTDX_channel(del_incr + 1).members                RTDX_channel(del_incr).integer_size = _                    RTDX_channel(del_incr + 1).integer_size            Next del_incr                        ' Delete last element off the array            ReDim Preserve RTDX_channel(Val(NUM_CHANNELS.Text)) _                As RTDX_Channel_Attributes                    ' Re-Label channel            cmd_View_Channel.Clear            For organizer_index = 0 To (Val(NUM_CHANNELS.Text - 1))                cmd_View_Channel.AddItem "Channel " & cmd_View_Channel.ListCount            Next organizer_index                If chan_incr <> 0 Then                chan_incr = chan_incr - 1            End If                        'Show record            CHANNEL_NAME.Text = RTDX_channel(chan_incr).name            IO_TYPE.Text = RTDX_channel(chan_incr).type            MAX_MESSAGES.Text = RTDX_channel(chan_incr).messages            MAX_MEMBERS.Text = RTDX_channel(chan_incr).members            INT_TYPE.Text = RTDX_channel(chan_incr).integer_size                            ' Set Focus on current next channel            cmd_View_Channel.Text = "Channel " & chan_incr        Else            cmd_Reset_Click        End If            End IfEnd SubPrivate Sub cmd_Modify_Channel_Click()    ' If input values are valid    If Input_Values_Valid Then        ' Insert new value into array        RTDX_channel(chan_incr).name = CHANNEL_NAME.Text        RTDX_channel(chan_incr).type = IO_TYPE.Text        RTDX_channel(chan_incr).messages = MAX_MESSAGES.Text        RTDX_channel(chan_incr).members = MAX_MEMBERS.Text        RTDX_channel(chan_incr).integer_size = INT_TYPE.Text    End IfEnd SubPrivate Sub cmd_Reset_Click()    ' Disable controls that require an existing channel    cmd_Delete_Channel.Enabled = False    cmd_Reset.Enabled = False    cmd_Modify_Channel.Enabled = False    cmd_Toggle.Enabled = False    mnu_Start.Enabled = False        ' Wipe out all channels    ReDim RTDX_channel(0) As RTDX_Channel_Attributes    cmd_View_Channel.Clear    NUM_CHANNELS.Text = 0    CHANNEL_NAME.Text = ""    IO_TYPE.Text = "R"    MAX_MEMBERS.Text = ""    MAX_MESSAGES.Text = ""    INT_TYPE.Text = "32-Bit"    chan_incr = 0  End SubPrivate Sub cmd_Toggle_Click()Dim instantiation_incr As Integer    

⌨️ 快捷键说明

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