public int IPrimInit() { if (_isInitialed) { return(0); } var iRet = 0; var boardIdInBits = _config.DevIndex; int ret = DASK.Register_Card(DASK.PCI_7432, (ushort)boardIdInBits); for (var i = 0; i < groupDIVal.Length; i++) { groupDIVal[i] = -1; } for (var i = 0; i < groupDOVal.Length; i++) { groupDOVal[i] = -1; } PrimRunStat = PrimRunState.Stop; PrimConnStat = PrimConnState.UnConnected; ((PrimConfigControl)PrimConfigUI).SetPrimConnState(PrimConnStat); ((PrimConfigControl)PrimConfigUI).SetPrimRunState(PrimRunStat); _isInitialed = true; return(iRet); }
private void DataProcess() { while (queue.IsAlive) { while (myqueue.Count > 0) { err = DASK.AI_ContVScale(cardRegNumber, DASK.AD_B_5_V, myqueue.Dequeue(), VBuffer[0], (int)AI_TotalReadCount); if (err < 0) { MessageBox.Show("AI_ContVScale"); } this.Invoke((MethodInvoker) delegate { Displayaidata(VBuffer[0]); writefftdataCsv(0, ch0); //writefftdataCsv(1, ch1); //writefftdataCsv(2, ch2); //writefftdataCsv(3, ch3); //writefftdataCsv(4, ch4); textBoxQueueCount.Text = myqueue.Count.ToString(); }); Thread.Sleep(1); } Thread.Sleep(1); } }
public void Write(IoPoint ioPoint, bool value) { var device = _devices[ioPoint.BoardNo]; var ret = DASK.DO_WriteLine((ushort)device, 0, (ushort)ioPoint.PortNo, (ushort)(value ? 1 : 0)); if (ret != DASK.NoError) { switch (ret) { case DASK.ErrorInvalidCardNumber: throw new DaskException(string.Format("The CardNumber argument {0} is out of range (larger than 31).", device)); case DASK.ErrorCardNotRegistered: throw new DaskException(string.Format("No card registered as {0} CardNumber.", device)); case DASK.ErrorFuncNotSupport: throw new DaskException(string.Format("The {0} function called is not supported by this type of card.", "DO_WriteLine")); case DASK.ErrorInvalidIoChannel: throw new DaskException(string.Format("The specified Channel or Port argument {0} is out of range.", ioPoint.PortNo)); default: throw new DaskException("Unknown error."); } } }
private bool PCI9222Close() { try { _Flag_start = false; listArray[0].Clear(); listArray[1].Clear(); listArray[2].Clear(); listArray[3].Clear(); listArray[4].Clear(); err = DASK.AI_AsyncClear(cardRegNumber, out accesscnt); if (err < 0) { Globals.addList("9222卡AI_AsyncClear失败!", Mycolor.ErrorRed); return(false); } err = DASK.Release_Card(cardRegNumber); if (err < 0) { Globals.addList("9222卡Release_Card失败!", Mycolor.ErrorRed); return(false); } return(true); } catch { return(false); } }
private void CycleReadIO() { // 阻塞等触发 while (_cycleCycleReadIOFlag) { uint dInput = 0; int ret = DASK.DI_ReadPort((ushort)_config.DevIndex, 0, out dInput); if (dInput != 0) { if (groupDIVal[0] != -1 && CycleTrigList.Count > 0) { CycleCmpDI(0, (int)dInput); } groupDIVal[0] = (int)dInput; } uint dOut = 0; ret = DASK.DO_ReadPort((ushort)_config.DevIndex, 0, out dOut); if (dOut != 0) { groupDOVal[0] = (int)dOut; } Thread.Sleep(5); } }
/// <summary> /// 读端口数据 /// </summary> /// <param name="boardNo"></param> /// <param name="portNo"></param> /// <returns></returns> public uint ReadPort(int boardNo, int portNo = 0) { var device = _devices[boardNo]; uint value; var ret = DASK.DI_ReadPort((ushort)device, (ushort)portNo, out value); if (ret != DASK.NoError) { switch (ret) { case DASK.ErrorInvalidCardNumber: throw new DaskException(string.Format("The CardNumber argument {0} is out of range (larger than 31).", boardNo)); case DASK.ErrorCardNotRegistered: throw new DaskException(string.Format("No card registered as {0} CardNumber.", boardNo)); case DASK.ErrorFuncNotSupport: throw new DaskException(string.Format("The {0} function called is not supported by this type of card.", "DI_ReadPort")); default: throw new DaskException("Unknown error."); } } return(value); }
/// <summary> /// Sets the DSP settings. /// </summary> /// <returns>System.Int16.</returns> /// <exception cref="InvalidOperationException"> /// AI_9524_SetDSP Fail, error: " + err /// or /// AI_9524_Config Fail, error: " + err /// </exception> private short SetDSP() { short err = DASK.NoError; ushort DFStage = 0; uint SPKRejThreshold = 100; uint dwTrigValue = 0; for (ushort i = 0; i < config_para.ai_chnl_cnt; i++) { err = DASK.AI_9524_SetDSP(GetHandle(), i, DASK.P9524_SPIKE_REJ_DISABLE, DFStage, SPKRejThreshold); } if (err < 0) { throw new InvalidOperationException("AI_9524_SetDSP Fail, error: " + err); } err = DASK.AI_9524_Config(GetHandle(), DASK.P9524_AI_LC_Group, DASK.P9524_AI_XFER_DMA, config_para.ai_chnl_config, config_para.trig_control, (ushort)dwTrigValue); if (err < 0) { throw new InvalidOperationException("AI_9524_Config Fail, error: " + err); } return(err); }
/// <summary> /// Dispose /// </summary> /// <param name="disposing"></param> protected virtual void Dispose(bool disposing) { if (_disposed) { return; } //if (disposing) //{ // //清理托管资源 // if (managedResource != null) // { // managedResource.Dispose(); // managedResource = null; // } //} // 清理非托管资源 foreach (var device in _devices.Values) { var ret = DASK.Release_Card((ushort)device); if (ret != DASK.NoError) { throw new DaskException("Unknown error."); } } _disposed = true; }
public void Initialize() { foreach (var cardNo in _cardNos) { var device = DASK.Register_Card(DASK.PCI_7432, cardNo); if (device < 0) { switch (device) { case DASK.ErrorTooManyCardRegistered: throw new DaskException("32 cards have been registered."); case DASK.ErrorOpenDriverFailed: throw new DaskException("Failed to open the device driver."); case DASK.ErrorOpenEventFailed: throw new DaskException("Open event failed in device driver."); default: throw new DaskException("Unknown error."); } } _devices.Add(cardNo, device); } }
/* Write Node */ public static void WritePin(ushort port, ushort pin, bool state, out short code, out string message) { if (Testing) { code = 0; message = "Testing"; return; } ushort logic = (state) ? (ushort)1 : (ushort)0; code = DASK.DO_WriteLine((ushort)m_device, port, pin, logic); if (code < 0) { message = "เขียนเอาท์พุทพิน DIO7432 ผิดพลาด"; logText = "Write PIN [" + port.ToString() + "." + pin.ToString() + " = " + state.ToString() + "]: " + message; log.AppendText(logText); System.Diagnostics.Debug.WriteLine(logText); } else { message = ""; logText = "Write PIN [" + port.ToString() + "." + pin.ToString() + " = " + state.ToString() + "]: OK"; log.AppendText(logText); System.Diagnostics.Debug.WriteLine(logText); } }
/* Read Node */ public static void ReadPin(ushort port, ushort pin, out bool state, out short code, out string message) { if (Testing) { state = true; code = 0; message = "Testing"; return; } ushort logic; code = DASK.DI_ReadLine((ushort)m_device, port, pin, out logic); state = (logic == 1) ? true : false; if (code < 0) { message = "อ่านพอร์ต DIO7432 ผิดพลาด"; logText = "Read PIN [" + port.ToString() + "." + pin.ToString() + " = " + state.ToString() + "]: " + message; log.AppendText(logText); //System.Diagnostics.Debug.WriteLine(logText); } else { message = ""; logText = "Read PIN [" + port.ToString() + "." + pin.ToString() + " = " + state.ToString() + "]: OK"; log.AppendText(logText); //System.Diagnostics.Debug.WriteLine(logText); } }
public int GetDO(int index, out bool isON) { if (index < 0 || index >= DOCount) { throw new Exception(string.Format("GetDO(index = {0}, isON) index is out of range:0~{1}", index, DOCount - 1)); } isON = false; if (!IsOpen) { return((int)ErrorDef.NotOpen); } //lock (asynLocker) { ushort doVal = 0; if (0 != DASK.DO_ReadLine(_devHandle, (ushort)(index / 32), (ushort)(index % 32), out doVal)) { return((int)ErrorDef.InvokeFailed); } isON = doVal != 0; } return((int)ErrorDef.Success); }
public int GetAllDOs(out bool[] isONs) { isONs = new bool[DOCount]; //lock (asynLocker) { if (!IsOpen) { return((int)ErrorDef.NotOpen); } uint doVals = 0; ushort ports = (ushort)((DOCount + 31) / 32); for (ushort i = 0; i < ports; i++) { if (0 != DASK.DO_ReadPort(_devHandle, i, out doVals)) { return((int)ErrorDef.InvokeFailed); } for (int j = 0; j < 32; j++) { if (i * 32 + j == DOCount) { break; } isONs[i * 32 + j] = (doVals & (1 << j)) != 0; } } } return((int)ErrorDef.Success); }
private void ai_buf_ready_cbfunc() { if (bufindex == 0) { myqueue.Enqueue(_ptr[0]); bufindex = 1; } else { myqueue.Enqueue(_ptr[1]); bufindex = 0; } ushort OverrunFlag; DASK.AI_AsyncDblBufferHandled(0); DASK.AI_AsyncDblBufferOverrun(0, 0, out OverrunFlag); if (OverrunFlag == 1) { m_dwOverrunCnt = m_dwOverrunCnt + 1; DASK.AI_AsyncDblBufferOverrun(0, 1, out OverrunFlag); this.Invoke((MethodInvoker) delegate { textBoxOverrun.Text = m_dwOverrunCnt.ToString(); }); } }
public override void Initialize() { var device = DASK.Register_Card(Type, 0); if (device < 0) { switch (device) { case DASK.ErrorTooManyCardRegistered: throw new DaskException("32 cards have been registered."); case DASK.ErrorUnknownCardType: throw new DaskException(string.Format("The CardType argument {0} is not valid.", DASK.PCI_7432)); case DASK.ErrorOpenDriverFailed: throw new DaskException("Failed to open the device driver."); case DASK.ErrorOpenEventFailed: throw new DaskException("Open event failed in device driver."); default: throw new DaskException("Unknown error."); } } }
//RW Single DOI public int WriteSingleDOutput(int boardId, int group, int idx, int iVal) { var ret = 0; ret = DASK.DO_WriteLine((ushort)_config.DevIndex, (ushort)group, (ushort)idx, (ushort)iVal); return(ret); }
private void Form1_Load(object sender, EventArgs e) { m_dev = DASK.Register_Card(DASK.PCI_7432, 0);/* à»Ô´Ãкº I/O */ if (m_dev < 0) { MessageBox.Show("Register_Card error!"); } }
public void Release() { short ret; if (m_dev >= 0) { ret = DASK.Release_Card((ushort)m_dev); } }
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { short ret; if (m_dev >= 0) { ret = DASK.Release_Card((ushort)m_dev); /* »Ô´Ãкº I/O */ } }
public static void IOCard7432Close()//释放IO卡 { short ret; short m_dev = DASK.Register_Card(DASK.PCI_7432, 0); if (m_dev >= 0) { ret = DASK.Release_Card((ushort)m_dev); } }
static uint Send(bool b, int index, uint value) { BitArray baWrite = Int32ToBitArray(value); baWrite[index] = b; value = BitArrayToInt32(baWrite); DASK.DO_WritePort(m_Number, 0, value); return(value); }
public void Register() { m_dev = DASK.Register_Card(PCI_name, 0); if (m_dev < 0) { MessageBox.Show("Register_Card error!"); System.Environment.Exit(0); } }
private void button1_Click(object sender, EventArgs e) { queue.Abort(); err = DASK.AI_AsyncClear(cardRegNumber, out accesscnt); if (err < 0) { MessageBox.Show("AI_AsyncClear"); } button1.Enabled = false; btnStart.Enabled = true; }
/// <summary> /// Polling an encorder data. /// </summary> /// <returns>System.Double.</returns> /// <exception cref="InvalidOperationException">GPTC_Read Fail, error: " + err</exception> public double EncoderPolling() { uint value; short err = DASK.GPTC_Read(GetHandle(), gptcCtrl.GCtr[0], out value); if (err < 0) { throw new InvalidOperationException("GPTC_Read Fail, error: " + err); } return(Math.Abs((value * 256) / 256));; }
/// <summary> /// Gets the actual rate per channel. /// </summary> /// <returns>System.Double.</returns> /// <exception cref="InvalidOperationException">GetActualRate_9524 Fail, error: " + err</exception> public double GetActualRatePerChannel() { double ActualRate; short err = DASK.GetActualRate_9524(GetHandle(), DASK.P9524_AI_LC_Group, config_para.ai_sample_rate, out ActualRate); if (err < 0) { throw new InvalidOperationException("GetActualRate_9524 Fail, error: " + err); } return(ActualRate / config_para.ai_chnl_cnt); }
public int ReadSingleDInput(int boardId, int group, int idx, out int iVal) { uint diValue0 = 0; var ret = 0; iVal = -1; ret = DASK.DI_ReadPort((ushort)_config.DevIndex, 0, out diValue0); iVal = (int)(diValue0 >> idx) & 1; return(ret); }
public static void Write(uint data) { short ret; ret = DASK.DO_WritePort((ushort)m_dev, 0, data); if (ret < 0) { // MessageBox.Show("DO_WritePort error!"); return; } }
public void Register() { m_dev = DASK.Register_Card(PCI_name, 0); // DASK.DIO_SetDualInterrupt // DASK.DIO_INT1_EventMessage if (m_dev < 0) { MessageBox.Show("Register_Card error!"); // Application.Exit(); System.Environment.Exit(0); } }
private void Form1_Load(object sender, EventArgs e) { short ret = DASK.Register_Card(DASK.PCI_9221, 0); if (ret >= 0) { cardRegNumber = (ushort)ret; } else { MessageBox.Show("9222卡初始化失败!"); } }
/// <summary> /// Stops the acquisition. /// </summary> /// <returns>System.Int16.</returns> /// <exception cref="InvalidOperationException">AI_9524_Config Fail, error: " + err</exception> public short StopAcq() { short err = DASK.NoError; uint ai_access_cnt; err = DASK.AI_AsyncClear(GetHandle(), out ai_access_cnt); if (err < 0) { throw new InvalidOperationException("AI_9524_Config Fail, error: " + err); } return(err); }