private void frmDataDisplay_Load(object sender, EventArgs e) { MccDaq.TriggerType DefaultTrig; InitUL(); // determine the number of analog channels and their capabilities int ChannelType = clsAnalogIO.ANALOGINPUT; NumAIChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out ADResolution, out Range, out LowChan, out DefaultTrig); if (NumAIChans == 0) { lblAcqStat.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input channels."; lblAcqStat.ForeColor = Color.Red; cmdStartAcq.Visible = false; cmdStopConvert.Visible = true; cmdStopConvert.Enabled = true; } else { lblAcqStat.Text = "Board " + DaqBoard.BoardNum.ToString() + " collecting analog data on two" + " channels using FileAInScan with Range set to " + Range.ToString() + "."; } }
private void frmAOut_Load(object sender, EventArgs e) { MccDaq.TriggerType DefaultTrig; InitUL(); // determine the number of analog channels and their capabilities int ChannelType = clsAnalogIO.ANALOGOUTPUT; NumAoChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out DAResolution, out Range, out LowChan, out DefaultTrig); if (NumAoChans == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog output channels."; this.btnSendData.Enabled = false; this.btnUpdateDACs.Enabled = false; } else { if (NumAoChans > 4) { NumAoChans = 4; } MaxChan = LowChan + NumAoChans - 1; lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " updating analog data on up to " + NumAoChans.ToString() + " channels using AOut with Range set to " + Range.ToString() + "."; } }
private void frmSendAData_Load(object sender, EventArgs e) { int LowChan; int ChannelType; MccDaq.TriggerType DefaultTrig; InitUL(); // determine the number of analog channels and their capabilities ChannelType = clsAnalogIO.ANALOGOUTPUT; NumAOChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out DAResolution, out Range, out LowChan, out DefaultTrig); if (NumAOChans == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input channels."; UpdateButton.Enabled = false; txtVoltsToSet.Enabled = false; } else { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " generating analog output on channel 0 using cbAOut()" + " and Range of " + Range.ToString() + "."; HighChan = LowChan + NumAOChans - 1; } }
private void frmDataDisplay_Load(object sender, EventArgs e) { InitUL(); // determine the number of analog channels and their capabilities int ChannelType = clsAnalogIO.ATRIGIN; NumAIChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out ADResolution, out Range, out LowChan, out DefaultTrig); if (NumAIChans == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input or it does not support analog trigger."; cmdStart.Enabled = false; txtHighChan.Enabled = false; } else { // Check the resolution of the A/D data and allocate memory accordingly if (ADResolution > 16) { // set aside memory to hold high resolution data ADData32 = new uint[NumPoints]; MemHandle = MccDaq.MccService.WinBufAlloc32Ex(NumPoints); } else { // set aside memory to hold 16-bit data ADData = new ushort[NumPoints]; MemHandle = MccDaq.MccService.WinBufAllocEx(NumPoints); } if (MemHandle == IntPtr.Zero) { cmdStart.Enabled = false; NumAIChans = 0; } if (NumAIChans > 8) { NumAIChans = 8; //limit to 8 for display } MaxChan = LowChan + NumAIChans - 1; lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " collecting analog data on up to " + NumAIChans.ToString() + " channels using AInScan with Range set to " + Range.ToString() + "."; } }
private void frmSendAData_Load(object sender, EventArgs e) { int ChannelType; MccDaq.TriggerType DefaultTrig; InitUL(); // determine the number of analog channels and their capabilities ChannelType = clsAnalogIO.ANALOGOUTPUT; NumAOChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out DAResolution, out Range, out LowChan, out DefaultTrig); if (NumAOChans == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input channels."; cmdSendData.Enabled = false; } else { if (NumAOChans > 4) { NumAOChans = 4; } NumPoints = NumAOChans; MemHandle = MccDaq.MccService.WinBufAllocEx(NumPoints); if (MemHandle == IntPtr.Zero) { lblInstruction.Text = "Failure creating memory buffer."; cmdSendData.Enabled = false; return; } DAData = (new ushort[NumPoints]); int ValueStep, FSCount; ushort StepCount, i; FSCount = (int)Math.Pow(2, DAResolution); ValueStep = FSCount / (NumAOChans + 1); for (i = 0; i < NumPoints; i++) { StepCount = (ushort)(ValueStep * (i + 1)); DAData[i] = StepCount; } FirstPoint = 0; ULStat = MccDaq.MccService.WinArrayToBuf (DAData, MemHandle, FirstPoint, NumPoints); lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString("0") + " generating analog output on up to " + NumAOChans.ToString("0") + " channels using cbAOutScan() " + " at a Range of " + Range.ToString() + "."; HighChan = LowChan + NumAOChans - 1; } }
private void frmDataDisplay_Load(object sender, EventArgs e) { MccDaq.TriggerType DefaultTrig; InitUL(); // determine the number of analog channels and their capabilities int ChannelType = clsAnalogIO.ANALOGINPUT; NumAIChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out ADResolution, out Range, out LowChan, out DefaultTrig); if (NumAIChans == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input channels."; cmdStartConvert.Enabled = false; txtHighChan.Enabled = false; } else if (ADResolution > 12) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " resolution is greater than 12-bits. This sample applies " + "only to 12-bit devices that contain composite data."; cmdStartConvert.Enabled = false; txtHighChan.Enabled = false; } else { // set aside memory to hold 16-bit data ADData = new ushort[NumPoints]; ConvData = new ushort[NumPoints]; MemHandle = MccDaq.MccService.WinBufAllocEx(NumPoints); if (MemHandle == IntPtr.Zero) { cmdStartConvert.Enabled = false; NumAIChans = 0; } if (NumAIChans > 5) { NumAIChans = 5; } MaxChan = LowChan + NumAIChans - 1; lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " collecting analog data on up to " + NumAIChans.ToString() + " channels using AInScan with Range set to " + Range.ToString() + ". For devices that store composite data, this sample separates " + "channel tags from data manually. Most new designs do not support this."; } }
private void frmAnalogTrig_Load(object sender, EventArgs e) { MccDaq.TriggerType DefaultTrig; InitUL(); // determine the number of analog channels and their capabilities int ChannelType = clsAnalogIO.ANALOGINPUT; NumAIChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out ADResolution, out Range, out LowChan, out DefaultTrig); if (NumAIChans == 0) { lblWarn.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input channels."; } else if (ADResolution > 16) { lblWarn.Text = "Board " + DaqBoard.BoardNum.ToString() + " resolution is greater than 16-bit. The ATrig function " + "does not support high resolution devices."; } else { lblWarn.Text = "Board " + DaqBoard.BoardNum.ToString() + " collecting analog data meeting trigger criterea " + " with input Range set to " + Range.ToString() + "."; HighChan = LowChan + NumAIChans - 1; lblTriggerChan.Text = "Enter a channel (" + LowChan.ToString() + " - " + HighChan.ToString() + "):"; UpdateTrigCriterea(); cmdStartConvert.Enabled = true; this.txtShowChannel.Enabled = true; this.txtShowTrigSet.Enabled = true; this.chkNegTrigger.Enabled = true; this.chkPosTrigger.Enabled = true; } }
private void frmDataDisplay_Load(object eventSender, System.EventArgs eventArgs) { int LowChan; MccDaq.TriggerType DefaultTrig; InitUL(); // determine the number of analog channels and their capabilities int ChannelType = clsAnalogIO.ANALOGINPUT; NumAIChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out ADResolution, out Range, out LowChan, out DefaultTrig); if (NumAIChans == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input channels."; cmdStartConvert.Enabled = false; txtNumChan.Enabled = false; } else { string CurFunc = "MccBoard.AIn"; if (ADResolution > 16) { CurFunc = "MccBoard.AIn32"; } lblDemoFunction.Text = "Demonstration of " + CurFunc; lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " collecting analog data using " + CurFunc + " and Range of " + Range.ToString() + "."; HighChan = LowChan + NumAIChans - 1; this.lblChanPrompt.Text = "Enter a channel (" + LowChan.ToString() + " - " + HighChan.ToString() + "):"; } }
private void frmStatusDisplay_Load(System.Object eventSender, System.EventArgs eventArgs) { int NumCntrs, NumPorts, CounterNum; int FirstBit; int ProgAbility = 0; int NumBits = 0; MccDaq.DigitalPortType PortNum = DigitalPortType.AuxPort; MccDaq.DigitalPortDirection Direction; MccDaq.ErrorInfo ULStat; MccDaq.TriggerType DefaultTrig; InitUL(); NumCntrs = 0; NumPorts = 0; // determine the number of analog, digital, and counter channels and their capabilities int ChannelType = clsAnalogIO.ANALOGINPUT; NumAIChans = AIOProps.FindAnalogChansOfType(DaqBoard, ChannelType, out ADResolution, out Range, out LowChan, out DefaultTrig); ChannelType = DigitalIO.clsDigitalIO.PORTIN; if (!clsErrorDefs.GeneralError) { NumPorts = DioProps.FindPortsOfType(DaqBoard, ChannelType, out ProgAbility, out PortNum, out NumBits, out FirstBit); } ChannelType = clsCounters.CTRSCAN; if (!clsErrorDefs.GeneralError) { NumCntrs = CtrProps.FindCountersOfType(DaqBoard, ChannelType, out CounterNum); } if (NumCntrs == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " has no counter devices."; cmdStartBgnd.Enabled = false; } else if (NumAIChans == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " does not have analog input channels."; cmdStartBgnd.Enabled = false; } else if (NumPorts == 0) { lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " has no digital devices."; cmdStartBgnd.Enabled = false; } else { cmdStartBgnd.Enabled = true; ADData = new ushort[NumElements]; ChanArray = new short[ChanCount]; ChanTypeArray = new MccDaq.ChannelType[ChanCount]; GainArray = new MccDaq.Range[ChanCount]; MemHandle = MccDaq.MccService.WinBufAllocEx(NumElements); if (MemHandle == IntPtr.Zero) { this.cmdStartBgnd.Enabled = false; NumAIChans = 0; } //load the arrays with values ChanArray[0] = 0; ChanTypeArray[0] = MccDaq.ChannelType.Analog; GainArray[0] = Range; ChanArray[1] = System.Convert.ToInt16(PortNum); ChanTypeArray[1] = MccDaq.ChannelType.Digital8; if (NumBits == 16) { ChanTypeArray[1] = MccDaq.ChannelType.Digital16; } GainArray[1] = MccDaq.Range.NotUsed; ChanArray[2] = 0; ChanTypeArray[2] = MccDaq.ChannelType.Ctr32Low; GainArray[2] = MccDaq.Range.NotUsed; ChanArray[3] = 0; ChanTypeArray[3] = MccDaq.ChannelType.Ctr32High; GainArray[3] = MccDaq.Range.NotUsed; if (ProgAbility == -1) { //configure programmable port for digital input Direction = MccDaq.DigitalPortDirection.DigitalIn; ULStat = DaqBoard.DConfigPort(PortNum, Direction); } ULStat = DaqBoard.CConfigScan(0, MccDaq.CounterMode.Bit16, MccDaq.CounterDebounceTime.DebounceNone, MccDaq.CounterDebounceMode.TriggerAfterStable, MccDaq.CounterEdgeDetection.FallingEdge, MccDaq.CounterTickSize.Tick20833pt3ns, 0); lblInstruction.Text = "Board " + DaqBoard.BoardNum.ToString() + " collecting analog, digital, and counter data " + " using DaqInScan with Range set to " + Range.ToString() + "."; } }
private void cmdStartAcq_Click(object eventSender, System.EventArgs eventArgs) /* Handles cmdStartAcq.Click */ { cmdStartAcq.Enabled = false; cmdStartAcq.Visible = false; cmdStopConvert.Enabled = true; cmdStopConvert.Visible = true; // Parameters: // LowChan :first A/D channel of the scan // HighChan :last A/D channel of the scan // Count :the total number of A/D samples to collect // Rate :per channel sampling rate ((samples per second) per channel) // Range :the gain for the board // FileName :the filename for the collected data values // Options :data collection options int Count = NumPoints; string FileName = txtFileName.Text; // a full path may be required here int Rate = 50000; int LowChan = 0; int HighChan = 1; MccDaq.ScanOptions Options = MccDaq.ScanOptions.Default; MccDaq.Range Range = MccDaq.Range.Bip5Volts; // set the range string DataCount = NumPoints.ToString("0"); lblAcqStat.Text = "Collecting " + DataCount + " data points"; lblShowRate.Text = Rate.ToString("0"); lblShowLoChan.Text = LowChan.ToString("0"); lblShowHiChan.Text = HighChan.ToString("0"); lblShowOptions.Text = Options.ToString(); lblShowGain.Text = Range.ToString(); lblShowFile.Text = FileName; lblShowCount.Text = Count.ToString("0"); lblShowPreTrig.Text = "Not Applicable"; Application.DoEvents(); // Collect the values with Collect the values by calling MccDaq.MccBoard.FileAInScan() MccDaq.ErrorInfo ULStat = DaqBoard.FileAInScan(LowChan, HighChan, Count, ref Rate, Range, FileName, Options); if (ULStat.Value == MccDaq.ErrorInfo.ErrorCode.BadFileName) { MessageBox.Show("Enter the name of the file to create in text box.", "Bad File Name", 0); cmdStopConvert.Enabled = false; cmdStopConvert.Visible = false; cmdStartAcq.Enabled = true; cmdStartAcq.Visible = true; txtFileName.Focus(); return; } // show how many data points were collected short FileLowChan; short FileHighChan; int TotalCount; int PretrigCount; ULStat = MccDaq.MccService.FileGetInfo(FileName, out FileLowChan, out FileHighChan, out PretrigCount, out TotalCount, out Rate, out Range); lblReadRate.Text = Rate.ToString("0"); lblReadLoChan.Text = FileLowChan.ToString("0"); lblReadHiChan.Text = FileHighChan.ToString("0"); lblReadOptions.Text = Options.ToString(); lblReadGain.Text = Range.ToString(); lblReadFile.Text = FileName; lblReadTotal.Text = TotalCount.ToString("0"); lblReadPreTrig.Text = PretrigCount.ToString("0"); }