06-07-2007 03:30 PM
Public
Sub WriteDigPort(ByVal iPortValue0 As Integer, ByVal iPortValue1 As Integer, ByVal iPortValue2 As Integer, ByVal iPortValue3 As Integer) Dim digitalWriteTask As Task = New Task()Windows.Forms.Cursor.Current = Cursors.WaitCursor
Try ' Create an Digital Output channel and name it. If iPortValue0 <> -1 ThendigitalWriteTask.DOChannels.CreateChannel(
"Dev1/port0", "port0", ChannelLineGrouping.OneChannelForAllLines) Dim writer As DigitalSingleChannelWriter = New DigitalSingleChannelWriter(digitalWriteTask.Stream)writer.WriteSingleSamplePort(
True, Decimal.ToUInt32(iPortValue0)) ElseIf iPortValue1 <> -1 ThendigitalWriteTask.DOChannels.CreateChannel(
"Dev1/port1", "port1", ChannelLineGrouping.OneChannelForAllLines) Dim writer As DigitalSingleChannelWriter = New DigitalSingleChannelWriter(digitalWriteTask.Stream)writer.WriteSingleSamplePort(
True, Decimal.ToUInt32(iPortValue1)) ElseIf iPortValue2 <> -1 ThendigitalWriteTask.DOChannels.CreateChannel(
"Dev1/port2", "port2", ChannelLineGrouping.OneChannelForAllLines) Dim writer As DigitalSingleChannelWriter = New DigitalSingleChannelWriter(digitalWriteTask.Stream)writer.WriteSingleSamplePort(
True, Decimal.ToUInt32(iPortValue2)) ElseIf iPortValue3 <> -1 ThendigitalWriteTask.DOChannels.CreateChannel(
"Dev1/port3", "port3", ChannelLineGrouping.OneChannelForAllLines) Dim writer As DigitalSingleChannelWriter = New DigitalSingleChannelWriter(digitalWriteTask.Stream)writer.WriteSingleSamplePort(
True, Decimal.ToUInt32(iPortValue3)) End If Catch ex As System.ExceptionMessageBox.Show(ex.Message)
FinallySystem.Windows.Forms.Cursor.Current = Cursors.Default
digitalWriteTask.Dispose()
End Try End Sub06-08-2007 03:48 PM
Hi Mr,
The first thing I noticed about your code is that you only specified one of the ports when you created the task. Normally you would specify all three by saying, "digitalWriteTask.DOChannels.CreateChannel("Dev1/port0:2",...)
I recommend that you check out one of the .NET shipping examples to get started writing to digital ports. I'd recommend the example which installs with DAQmx to the following default location:
C:\Program Files\National Instruments\MeasurementStudioVS2005\DotNET\Examples\DAQmx\Digital\Generate Values\WriteDigPort\cs
Let us know how that goes for you.
Thanks,
06-11-2007 07:47 PM
Thanks Luke,
The digitalWriteTask.DOChannels.CreateChannel("Dev1/port0:2",...) part was what I had been missing. Works great now!