📄 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 IfEnd SubPrivate 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 IfEnd SubPrivate Sub Form_Load()Dim TestHelpPath As StringDim 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_ProgEnd SubPrivate 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 SubPrivate Sub Form_Unload(Cancel As Integer) Unload RTDX_gridfrm mnu_Quit_ClickEnd SubPrivate Sub mnu_Quit_Click() mnu_Stop_Click EndEnd SubPrivate Sub mnu_Start_Click() ' Switch toggle value to false so that toggle command ' can switch it to true on_off_toggle = False cmd_Toggle_ClickEnd SubPrivate 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 SubPrivate Sub tmr_Method_Dispatch_Timer()Dim open_chan_incr As IntegerDim 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 IfEnd Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -