예제 #1
0
        private bool SelectLowIndex(int nIndex, uint uValue)
        {
            int nModuleCount = 0;

            CAXD.AxdInfoGetModuleCount(ref nModuleCount);

            if (nModuleCount > 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_DO32P:
                case AXT_MODULE.AXT_SIO_DO32T:
                case AXT_MODULE.AXT_SIO_RDO32:
                    CAXD.AxdoWriteOutportBit(comboModule.SelectedIndex, nIndex + 16, uValue);
                    break;

                case AXT_MODULE.AXT_SIO_DB32P:
                case AXT_MODULE.AXT_SIO_DB32T:
                case AXT_MODULE.AXT_SIO_RDB128MLII:
                    CAXD.AxdoWriteOutportBit(comboModule.SelectedIndex, nIndex, uValue);
                    break;

                default:
                    return(false);
                }
            }

            return(true);
        }
예제 #2
0
 public void output(int moduleNo, int index, bool value, out bool b)
 {
     try
     {
         if (!isActivate)
         {
             b = true; return;
         }
         uint v;
         if (value)
         {
             v = 1;
         }
         else
         {
             v = 0;
         }
         CAXD.AxdoWriteOutportBit(moduleNo, index, v);
         b = true;
     }
     catch
     {
         b = false;
     }
 }
예제 #3
0
        public bool SetOut(int _iNo, bool _bOn)
        {
            //Check Error.
            if (_iNo >= m_iMaxOut || _iNo < 0)
            {
                return(false);
            }

            //Get Addr.
            int iBitAddr;
            int iModule;
            int iModuleDp;


            GetInfoOutput(_iNo, out iModule, out iModuleDp, out iBitAddr);

            //OutPut
            uint uiOn = _bOn ? (uint)1 : (uint)0;

            CAXD.AxdoWriteOutportBit(iModule, iBitAddr, uiOn);
            return(true);
        }
예제 #4
0
파일: CDio.cs 프로젝트: zoro-008/Works
        public bool SetOut(int _iNo, bool _bOn, bool _bDirect = false)
        {
            //Check Error.
            if (_iNo >= m_iMaxOut || _iNo < 0)
            {
                return(false);
            }

            //Get Addr.
            int iBitAddr;
            int iModule;
            int iModuleDp;


            GetInfoOutput(_iNo, out iModule, out iModuleDp, out iBitAddr);

            //OutPut
            if (_bDirect)
            {
                uint uiOn = _bOn ? (uint)1 : (uint)0;
                CAXD.AxdoWriteOutportBit(iModule, iBitAddr, uiOn);
                return(true);
            }
            else
            {
                uint uiOn = 0;
                if (_bOn)
                {
                    m_aModuleInfo[iModule].uDataOutSet |= (((uiOn >> iBitAddr) | 0x01) << iBitAddr);
                }
                else
                {
                    m_aModuleInfo[iModule].uDataOutSet &= ~(((uiOn >> iBitAddr) | 0x01) << iBitAddr);
                }
                return(true);
            }
        }