Beispiel #1
0
        /// <summary>
        /// IO출력
        /// </summary>
        /// <param name="_iNo">IO번호</param>
        /// <param name="_bOn">true=ON , false=OFF</param>
        /// <returns>성공여부</returns>
        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)
            {
                int iOn = _bOn ? 1 : 0;
                Cmmsdk.cmmDoPutOne(_iNo, iOn);
                return(true);
            }
            else//여기 꼭 확인해야함. 안될 가능성이 99.999999999%임
            {
                int iOn = 0;
                if (_bOn)
                {
                    m_aModuleInfo.iDataOutSet |= (((iOn >> iBitAddr) | 0x01) << iBitAddr);
                }
                else
                {
                    m_aModuleInfo.iDataOutSet &= ~(((iOn >> iBitAddr) | 0x01) << iBitAddr);
                }
                return(true);
            }
        }