URGENT: NEED HELP

Post general discussions on using our drivers to write your own software here
Post Reply
Rebecca

URGENT: NEED HELP

Post by Rebecca »

I am having problems with my DrDaq visual basic project. I Originally had it working but am now getting errors. I have deleted all of the drivers and software and reinstalled everything, I am still getting an error message when i open up the example saying "cannot open DRDaq on LPT1". This is where I got the code from
http://www.comp.lancs.ac.uk/~albrecht/sw/DrDAQ/


Option Explicit

Dim port As Integer 'Used to store port used(1 = lpt1)
Dim opened As Boolean 'boolean value; shows if driver opened

Private Sub chkTimer_Click()
If chkTimer.Value = 1 Then
Timer1.Interval = CInt(mstxt.Text)
Timer1.Enabled = True
Else
Timer1.Enabled = False
End If
End Sub

Private Sub cmdClose_Click()
If opened Then
'close the port
drdaq_close_unit (port)
End If

statustxt.Text = "DrDAQ Driver Closed on LPT" + CStr(port)

cmdOpen.Enabled = True
cmdClose.Enabled = False
cmdRead.Enabled = False
chkTimer.Enabled = False
End Sub

Private Sub cmdOpen_Click()
Dim VNUm As Integer ' Version number
port = Val(txtPortNum) ' Get Port

opened = drdaq_open_unit(port) <> 0 'Open drdaq driver

If opened Then 'Check driver opened ok
VNUm = drdaq_get_driver_version()
statustxt.Text = "DrDAQ Driver Opened on LPT" + CStr(port) + " - Driver Version:" + CStr(VNUm)

' change temp units to C
drdaq_apply_fix 1, 0

cmdOpen.Enabled = False
cmdClose.Enabled = True
cmdRead.Enabled = True
chkTimer.Enabled = True
chkTimer.Value = 1
cmdRead.Default = True

Else 'If driver fails to open...
statustxt.Text = "Cannot open DrDaq on Port LPT" + txtPortNum
End If
End Sub

Private Sub cmdQuit_Click()
If opened Then
' Close down drdaq
drdaq_close_unit port
End If
End
End Sub


Private Sub cmdread_Click()
Dim Value As Single 'Stores ADC count
Dim volts As Integer 'Stores voltage
Dim S As String

If opened Then
'toggle LED ON
drdaq_set_led 1
DoEvents

'Sample from all channels
S = ""

'Channel 2 - Sound Level
Value = drdaq_get_value(2)
soundtxt.Text = Format$(Value / 10, "0.00")

'Channel 3 - Voltage
Value = drdaq_get_value(3)
voltagetxt.Text = Format$(Value, "0")

'Channel 6 - Temperature
Value = drdaq_get_value(6)
temptxt.Text = Format$(Value / 10, "0.00")

'Channel 7 - Light
Value = drdaq_get_value(7)
lighttxt.Text = Format$(Value / 10, "0.0")

'Channel 8 - Ext 1
Value = drdaq_get_value(8)
ext1txt.Text = Format$(Value, "0")

'Channel 9 - Ext 2
Value = drdaq_get_value(9)
ext2txt.Text = Format$(Value, "0")

DoEvents

' toggle led off
drdaq_set_led 0

Else
MsgBox "Port not opened!"
End If
End Sub

Private Sub Form_Load()
' Center Form on screen

Top = (Screen.Height - Height) / 2
Left = (Screen.Width - Width) / 2

statustxt.Text = ""
cmdRead.Enabled = False
cmdClose.Enabled = False
cmdOpen.Enabled = True
chkTimer.Enabled = False
End Sub

Private Sub Form_Terminate()
cmdQuit_Click
End
End Sub

Private Sub Form_Unload(Cancel As Integer)
cmdQuit_Click
End
End Sub

Private Sub mstxt_Change()
If mstxt.Text <> "" Then
On Error GoTo skipConv
If CLng(mstxt.Text) > 0 And CLng(mstxt.Text) < 30000 Then
Timer1.Interval = CInt(mstxt.Text)
If chkTimer.Value = 0 Then Timer1.Enabled = False
End If
End If
skipConv:
End Sub

Private Sub Timer1_Timer()
If opened = True Then cmdread_Click
End Sub

Private Sub txtPortNum_KeyPress(KeyAscii As Integer)
Select Case (KeyAscii)
Case 48 To 57, 8:
KeyAscii = KeyAscii
Case Else:
Beep
KeyAscii = 0
End Select
End Sub

wilba
User
User
Posts: 7
Joined: Wed Nov 30, 2005 11:50 am

Post by wilba »

I get this frequently if you do not close down the port and end you application. Eg press stop in vb. Then try to open it again.

The only remedy i have found so far is to reboot the computer.

William

Michael
Advanced User
Advanced User
Posts: 656
Joined: Thu Jul 07, 2005 12:41 pm
Location: St Neots, Cambridgeshire

Post by Michael »

Hello,

User 'Wilba' is right. You will need to close the port. You must call the close unit function to do this effectively.

Best regards,
Michael
Michael - Tech Support
Pico Technology
Web Support Forum

Rebecca

Help!

Post by Rebecca »

i have tried your solutuions as given but it is stil not working for me. by any chance could you send a piece of code that will open and close the port on the DrDaq and read in a value as i am still unsure whether it is a software or hardware problem,so if i receive a working prgram and it does not work on my pc i will be able to tell it then.

Michael
Advanced User
Advanced User
Posts: 656
Joined: Thu Jul 07, 2005 12:41 pm
Location: St Neots, Cambridgeshire

Post by Michael »

Hello,

Paste this into your code in crucial places and step through each line.
drdaq_close_unit (port)
When you get to the next "close" call, step over if the previous fucntions have worked or step into if the previous portions have failed.

Best regards,
Michael
Michael - Tech Support
Pico Technology
Web Support Forum

Post Reply