###### tags: `DAQ` `CSharp` # DAQ MccBoard紀錄 近期使用Measurement Computing的DAQ量測器,做些簡易紀錄 ## DAQ簡述 ... ## 注意點:DAQ MccBoard去操作注意 使用.Net UL套件過程中,通常都會使用SDK中的MccBoard物件去操作DAQ設備。過程中需要去建立這個物件,在看Document及Sample Code時,會發現一般會有兩種方式(建議直接使用第二種) ### 1. 透過Instalcal工具產生CB.CFG檔案後,直接Instance MccBoard物件 一般會在Sample Code看到下述這段Code,如果再沒有做好一些前置設置此時跑起來都會跑出找不到CB.CFG檔案的錯誤 ```csharp= DaqBoard = new MccDaq.MccBoard(0); // 0:是Board Number ``` CB.CFG檔案的建置,要透過官方Instalcal工具軟件去產生,介面如下,簡單來說就是打開Instalcal工具去做裝置設置的動作,使用過程中會產生CB.CFG檔案,此時你在使用new MccDaq.MccBoard去產生Board物件就不會出錯。但相對來說,設備的新增與刪除都要透過Instalcal工具軟建去操作,已便更改CB.CFG檔案內容。  ### 2. 透過DaqDeviceManager的GetDaqDeviceInventory去找尋設備後,再透過CreateDaqDevice去建立Board物件 若要全程透過程式碼去控制增加設計彈性,則需透過DaqDeviceManager去操作,過程有個重點是一定得使用IgnoreInstaCal,這個函式在於避免使用CB.CFG檔案,過程就不會去讀這個檔案 ```csharp DaqDeviceManager.IgnoreInstaCal(); ``` 接著透過GetDaqDeviceInventory去找尋,可透過Usb、藍芽、TCP/IP三種方式去找尋,找尋完後,再將找到的訊息物件透過CreateDaqDevice去實體化Board物件。接著就可透過Board物件去操作DAQ設備了。 ```csharp /*DAQ Device設置上,若要Runtime透過程式去設置與增加設備,就要使用此方法避免去讀 cb.cfg file 註:cb.cfg file 此File檔產生是由Instacal工具軟體產生*/ DaqDeviceManager.IgnoreInstaCal(); // Scan DAQ Device var daqDevices = DaqDeviceManager.GetDaqDeviceInventory(DaqDeviceInterface.Any).ToList(); var daqDeviceCount = daqDevices.Count; if (daqDeviceCount == 0) throw new Exception("初始化完成,但無DAQ設備"); int boardNum = 0; foreach(var daqDeviceDescriptor in daqDevices) { // 建立DAQ Device物件 // 上述提到避免使用cb.cfg file. 若是真要使用cb.cfg file則建立Board物件透過new MccDaq.MccBoard(number)即可 var mcBoard = DaqDeviceManager.CreateDaqDevice(boardNum, daqDeviceDescriptor); if (mcBoard.BoardName.Contains(DeviceTypeDefStr(deviceType))) { var DAQDevice = DAQDeviceFactory.Create(deviceType, daqDeviceDescriptor, mcBoard); if(DAQDevice == null) throw new Exception($"無此{deviceType}型號實作"); DAQDevice.FlashLED(); DAQDevices.Add(DAQDevice); } boardNum++; } ``` 上述兩種方法,在UL.Help文件中有提到,內容如下 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up