📄 rtdxfrm.frm
字号:
If on_off_toggle = False Then
If Not Input_Values_Valid Then
Exit Sub
Else
' 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 If
on_off_toggle = True
cmd_Toggle.Caption = "STOP"
'Initialize grid
Init_Grid
' Disable ALL controls
cmd_Add_Channel.Enabled = False
cmd_Delete_Channel.Enabled = False
cmd_Modify_Channel.Enabled = False
cmd_Reset.Enabled = False
CHANNEL_NAME.Enabled = False
IO_TYPE.Enabled = False
MAX_MEMBERS.Enabled = False
MAX_MESSAGES.Enabled = False
INT_TYPE.Enabled = False
' Allocate array for OLE objects
ReDim rtdx(Val(NUM_CHANNELS.Text)) As Object
ReDim MethodValues(Val(NUM_CHANNELS.Text)) As RTDX_Method_Attributes
For instantiation_incr = 0 To (NUM_CHANNELS.Text - 1)
' Do the object instantiation
'########## RTDX(TM) ##########'
#If DIRECT_INTERFACE_CONNECTION Then
Set rtdx(instantiation_incr) = CreateObject("CodeComposer.Application").DspBoards.Item(0). _
DspTasks.Item(0).rtdx.CreateRtdxChannel
#Else
Set rtdx(instantiation_incr) = CreateObject("RTDX")
#End If
'########## RTDX(TM) ##########'
' Open a channel
'########## RTDX(TM) ##########'
MethodValues(instantiation_incr).stat = _
rtdx(instantiation_incr).Open(RTDX_channel(instantiation_incr).name, _
RTDX_channel(instantiation_incr).type)
'########## RTDX(TM) ##########'
If MethodValues(instantiation_incr).stat <> SUCCESS Then
MethodValues(instantiation_incr).CHANNEL_OPEN = False
MsgBox (RTDX_channel(instantiation_incr).name & _
" is an unknown channel name")
on_off_toggle = True
cmd_Toggle_Click
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
RTDX_gridfrm.Show
' Start Method Dispatch Manager
channel_number = 0
tmr_Method_Dispatch.Enabled = True
ElseIf on_off_toggle = True Then
on_off_toggle = False
cmd_Toggle.Caption = "START"
'Close all channels
If tmr_Method_Dispatch.Enabled = True Then
tmr_Method_Dispatch = False
For instantiation_incr = 0 To (Val(NUM_CHANNELS.Text) - 1)
'########## 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_Add_Channel.Enabled = True
cmd_Delete_Channel.Enabled = True
cmd_Modify_Channel.Enabled = True
cmd_Reset.Enabled = True
CHANNEL_NAME.Enabled = True
IO_TYPE.Enabled = True
MAX_MEMBERS.Enabled = True
MAX_MESSAGES.Enabled = True
INT_TYPE.Enabled = True
End If
End Sub
Private Sub cmd_View_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
' Set chan_incr to selected record
chan_incr = cmd_View_Channel.ListIndex
'Return current requested 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
Else
' Go back and fix your record
cmd_View_Channel.Selected(chan_incr) = True
End If
End Sub
Private Sub Form_Load()
Dim TestHelpPath As String
Dim NewHelpFile As String
' Center form on screen
Left = (Screen.Width - Width) / 3.5
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
' Show form
RTDX_frm.Show
' Initialization
Init_Prog
End Sub
Private Sub Form_Resize()
' To resize controls:
'
' current control [width/height] = ( current control [width/height] *
' original control [width/height]) /
' forms original [width/height]
' Grow/Shrink Controls
TI_logo.Width = (RTDX_frm.Width * TI_LOGO_START_WIDTH) / FORM_START_WIDTH
TI_logo.Height = (RTDX_frm.Height * TI_LOGO_START_HEIGHT) / FORM_START_HEIGHT
cmd_Toggle.Width = (RTDX_frm.Width * CMD_TOGGLE_START_WIDTH) / FORM_START_WIDTH
cmd_Toggle.Height = (RTDX_frm.Height * CMD_TOGGLE_START_HEIGHT) / FORM_START_HEIGHT
cmd_Add_Channel.Width = (RTDX_frm.Width * CMD_ADD_CHANNEL_START_WIDTH) / FORM_START_WIDTH
cmd_Add_Channel.Height = (RTDX_frm.Height * CMD_ADD_CHANNEL_START_HEIGHT) / FORM_START_HEIGHT
cmd_Modify_Channel.Width = (RTDX_frm.Width * CMD_MODIFY_CHANNEL_START_WIDTH) / FORM_START_WIDTH
cmd_Modify_Channel.Height = (RTDX_frm.Height * CMD_MODIFY_CHANNEL_START_HEIGHT) / FORM_START_HEIGHT
cmd_Delete_Channel.Width = (RTDX_frm.Width * CMD_DELETE_CHANNEL_START_WIDTH) / FORM_START_WIDTH
cmd_Delete_Channel.Height = (RTDX_frm.Height * CMD_DELETE_CHANNEL_START_HEIGHT) / FORM_START_HEIGHT
cmd_Reset.Width = (RTDX_frm.Width * CMD_RESET_START_WIDTH) / FORM_START_WIDTH
cmd_Reset.Height = (RTDX_frm.Height * CMD_RESET_START_HEIGHT) / FORM_START_HEIGHT
cmd_View_Channel.Width = (RTDX_frm.Width * CMD_VIEW_CHANNEL_START_WIDTH) / FORM_START_WIDTH
cmd_View_Channel.Height = (RTDX_frm.Height * CMD_VIEW_CHANNEL_START_HEIGHT) / FORM_START_HEIGHT
CHANNEL_NAME.Width = (RTDX_frm.Width * CHANNEL_NAME_START_WIDTH) / FORM_START_WIDTH
CHANNEL_NAME.Height = (RTDX_frm.Height * CHANNEL_NAME_START_HEIGHT) / FORM_START_HEIGHT
MAX_MESSAGES.Width = (RTDX_frm.Width * MAX_MESSAGES_START_WIDTH) / FORM_START_WIDTH
MAX_MESSAGES.Height = (RTDX_frm.Height * MAX_MESSAGES_START_HEIGHT) / FORM_START_HEIGHT
MAX_MEMBERS.Width = (RTDX_frm.Width * MAX_MEMBERS_START_WIDTH) / FORM_START_WIDTH
MAX_MEMBERS.Height = (RTDX_frm.Height * MAX_MEMBERS_START_HEIGHT) / FORM_START_HEIGHT
IO_TYPE.Width = (RTDX_frm.Width * IO_TYPE_START_WIDTH) / FORM_START_WIDTH
IO_TYPE.Height = (RTDX_frm.Height * IO_TYPE_START_HEIGHT) / FORM_START_HEIGHT
INT_TYPE.Width = (RTDX_frm.Width * INT_TYPE_START_WIDTH) / FORM_START_WIDTH
INT_TYPE.Height = (RTDX_frm.Height * INT_TYPE_START_HEIGHT) / FORM_START_HEIGHT
NUM_CHANNELS.Width = (RTDX_frm.Width * NUM_CHANNELS_START_WIDTH) / FORM_START_WIDTH
NUM_CHANNELS.Height = (RTDX_frm.Height * NUM_CHANNELS_START_HEIGHT) / FORM_START_HEIGHT
Label1.Width = (RTDX_frm.Width * LABEL1_START_WIDTH) / FORM_START_WIDTH
Label1.Height = (RTDX_frm.Height * LABEL1_START_HEIGHT) / FORM_START_HEIGHT
Label2.Width = (RTDX_frm.Width * LABEL2_START_WIDTH) / FORM_START_WIDTH
Label2.Height = (RTDX_frm.Height * LABEL2_START_HEIGHT) / FORM_START_HEIGHT
Label3.Width = (RTDX_frm.Width * LABEL3_START_WIDTH) / FORM_START_WIDTH
Label3.Height = (RTDX_frm.Height * LABEL3_START_HEIGHT) / FORM_START_HEIGHT
Label4.Width = (RTDX_frm.Width * LABEL4_START_WIDTH) / FORM_START_WIDTH
Label4.Height = (RTDX_frm.Height * LABEL4_START_HEIGHT) / FORM_START_HEIGHT
Label5.Width = (RTDX_frm.Width * LABEL5_START_WIDTH) / FORM_START_WIDTH
Label5.Height = (RTDX_frm.Height * LABEL5_START_HEIGHT) / FORM_START_HEIGHT
Label6.Width = (RTDX_frm.Width * LABEL6_START_WIDTH) / FORM_START_WIDTH
Label6.Height = (RTDX_frm.Height * LABEL6_START_HEIGHT) / FORM_START_HEIGHT
Label7.Width = (RTDX_frm.Width * LABEL7_START_WIDTH) / FORM_START_WIDTH
Label7.Height = (RTDX_frm.Height * LABEL7_START_HEIGHT) / FORM_START_HEIGHT
' To re-position controls:
'
' current control [left/top] = ( original control [left/top] /
' original control [width/height] ) *
' current control [width/height]
' Note: However, we will multiply the original [left/top] position
' by the inverse of the original start [width/height] to
' protect us against division by zero.
' Re-position Controls
TI_logo.Left = (TI_LOGO_START_LEFT * (1 / TI_LOGO_START_WIDTH)) * TI_logo.Width
TI_logo.Top = (TI_LOGO_START_TOP * (1 / TI_LOGO_START_HEIGHT)) * TI_logo.Height
cmd_Toggle.Left = (CMD_TOGGLE_START_LEFT * (1 / CMD_TOGGLE_START_WIDTH)) * cmd_Toggle.Width
cmd_Toggle.Top = (CMD_TOGGLE_START_TOP * (1 / CMD_TOGGLE_START_HEIGHT)) * cmd_Toggle.Height
cmd_Add_Channel.Left = (CMD_ADD_CHANNEL_START_LEFT * (1 / CMD_ADD_CHANNEL_START_WIDTH)) * cmd_Add_Channel.Width
cmd_Add_Channel.Top = (CMD_ADD_CHANNEL_START_TOP * (1 / CMD_ADD_CHANNEL_START_HEIGHT)) * cmd_Add_Channel.Height
cmd_Modify_Channel.Left = (CMD_MODIFY_CHANNEL_START_LEFT * (1 / CMD_MODIFY_CHANNEL_START_WIDTH)) * cmd_Modify_Channel.Width
cmd_Modify_Channel.Top = (CMD_MODIFY_CHANNEL_START_TOP * (1 / CMD_MODIFY_CHANNEL_START_HEIGHT)) * cmd_Modify_Channel.Height
cmd_Delete_Channel.Left = (CMD_DELETE_CHANNEL_START_LEFT * (1 / CMD_DELETE_CHANNEL_START_WIDTH)) * cmd_Delete_Channel.Width
cmd_Delete_Channel.Top = (CMD_DELETE_CHANNEL_START_TOP * (1 / CMD_DELETE_CHANNEL_START_HEIGHT)) * cmd_Delete_Channel.Height
cmd_Reset.Left = (CMD_RESET_START_LEFT * (1 / CMD_RESET_START_WIDTH)) * cmd_Reset.Width
cmd_Reset.Top = (CMD_RESET_START_TOP * (1 / CMD_RESET_START_HEIGHT)) * cmd_Reset.Height
cmd_View_Channel.Left = (CMD_VIEW_CHANNEL_START_LEFT * (1 / CMD_VIEW_CHANNEL_START_WIDTH)) * cmd_View_Channel.Width
cmd_View_Channel.Top = (CMD_VIEW_CHANNEL_START_TOP * (1 / CMD_VIEW_CHANNEL_START_HEIGHT)) * cmd_View_Channel.Height
CHANNEL_NAME.Left = (CHANNEL_NAME_START_LEFT * (1 / CHANNEL_NAME_START_WIDTH)) * CHANNEL_NAME.Width
CHANNEL_NAME.Top = (CHANNEL_NAME_START_TOP * (1 / CHANNEL_NAME_START_HEIGHT)) * CHANNEL_NAME.Height
MAX_MESSAGES.Left = (MAX_MESSAGES_START_LEFT * (1 / MAX_MESSAGES_START_WIDTH)) * MAX_MESSAGES.Width
MAX_MESSAGES.Top = (MAX_MESSAGES_START_TOP * (1 / MAX_MESSAGES_START_HEIGHT)) * MAX_MESSAGES.Height
MAX_MEMBERS.Left = (MAX_MEMBERS_START_LEFT * (1 / MAX_MEMBERS_START_WIDTH)) * MAX_MEMBERS.Width
MAX_MEMBERS.Top = (MAX_MEMBERS_START_TOP * (1 / MAX_MEMBERS_START_HEIGHT)) * MAX_MEMBERS.Height
IO_TYPE.Left = (IO_TYPE_START_LEFT * (1 / IO_TYPE_START_WIDTH)) * IO_TYPE.Width
IO_TYPE.Top = (IO_TYPE_START_TOP * (1 / IO_TYPE_START_HEIGHT)) * IO_TYPE.Height
INT_TYPE.Left = (INT_TYPE_START_LEFT * (1 / INT_TYPE_START_WIDTH)) * INT_TYPE.Width
INT_TYPE.Top = (INT_TYPE_START_TOP * (1 / INT_TYPE_START_HEIGHT)) * INT_TYPE.Height
NUM_CHANNELS.Left = (NUM_CHANNELS_START_LEFT * (1 / NUM_CHANNELS_START_WIDTH)) * NUM_CHANNELS.Width
NUM_CHANNELS.Top = (NUM_CHANNELS_START_TOP * (1 / NUM_CHANNELS_START_HEIGHT)) * NUM_CHANNELS.Height
Label1.Left = (LABEL1_START_LEFT * (1 / LABEL1_START_WIDTH)) * Label1.Width
Label1.Top = (LABEL1_START_TOP * (1 / LABEL1_START_HEIGHT)) * Label1.Height
Label2.Left = (LABEL2_START_LEFT * (1 / LABEL2_START_WIDTH)) * Label2.Width
Label2.Top = (LABEL2_START_TOP * (1 / LABEL2_START_HEIGHT)) * Label2.Height
Label3.Left = (LABEL3_START_LEFT * (1 / LABEL3_START_WIDTH)) * Label3.Width
Label3.Top = (LABEL3_START_TOP * (1 / LABEL3_START_HEIGHT)) * Label3.Height
Label4.Left = (LABEL4_START_LEFT * (1 / LABEL4_START_WIDTH)) * Label4.Width
Label4.Top = (LABEL4_START_TOP * (1 / LABEL4_START_HEIGHT)) * Label4.Height
Label5.Left = (LABEL5_START_LEFT * (1 / LABEL5_START_WIDTH)) * Label5.Width
Label5.Top = (LABEL5_START_TOP * (1 / LABEL5_START_HEIGHT)) * Label5.Height
Label6.Left = (LABEL6_START_LEFT * (1 / LABEL6_START_WIDTH)) * Label6.Width
Label6.Top = (LABEL6_START_TOP * (1 / LABEL6_START_HEIGHT)) * Label6.Height
Label7.Left = (LABEL7_START_LEFT * (1 / LABEL7_START_WIDTH)) * Label7.Width
Label7.Top = (LABEL7_START_TOP * (1 / LABEL7_START_HEIGHT)) * Label7.Height
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload RTDX_gridfrm
mnu_Quit_Click
End Sub
Private Sub mnu_Quit_Click()
mnu_Stop_Click
End
End Sub
Private Sub mnu_Start_Click()
' Switch toggle value to false so that toggle command
' can switch it to true
on_off_toggle = False
cmd_Toggle_Click
End Sub
Private Sub mnu_Stop_Click()
' Switch toggle value to true so that toggle command
' can switch it to false
on_off_toggle = True
cmd_Toggle_Click
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 = 0 To (Val(NUM_CHANNELS.Text) - 1)
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!")
mnu_Stop_Click 'Stop program
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 (RTDX_channel(channel_number).type = "R") Then
Do_Read
ElseIf (RTDX_channel(channel_number).type = "W") Then
Do_Write
End If
End If
'increment channel number
channel_number = channel_number + 1
If channel_number > (Val(NUM_CHANNELS.Text) - 1) Then
channel_number = 0 ' reset channel number
End If
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -