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

公司新聞

最全面及時的公司資訊、企業動態

Windows C 程序 USB-1608G 連續數字 IO

來源君億道

這是特定于USB-1608G 的示例。它使用 Discovery 接口來定位USB-1608G并對其進行編程。不需要運行 InstaCal,但您必須安裝它。該程序是在 Visual Studio 中創建的一個簡單的 32 位控制臺程序。要運行該程序,請創建一個 32 位控制臺項目,將 cbw.h 和 cbw32.dll 文件與代碼文件一起添加到其中,代碼文件附在本文底部。

 

該程序不僅以連續方式讀取四個模擬輸入,還將前四個數字線編程為輸入,將后四個數字線編程為輸出。在讀取數據的循環中,讀取數字輸入,然后將其寫入四個輸出線。這種方法適用于低速采集,然而,對于高速采集,必須注意確保在讀/寫數字 IO 時不會丟失數據。這是因為數字 IO 是一個瓶頸,最大更新率為每秒 200 次讀取或寫入。

 

/* 包含文件 */

#include <windows.h>

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include "cbw.h"

 

#define 100

#define LowChan 0

#define HighChan 4

#define ChanCount 5

#define 數據包 100

 

#define COUNT PACKET * ChanCount

 

#define MAXNUMDEVS 100

 

無效主()

{

       /* 變量聲明 */

 

       整數索引 = 0;

       curCountcurIndex

 

       int ULStat = 0;

 

       int 增益 = BIP10VOLTS;

       長率 = 率;

       短狀態;

       長半緩沖 = COUNT / 2;

       long NumRows = PACKET / 2;

       bool NextReadUpper = false;

 

 

       int numberOfDevices = MAXNUMDEVS;

       DaqDeviceDescriptor 庫存[MAXNUMDEVS];

       DaqDeviceDescriptor DeviceDescriptor;

 

       int BoardNum = -1;

 

       float Rev = (float)CURRENTREVNUM;

       ULStat = cbDeclareRevision(&Rev);

       cbErrHandling(打印,停止);

 

       printf("后臺模式下cbAInScan()演示\n\n");

 

       //忽略 InstaCal 設備發現

       cbIgnoreInstaCal();

 

       //定位USB設備

       ULStat = cbGetDaqDeviceInventory(ANY_IFC, 庫存, &numberOfDevices);

       for (int i = 0; i < numberOfDevices; i++)

       {

              DeviceDescriptor = 庫存[i];

 

              //1608G的產品ID = 0x110

              //1608GX 的產品 ID = 0x111

              //1608GX-2AO 的產品 ID = 0x112

              //產品 ID 可以在位于的 ULProps.txt 中找到

              // C:\Program Files (x86)\Measurement Computing\DAQ

              if (DeviceDescriptor.ProductID == 0x110)

              {

                     BoardNum = i;

                     ULStat = cbCreateDaqDevice(BoardNum, DeviceDescriptor);

                     printf("設備名稱:%s\n", DeviceDescriptor.ProductName);

                     休息;

              }

 

       }

 

       如果(BoardNum < 0

       {

              printf("找不到USB設備...按任意鍵退出\n");

              獲取();

              返回;

       }

 

       for (int i = 0; i < 4; i++)

              ULStat = cbDConfigBit(BoardNum, AUXPORT, i, DIGITALIN);

       for (int i = 4; i < 8; i++)

              ULStat = cbDConfigBit(BoardNum, AUXPORT, i, DIGITALOUT);

       如果(ULStat= 0

              printf("%d", ULStat);

 

       ULStat = cbAInputMode(BoardNum, SINGLE_ENDED);

       如果(ULStat= 0

              printf("%d", ULStat);

 

       //分配緩沖區

       句柄 MemHandle = 0;

       MemHandle = cbScaledWinBufAlloc(COUNT);

 

       雙縮放數據[計數];

 

       unsigned long RawData[COUNT]; //讀取計數

 

       無符號選項 = 背景 + 連續 + SCALEDATA;

 

       ULStat = cbAInputMode(BoardNum, SINGLE_ENDED);

       如果(ULStat= 0

              printf("%d", ULStat);

 

       //開始獲取

       ULStat = cbAInScan(BoardNum,

              低燦,

              高燦,

              數數,

              &速度,

              獲得,

              內存句柄,

              選項);

       如果(ULStat= 0

              printf("%d", ULStat);

 

       //用于數字io

       USHORT bitVal[4] = { 0, 0, 0, 0 };

       (!_kbhit())

       {

              //此循環讀取緩沖區的下半部分,然后連續讀取上半部分。

              // 它使用 NextReadUpper 標志,以便緩沖區的每一半都被讀取一次

 

              ULStat = cbGetStatus(BoardNum, &Status, &curCount, &curIndex, AIFUNCTION);

              如果(ULStat= 0{

                     printf("錯誤代碼 %d\n", ULStat);

                     休息;

              }

              if ((curIndex > halfbuf) && (NextReadUpper == false))

              {

                     NextReadUpper = true;

                     指數 = 0;

                     cbScaledWinBufToArray(MemHandle, ScaledData, 0, halfbuf);

 

                     //讀取四個數字輸入線

                     for (int i = 0; i < 4; i++)

                            ULStat = cbDBitIn(BoardNum, AUXPORT, i, &bitVal[i]);

 

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

                     {

                            for (int i = 0; i<ChanCount; i++)

                                   printf("%2.3f\t", ScaledData[index++]);

                    

                            for (int i = 0; i<4; i++)

                                   printf("%d\t", bitVal[i]);

 

                            printf("\n");

                     }

                     //寫入4條數字輸出線

                     for (int i = 4; i < 8; i++)

                            ULStat = cbDBitOut(BoardNum, AUXPORT, i, bitVal[i]);

              }

              else if ((curIndex < halfbuf) && (NextReadUpper == true))

              {

                     NextReadUpper = false;

                     指數 = 0;

                     cbScaledWinBufToArray(MemHandle, ScaledData, halfbuf, halfbuf);

 

                     //讀取四個數字輸入線

                     for (int i = 0; i < 4; i++)

                            ULStat = cbDBitIn(BoardNum, AUXPORT, i, &bitVal[i]);

 

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

                     {

                            for (int i = 0; i<ChanCount; i++)

                                   printf("%2.3f\t", ScaledData[index++]);

 

                            for (int i = 0; i<4; i++)

                                   printf("%d\t", bitVal[i]);

                           

                            printf("\n");

                     }

                     //寫入4條數字輸出線

                     for (int i = 4; i < 8; i++)

                            ULStat = cbDBitOut(BoardNum, AUXPORT, i, bitVal[i]);

              }

 

       }

 

 

       cbStopBackground(BoardNum, AIFUNCTION);

       cbWinBufFree(MemHandle);

       cbReleaseDaqDevice(BoardNum);

 

       printf("完成...按任意鍵退出\n");

       獲取();

}


主營:電流探頭,電壓探頭,羅氏線圈,電流傳感器,高壓探頭,電流互感器,功率電子測量產品
粵ICP備14003389號深圳君億道科技有限公司 © http://www.fengshengzhitongche.com
主站蜘蛛池模板: 新兴县| 孝义市| 南充市| 定兴县| 清苑县| 江陵县| 大关县| 伊金霍洛旗| 黎川县| 宜兴市| 牡丹江市| 天镇县| 和静县| 新安县| 晋中市| 民和| 洛南县| 东平县| 石河子市| 汶上县| 株洲市| 巧家县| 博客| 台湾省| 洛南县| 屏东市| 山阳县| 祥云县| 景德镇市| 巢湖市| 斗六市| 南阳市| 公主岭市| 嵩明县| 北辰区| 萍乡市| 稻城县| 澄江县| 马关县| 鹤峰县| 满城县| 美姑县| 陆丰市| 清水河县| 炎陵县| 大港区| 广丰县| 柳江县| 平潭县| 新邵县| 嘉鱼县| 盈江县| 会宁县| 平凉市| 湾仔区| 九台市| 浑源县| 金湖县| 纳雍县| 东方市| 五峰| 台山市| 交口县| 凤阳县| 临夏县| 蓬溪县| 玉环县| 永宁县| 共和县| 定襄县| 隆德县| 紫阳县| 城口县| 二连浩特市| 临清市| 出国| 遂平县| 乌兰浩特市| 江孜县| 朔州市| 福建省| 新干县|