VERSION 5.00 Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx" Begin VB.Form MainForm Caption = "Form1" ClientHeight = 5415 ClientLeft = 60 ClientTop = 345 ClientWidth = 11895 LinkTopic = "Form1" ScaleHeight = 5415 ScaleWidth = 11895 StartUpPosition = 2 'CenterScreen Begin VB.CommandButton ConfirmButton Caption = "Confirm Selection" Height = 375 Left = 4680 TabIndex = 2 Top = 120 Width = 1575 End Begin VB.ComboBox RangeCombo Height = 315 ItemData = "MainForm.frx":0000 Left = 2400 List = "MainForm.frx":0010 TabIndex = 1 Text = "Select an output Range" Top = 120 Width = 2175 End Begin VB.Frame DACFrame1 Caption = "DACs 8 through 15 in this column. 8 is at the top." Height = 4215 Left = 6000 TabIndex = 20 Top = 600 Visible = 0 'False Width = 5895 Begin MSComctlLib.Slider CountSlider Height = 495 Index = 8 Left = 120 TabIndex = 21 Top = 240 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 9 Left = 120 TabIndex = 23 Top = 720 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 10 Left = 120 TabIndex = 25 Top = 1200 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 11 Left = 120 TabIndex = 27 Top = 1680 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 12 Left = 120 TabIndex = 29 Top = 2160 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 13 Left = 120 TabIndex = 31 Top = 2640 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 14 Left = 120 TabIndex = 33 Top = 3120 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 15 Left = 120 TabIndex = 35 Top = 3600 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 9 Left = 5160 TabIndex = 24 Top = 840 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 8 Left = 5160 TabIndex = 22 Top = 360 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 10 Left = 5160 TabIndex = 26 Top = 1320 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 11 Left = 5160 TabIndex = 28 Top = 1800 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 12 Left = 5160 TabIndex = 30 Top = 2280 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 13 Left = 5160 TabIndex = 32 Top = 2760 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 14 Left = 5160 TabIndex = 34 Top = 3240 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 15 Left = 5160 TabIndex = 36 Top = 3720 Width = 615 End End Begin VB.Frame DACFrame0 Caption = "DACs 0 through 7 in this column. 0 is at the top." Height = 4215 Left = 0 TabIndex = 3 Top = 600 Visible = 0 'False Width = 5895 Begin MSComctlLib.Slider CountSlider Height = 495 Index = 0 Left = 120 TabIndex = 4 Top = 240 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 1 Left = 120 TabIndex = 6 Top = 720 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 2 Left = 120 TabIndex = 8 Top = 1200 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 3 Left = 120 TabIndex = 10 Top = 1680 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 4 Left = 120 TabIndex = 12 Top = 2160 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 5 Left = 120 TabIndex = 14 Top = 2640 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 6 Left = 120 TabIndex = 16 Top = 3120 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin MSComctlLib.Slider CountSlider Height = 495 Index = 7 Left = 120 TabIndex = 18 Top = 3600 Width = 4935 _ExtentX = 8705 _ExtentY = 873 _Version = 393216 LargeChange = 256 Max = 65535 TickFrequency = 4096 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 7 Left = 5160 TabIndex = 19 Top = 3720 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 6 Left = 5160 TabIndex = 17 Top = 3240 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 5 Left = 5160 TabIndex = 15 Top = 2760 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 4 Left = 5160 TabIndex = 13 Top = 2280 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 3 Left = 5160 TabIndex = 11 Top = 1800 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 2 Left = 5160 TabIndex = 9 Top = 1320 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 0 Left = 5160 TabIndex = 5 Top = 360 Width = 615 End Begin VB.Label CountLabel Caption = "0000" Height = 255 Index = 1 Left = 5160 TabIndex = 7 Top = 840 Width = 615 End End Begin VB.CheckBox UpdateCheck Caption = "Update each DAC individually as you change it (un-check for simultaneous mode)." Height = 375 Left = 1440 TabIndex = 38 Top = 4920 Value = 1 'Checked Width = 10335 End Begin VB.CommandButton UpdateButton Caption = "&Update" Enabled = 0 'False Height = 375 Left = 120 TabIndex = 37 Top = 4920 Width = 1215 End Begin VB.Label Label1 Alignment = 1 'Right Justify Caption = "Range" Height = 255 Left = 1080 TabIndex = 0 Top = 120 Width = 1215 End End Attribute VB_Name = "MainForm" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Private Type TDACPoint Channel As Integer Data As Integer End Type Dim DeviceIndex As Long 'Compensates for the lack of unsigned types and range-check problems. Private Function As16(I32 As Long) As Integer Dim Result As Integer Result = I32 And &H7FFF If I32 And &H8000& Then Result = Result Or &H8000 As16 = Result End Function Private Sub ConfirmButton_Click() If DACSetBoardRange(DeviceIndex, RangeCombo.ListIndex) = 0 Then ConfirmButton.Caption = "Confirmed" DACFrame0.Visible = True DACFrame1.Visible = True ConfirmButton.Enabled = False End If End Sub Private Sub CountSlider_Change(Index As Integer) Dim Counts As Long Dim Buf As String Counts = CountSlider(Index).Value Buf = Hex$(Counts) Buf = String$(4 - Len(Buf), "0") + Buf CountLabel(Index).Caption = Buf If UpdateCheck.Value Then DACDirect DeviceIndex, Index, As16(Counts) Else CountLabel(Index).BackColor = &H8000& CountLabel(Index).ForeColor = &HFFFFFF End If End Sub Private Sub CountSlider_Scroll(Index As Integer) CountSlider_Change Index End Sub Private Sub Form_Load() Dim PID As Long, Status As Long, I As Long DeviceIndex = diOnly Status = QueryDeviceInfo(DeviceIndex, PID, 0, "", 0, 0) If (Status <> 0) Or (PID < &H8070&) Or (PID > &H807F&) Then DetectForm.Show vbModal, Me If DetectForm.DetectOK Then DeviceIndex = DetectForm.DeviceIndex Unload DetectForm QueryDeviceInfo DeviceIndex, PID, 0, "", 0, 0 Else Unload DetectForm Unload Me Exit Sub End If End If For I = 0 To 15 DACDirect DeviceIndex, I, 0 Next DACSetBoardRange DeviceIndex, 0 'Turn on the DACs. End Sub Private Sub UpdateButton_Click() Dim Changes(0 To 15) As TDACPoint Dim I As Long For I = 0 To 15 Changes(I).Channel = I Changes(I).Data = As16(CountSlider(I).Value) Next DACMultiDirect DeviceIndex, Changes(0), 2 For I = 0 To 15 CountLabel(I).BackColor = BackColor CountLabel(I).ForeColor = ForeColor Next End Sub Private Sub UpdateCheck_Click() If UpdateCheck.Value Then UpdateButton_Click UpdateButton.Enabled = Not UpdateCheck.Value End Sub