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 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); } }
public int ReadSingleDOutput(int boardId, int group, int idx, out int iVal) { uint doValue0 = 0; var ret = 0; iVal = -1; ret = DASK.DO_ReadPort((ushort)_config.DevIndex, 0, out doValue0); iVal = (int)(doValue0 >> idx) & 1; return(ret); }
public int ReadMultiDOutputFromAPI(int boarId, int group, ref int val) { try { uint doValue1; DASK.DO_ReadPort((ushort)boarId, 0, out doValue1); val = (int)doValue1; } catch { } return(0); }
public static int ReadIOCard7432OutputBit(ushort cardID, int cardOutputBit)//读扩展IO卡输出点 { if (CAMiClsVariable.strIOCard == "7432") { uint doValue = 0; bool outputBitStatus;; int result; DASK.DO_ReadPort((ushort)CAMiClsVariable.cardRegId, 0, out doValue); outputBitStatus = (doValue & (1 << cardOutputBit)) != 0; result = outputBitStatus ? 1 : 0; return(result); } else//APE IO卡 { uint doValue = 0; bool outputStatus; int result; DAQ_I32.DAQ_Mul_GDO_Get(DAQ_I32.DAQ_TYPE.DAQ_D3232, (int)cardID, ref doValue); outputStatus = (doValue & (1 << cardOutputBit)) != 0; result = outputStatus ? 1 : 0;//返回当前点位电平状态,0或1 return(result); } }