国产性一乱一性一伧的解决方法,国产一区影视,日韩欧美国产亚洲,日韩av在线播放不卡,国产69精品久久久久孕妇大杂乱 ,亚洲国产一,97国产精品视频,波多野结无码高清中文
君億道科技聯(lián)系電話:0755-26830682

公司新聞

最全面及時(shí)的公司資訊、企業(yè)動(dòng)態(tài)

C# USB-2416 熱電偶示例

來源君億道

以下程序從USB-2416連續(xù)獲取數(shù)據(jù)。在采集開始之前,它會(huì)進(jìn)一步檢查以確保 InstaCal 用于配置通道的溫度和電壓 - 請參閱代碼中的注釋。將設(shè)備字符串修改為 2408 該程序應(yīng)該可以與USB-2408 一起使用,因?yàn)樗哂邢嗤挠布O(shè)計(jì)。

 

要訪問 MccDaq API,請?zhí)砑訉?span> MccDaq 對象的引用。添加引用通常是通過右鍵單擊項(xiàng)目 [在項(xiàng)目瀏覽器下] 并選擇添加引用來完成的。完整的項(xiàng)目附在文章中,是使用 CSharp 使用 Visual Studio 2008 創(chuàng)建的。編譯和執(zhí)行速度很快,因?yàn)?span> Windows 開銷和相關(guān)代碼最少。要重新創(chuàng)建項(xiàng)目,請使用 Visual Studio File->New Project,選擇 Visual C# 并選擇 Console Application。創(chuàng)建新項(xiàng)目并添加對 McDaq Dot Net 組件的引用。最簡單的方法是在 Project Explorer 中用鼠標(biāo)右鍵單擊該項(xiàng)目并選擇 Add Reference。從 NET 列表中選擇 McDaq。當(dāng)然,這假設(shè)您已經(jīng)安裝了 InstaCal 軟件。

 

雖然下面沒有顯示,但添加了一些方便的函數(shù),例如 IsErrorGetBoardNumDisplayDataCreateFileHeader WaitForKey。要查看所有功能,請通過解壓縮底部的 zip 文件下載完整的 Visual Studio 2008 項(xiàng)目。

 

IsError 函數(shù)檢查 ErrorInfo 對象中的錯(cuò)誤編號,如果不是零則顯示錯(cuò)誤消息。GetBoardNum 函數(shù)搜索與標(biāo)識字符串匹配的設(shè)備。CreateFileHeader 將采集信息寫入輸出文件的開頭。顯示數(shù)據(jù)將數(shù)據(jù)寫入文件和控制臺(tái)屏幕。而 WaitForKey 就是這樣做的 - 等待某人按下空格鍵。

 

免責(zé)聲明:

隨附的代碼或示例按原樣提供。它尚未作為產(chǎn)品進(jìn)行測試或驗(yàn)證,未在部署的應(yīng)用程序或系統(tǒng)中使用,或在危險(xiǎn)環(huán)境中使用。您承擔(dān)使用代碼或示例的所有風(fēng)險(xiǎn)。

 

使用系統(tǒng);

使用 System.Runtime.InteropServices;

using MccDaq;//項(xiàng)目必須引用MccDaq

使用 System.IO

 

命名空間溫度電壓讀取背景

{

    課程計(jì)劃

    {

        公共常量 int CHANCOUNT = 4;

        公共常量 int FIRSTCHANNEL = 0;

        public const int LASTCHANNEL = 3;

        公共常量 int 采樣率 = 1;

        public const int BUFFERSIZE = CHANCOUNT * 100;

 

        //此程序適用于USB-2408USB-2416。取消注釋適當(dāng)?shù)淖址?/p>

        public const string DEVICE = " USB-2416 ";

        //public const string DEVICE = " USB-2408 ";

 

 

        公共靜態(tài) StreamWriter fStream;

 

 

        static void Main(string[] args)

        {

            //項(xiàng)目必須引用MccDaq

            McDaq.ErrorInfo RetVal;

            int BoardNum = 0;

            整數(shù)率 = 采樣率;

 

            BoardNum = GetBoardNum(DEVICE);

 

            if (BoardNum == -1)

            {

                Console.WriteLine("未檢測到{0}", DEVICE);

                等待鍵();

                返回;

            }

 

            MccBoard daq = MccDaq.MccBoard(BoardNum);

 

            IntPtr 緩沖區(qū) = MccService.ScaledWinBufAllocEx(BUFFERSIZE);

 

            if (buffer == IntPtr.Zero)

            {

                Console.WriteLine("內(nèi)存句柄錯(cuò)誤");

                等待鍵();

                返回;

            }

 

            daq.AInputMode(AInputMode.Differential);

            daq.BoardConfig.SetDetectOpenTc(1);

            daq.BoardConfig.SetTempScale(TempScale.Fahrenheit);

  

            //K型配置TC通道

            for (int Channel = 0; Channel < CHANCOUNT; Channel++)

            {

                daq.BoardConfig.SetAIChanType(Channel, AIChanType.Thermocople);

                daq.BoardConfig.SetChanTcType(Channel, TcType.K);

                //設(shè)置通道濾波器為60Hz

                daq.BoardConfig.SetAdDataRate(Channel, 60);

 

            }

           

            //使用TC輸入時(shí)忽略范圍參數(shù)

            RetVal = daq.AInScan(FIRSTCHANNEL,

                                    上一個(gè)頻道,

                                    緩沖區(qū)大小,

                                    參考率,

                                    Range.Bip10Volts,

                                    緩沖,

                                    ScanOptions.Background | ScanOptions.ScaleData | ScanOptions.Continuous

                                );

 

            IsError(RetVal);

            //創(chuàng)建數(shù)據(jù)文件

            fStream = new StreamWriter(@"C:\Users\Public\Documents\DataFile.asc");

            創(chuàng)建文件頭();//將基本信息寫入文件的開頭

 

            整數(shù)計(jì)數(shù) = 0;

            整數(shù)索引 = 0;

            短數(shù)據(jù)狀態(tài);

            double[] temps = new double[BUFFERSIZE];

            int LastIndex = 0;

            System.ConsoleKeyInfo cki = new System.ConsoleKeyInfo();

 

            //循環(huán)直到按鍵

           

            {

                RetVal = daq.GetStatus(out daqStatus, out Count, out Index, FunctionType.AiFunction);

                如果(索引 > 最后索引)

                {

                        RetVal = MccService.ScaledWinBufToArray(buffer, temps, Index, CHANCOUNT);

 

                        DisplayData(temps, 1);

                        LastIndex = 索引;

                }

            } while (!Console.KeyAvailable);

 

            cki = Console.ReadKey();

 

            //將所有緩沖數(shù)據(jù)刷新到磁盤

            fStream.Close();

 

            //停止獲取

            RetVal = daq.StopBackground(FunctionType.AiFunction);

 

            //釋放內(nèi)存

            MccService.WinBufFreeEx(buffer);

 

            等待鍵();

 

 

        }

        /**************************************** 檢查錯(cuò)誤 *********** **************************************/

        public static int IsError(ErrorInfo e)

        {

            如果 (e.Value != 0)

            {

                if (e.Value == ErrorInfo.ErrorCode.BadRate)

                    Console.WriteLine("糟糕的采樣率!運(yùn)行 InstaCal 并提高數(shù)據(jù)率或降低采樣率");

                別的

                    Console.WriteLine(e.Message);

                等待鍵();

                返回 1

            }

            返回0

        }

        /************************************ 查找設(shè)備 *********** ************************************/

        public static int GetBoardNum(string dev)

        {

 

            McDaq.DaqDeviceManager.IgnoreInstaCal();

            MccDaq.DaqDeviceDescriptor[]inventory = MccDaq.DaqDeviceManager.GetDaqDeviceInventory(MccDaq.DaqDeviceInterface.Any);

            int DevicesFound =inventory.Length;

            如果(設(shè)備發(fā)現(xiàn) > 0

            {

                for (int boardNum = 0; boardNum < DevicesFound; boardNum++)

                {

 

                    嘗試

                    {

 

                        if (inventory[boardNum].ProductName.Contains(dev))

                        {

                            MccDaq.MccBoard daqBoard = MccDaq.DaqDeviceManager.CreateDaqDevice(boardNum,inventory[boardNum]);

                            Console.WriteLine("產(chǎn)品名稱:{0}",inventory[boardNum].ProductName);

                            Console.WriteLine("設(shè)備類型# : {0}",inventory[boardNum].ProductID);

                            Console.WriteLine("Serial # : {0}",inventory[boardNum].UniqueID);

                            返回板號;

                           

                        }

                    }

                    捕獲(ULException ule

                    {

                        Console.WriteLine("發(fā)生錯(cuò)誤:" + ule.Message);

                    }

                }

            }

            返回-1

        }

        /***************************** 等待空格鍵按鍵 **************** ********************/

        public static void WaitForKey()

        {

            Console.WriteLine("\n <SpaceBar> 繼續(xù)...");

 

            System.ConsoleKeyInfo cki;

           

            {

                cki = Console.ReadKey();

            } while (cki.Key != ConsoleKey.Spacebar);

        }

        /************************************ 顯示數(shù)據(jù) *********** **************************************/

        public static void DisplayData(double[] datArray, int rows)

        {

            //將數(shù)據(jù)寫入屏幕和文件

            int i = 0;

 

            for (int row = 0; row < rows; row++)

            {

                for (int c = 0; c < CHANCOUNT; c++)

                {

                    Console.Write("{0}\t", datArray[i].ToString("0.0000").PadLeft(10));

                    fStream.Write("{0}\t", datArray[i].ToString("0.0000"));

                    ++;

                }

                Console.Write("\r\n");

                fStream.Write("\r\n");

            }

            fStream.Flush();

        }

        /************************************ 創(chuàng)建文件頭********** ****************************************/

 

        public static void CreateFileHeaders()

        {

            Console.WriteLine("此程序從 {1}\n 讀取通道 {0}", FIRSTCHANNEL, LASTCHANNEL);

 

            //'''''''''''''''''''''創(chuàng)建文本文件頭字符串''''''''''''''''

            字符串[] hdr = 新字符串[5];

            hdr[0] = "錄制日期:{0}";

            hdr[1] = "塊長度:{0}";

            hdr[2] = "增量:{0} 秒。";

            hdr[3] = "通道數(shù):{0}";

 

            //'''''''''''''''''''''' 構(gòu)建列標(biāo)題字符串'''''''''''''''''''

 

            for (int j = 0; j < CHANCOUNT; j++)

            {

                hdr[4] = hdr[4] + String.Format("In{0} [deg]", j);

                hdr[4] = hdr[4] + "\t";

 

            }

            hdr[4].Trim('\t');

 

            //'''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''

            DateTime MyDate = DateTime.Now;

 

            fStream.WriteLine(hdr[0], MyDate);

            fStream.WriteLine(hdr[1], 1);

            fStream.WriteLine(hdr[2], (1 / SAMPLERATE));

            fStream.WriteLine(hdr[3], CHANCOUNT);

            fStream.WriteLine(hdr[4]);

 

            Console.WriteLine(hdr[0], MyDate);

            Console.WriteLine(hdr[1], 1);

            Console.WriteLine(hdr[2], (1 / SAMPLERATE));

            Console.WriteLine(hdr[3], CHANCOUNT);

            Console.WriteLine(hdr[4]);

 

        }

 

        /***************************************************** ********************************************/

 

    }

}


主營:電流探頭,電壓探頭,羅氏線圈,電流傳感器,高壓探頭,電流互感器,功率電子測量產(chǎn)品
粵ICP備14003389號深圳君億道科技有限公司 © http://www.fengshengzhitongche.com
主站蜘蛛池模板: 濮阳县| 黄浦区| 平塘县| 龙井市| 璧山县| 密云县| 镇安县| 运城市| 北辰区| 伊春市| 化州市| 乐至县| 望奎县| 林口县| 上虞市| 漾濞| 洮南市| 景宁| 嘉黎县| 山丹县| 定结县| 桑植县| 翁牛特旗| 育儿| 耒阳市| 乌拉特前旗| 甘南县| 沈阳市| 枣阳市| 北京市| 资中县| 五原县| 简阳市| 象山县| 正蓝旗| 尚义县| 道真| 麦盖提县| 炎陵县| 左权县| 普宁市| 团风县| 昆明市| 基隆市| 资兴市| 宜兰市| 股票| 奉化市| 临泉县| 龙门县| 扎囊县| 湄潭县| 永仁县| 曲靖市| 湖南省| 峡江县| 乌审旗| 澄城县| 武穴市| 深泽县| 宜宾县| 莆田市| 仲巴县| 墨江| 琼结县| 铁力市| 尉氏县| 五家渠市| 依兰县| 临邑县| 胶州市| 孟州市| 黄平县| 彭州市| 永城市| 乌拉特后旗| 信丰县| 思茅市| 茶陵县| 科尔| 福州市| 盐源县|