USB-1608G CSharp (C#) Single Point Measurement
The following example demonstrates how to acquire a fixed number of samples. The complete project is attached to the article and was created with Visual Studio 2008 using CSharp. Compiling and execution is quick as there is minimal Windows overhead and associated code.
Disclaimer: The attached Code or Example is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system, or for use in hazardous environments. You assume all risks for use of the Code or Example.
using System; using MccDaq; //added to project references namespace AInSinglePoint { class Program { public const string DEVICE = "1608G"; static void Main(string[] args) { MccDaq.ErrorInfo RetVal; int BoardNum = 0; int DeviceChannels = 0; short DataVal; Single EngrUnits; BoardNum = GetBoardNum(DEVICE); if (BoardNum == -1) Console.WriteLine("No USB-{0} detected!", DEVICE); else { MccDaq.MccBoard daq = new MccDaq.MccBoard(BoardNum); daq.BoardConfig.GetNumAdChans(out DeviceChannels); if (DeviceChannels > 8) Console.WriteLine("Single-Ended Channels"); else Console.WriteLine("Differentially-Ended Channels"); RetVal = daq.AIn(0, Range.Bip10Volts, out DataVal); if (RetVal.Value > 0) Console.WriteLine(RetVal.Message); RetVal = daq.ToEngUnits(Range.Bip10Volts, DataVal, out EngrUnits); if (RetVal.Value > 0) Console.WriteLine(RetVal.Message); //diy (do it yourself) conversion = ( 2 x range / 65536 ) * ( 32768 + A/D value ) //Single res = 20.0f / 65536; //Single myVal = (32768 + DataVal) * res; Console.WriteLine("Channel 0 =\t{0} counts", DataVal.ToString()); Console.WriteLine("Channel 0 =\t{0} enginnering units", EngrUnits.ToString("0.000")); WaitForKey(); } } public static int GetBoardNum(string dev) { for (int BoardNum = 0; BoardNum < 99; BoardNum++) { MccDaq.MccBoard daq = new MccDaq.MccBoard(BoardNum); if (daq.BoardName.Contains(dev)) { Console.WriteLine("USB-{0} board number = {1}", dev, BoardNum.ToString()); daq.FlashLED(); return BoardNum; } } return -1; } public static void WaitForKey() { Console.WriteLine("\nPress <SpaceBar> to continue..."); System.ConsoleKeyInfo cki; do { cki = Console.ReadKey(); } while (cki.Key != ConsoleKey.Spacebar); } } }
Attachments
AInSinglePoint.zip