Public Class Form1
Declare Function CreateFile Lib "coredll.dll" Alias "CreateFile" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As IntPtr, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As IntPtr) As IntPtr
Declare Function DeviceIoControl Lib "coredll.dll" Alias "DeviceIoControl" (ByVal hDevice As System.IntPtr, ByVal dwIoControlCode As Integer, ByVal lpInBuffer() As Byte, ByVal nInBufferSize As Integer, ByVal lpOutBuffer() As Byte, ByVal nOutBufferSize As Integer, ByVal lpBytesReturned As Integer, ByVal lpOverlapped As System.IntPtr) As Boolean
Declare Function CloseHandle Lib "coredll.dll" Alias "CloseHandle" (ByVal hDevice As System.IntPtr) As Boolean
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Const INVALID_HANDLE_VALUE = -1
Const ADC_CH0 = 0
Const ADC_CH1 = 1
Const ADC_CH2 = 2
Const ADC_CH3 = 3
Private hPort As Integer
Private Function getAdc(ByVal ch As UInteger) As String
Dim rBuf(4) As Byte
Dim sBuf() As Byte = {0}
Dim rLen, rOutput As UInteger
If (hPort <> INVALID_HANDLE_VALUE) Then
DeviceIoControl(hPort, ch, Nothing, 0, rBuf, rLen, 0, IntPtr.Zero)
rOutput = BitConverter.ToInt32(rBuf, 0)
End If
getAdc = rOutput.ToString()
End Function
Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick
textBox1.Text = getAdc(ADC_CH0)
textBox2.Text = getAdc(ADC_CH1)
textBox3.Text = getAdc(ADC_CH2)
textBox4.Text = getAdc(ADC_CH3)
End Sub
Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
timer1.Enabled = True
End Sub
Private Sub cmdStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStop.Click
timer1.Enabled = False
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
hPort = CreateFile("ADC1:", &HC0000000, 0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero)
If (hPort = INVALID_HANDLE_VALUE) Then
MsgBox("Open ADC1 Driver Fail")
End If
End Sub
Private Sub Form1_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If (hPort <> INVALID_HANDLE_VALUE) Then
CloseHandle(hPort)
End If
End Sub
Private Sub textBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles textBox1.TextChanged
End Sub
End Class