public bool[] readInput_Map() { short nIndex = 0; uint uDataHigh = 0, uDataLow = 0, uFlagHigh = 0, uFlagLow = 0, uModuleID = 0; int nBoardNo = 0, nModulePos = 0; int boolArrayQuentity = this.m_Inp_Module_Quentity * 32; bool[] m_bReadResultIOMap = new bool[boolArrayQuentity]; for (int moduleNo = 0; moduleNo < this.m_Inp_Module_Quentity; moduleNo++) { CAXD.AxdInfoGetModule(moduleNo, ref nBoardNo, ref nModulePos, ref uModuleID); CAXD.AxdiReadInportWord(moduleNo, 0, ref uDataHigh); CAXD.AxdiReadInportWord(moduleNo, 1, ref uDataLow); for (nIndex = 0; nIndex < 16; nIndex++) { int wIndex = nIndex + 32 * moduleNo; // Verify the last bit value of data read uFlagHigh = uDataHigh & 0x0001; uFlagLow = uDataLow & 0x0001; // Shift rightward by bit by bit uDataHigh = uDataHigh >> 1; uDataLow = uDataLow >> 1; // Updat bit value in control if (uFlagHigh == 1) { m_bReadResultIOMap[wIndex] = true; } else { m_bReadResultIOMap[wIndex] = false; } if (uFlagLow == 1) { m_bReadResultIOMap[wIndex + 16] = true; } else { m_bReadResultIOMap[wIndex + 16] = false; } } } return(m_bReadResultIOMap); }
public void Read() { int i = 0; UInt32 value = 0; lock (this) { if (Type == EAxtDio.DI) { foreach (AxtDioWordModule module in modules) { i = module.ModuleNo * 2; Validate(CAXD.AxdiReadInportWord(module.ModuleNo, module.Offset, ref value)); oldValue.Word(i, nowValue.Word(i)); nowValue.Word(i, (UInt16)value); } foreach (KeyValuePair <int, UlTripState> trip in trips) { if (trip.Value.Tripped(nowValue[trip.Key]) == true) { TripCode = trip.Value.Code; break; } } foreach (KeyValuePair <int, UlRelayTimer> timer in timers) { timer.Value.IN = nowValue[timer.Key]; } } else { foreach (AxtDioWordModule module in modules) { i = module.ModuleNo * 2; Validate(CAXD.AxdoReadOutportWord(module.ModuleNo, module.Offset, ref value)); oldValue.Word(i, nowValue.Word(i)); nowValue.Word(i, (UInt16)value); tempValue.Word(i, (UInt16)value); } } } }
public void Update() { for (int i = 0; i < m_iModuleCnt; i++) { if (m_aModuleInfo[i].iCntIn == 32 || m_aModuleInfo[i].iCntOut == 32) { CAXD.AxdoWriteOutportDword(i, 0, m_aModuleInfo[i].uDataOutSet); CAXD.AxdoReadOutportDword(i, 0, ref m_aModuleInfo[i].uDataOutGet); CAXD.AxdiReadInportDword(i, 0, ref m_aModuleInfo[i].uDataIn); } else if (m_aModuleInfo[i].iCntIn == 16 || m_aModuleInfo[i].iCntOut == 16) { CAXD.AxdoWriteOutportWord(i, 0, m_aModuleInfo[i].uDataOutSet); CAXD.AxdoReadOutportWord(i, 0, ref m_aModuleInfo[i].uDataOutGet); CAXD.AxdiReadInportWord(i, 0, ref m_aModuleInfo[i].uDataIn); } //m_aModuleInfo[i].uDataOutSet = 0;// m_aModuleInfo[i].uDataOutGet; } }
private void Threading_Timer() { short nIndex = 0; uint uDataHigh = 0; uint uDataLow = 0; uint uFlagHigh = 0; uint uFlagLow = 0; int nBoardNo = 0; int nModulePos = 0; uint uModuleID = 0; CAXD.AxdInfoGetModule(comboModule.SelectedIndex, ref nBoardNo, ref nModulePos, ref uModuleID); switch ((AXT_MODULE)uModuleID) { case AXT_MODULE.AXT_SIO_DI32: case AXT_MODULE.AXT_SIO_RDI32: //++ // Read inputting signal in WORD CAXD.AxdiReadInportWord(comboModule.SelectedIndex, 0, ref uDataHigh); CAXD.AxdiReadInportWord(comboModule.SelectedIndex, 1, ref uDataLow); for (nIndex = 0; nIndex < 16; nIndex++) { // Verify the last bit value of data read uFlagHigh = uDataHigh & 0x0001; uFlagLow = uDataLow & 0x0001; // Shift rightward by bit by bit uDataHigh = uDataHigh >> 1; uDataLow = uDataLow >> 1; // Updat bit value in control if (uFlagHigh == 1) { checkHigh[nIndex].Checked = true; } else { checkHigh[nIndex].Checked = false; } if (uFlagLow == 1) { checkLow[nIndex].Checked = true; } else { checkLow[nIndex].Checked = false; } } break; case AXT_MODULE.AXT_SIO_DB32P: case AXT_MODULE.AXT_SIO_DB32T: //++ // Read inputting signal in WORD CAXD.AxdiReadInportWord(comboModule.SelectedIndex, 0, ref uDataHigh); for (nIndex = 0; nIndex < 16; nIndex++) { // Verify the last bit value of data read uFlagHigh = uDataHigh & 0x0001; // Shift rightward by bit by bit uDataHigh = uDataHigh >> 1; // Updat bit value in control if (uFlagHigh == 1) { checkHigh[nIndex].Checked = true; } else { checkHigh[nIndex].Checked = false; } } break; } }