Exemple #1
0
        /// <summary>
        /// 지정 포트가 동작 되었는지 읽어 온다.
        /// </summary>
        /// <param name="Pos"></param>
        /// <returns></returns>

        public bool inportb(short Pos)
        {
            __IOData__ Value = IOCheck(Pos);

#if PROGRAM_RUNNING
            bool Data = false;


            ushort DIVal = 0;

            ushort wRetVal;
            //receive the digital single on the board you choose
            wRetVal = PIO821.PIO821_DigitalIn((byte)0, out DIVal);
            if (wRetVal > 0)
            {
                MessageBox.Show("*** PIO821_DigitalIn()  error ! ***");
            }
            else
            {
                Data = false;
                if (((byte)~DIVal & Value.Data) == Value.Data)
                {
                    Data = true;
                }
            }



            return(Data);
#else
            return(false);
#endif
        }
Exemple #2
0
        /// <summary>
        /// P32C32 지정된 포트가 동작하고 있는지 읽어 온다.
        /// </summary>
        /// <param name="Pos"></param>
        /// <returns></returns>
        public bool OutputCheck(short Pos)
        {
            __IOData__ Value = IOCheck(Pos);

            if ((OutData[Value.Pos] & Value.Data) == Value.Data)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #3
0
        /// <summary>
        /// P32C32 지정된 포트를 On/Off 한다.
        /// </summary>
        /// <param name="Pos"></param>
        /// <param name="OnOff"></param>
        public void outportb(short Pos, bool OnOff)
        {
#if PROGRAM_RUNNING
            __IOData__ Value = IOCheck(Pos);

            if (OnOff == true)
            {
                OutData[Value.Pos] |= Value.Data;
            }
            else
            {
                OutData[Value.Pos] &= (byte)~Value.Data;
            }
            //outportb();
#endif
            return;
        }
Exemple #4
0
        /// <summary>
        /// P32C32 지정된 포트의 I/O 위치를 알아낸다.
        /// </summary>
        /// <param name="Pos"></param>
        /// <returns></returns>
        public __IOData__ IOCheck(short Pos)
        {
            __IOData__ value = new __IOData__();

            if (Pos == -1)
            {
                return(value);
            }

            int  OPos = (int)Pos / 8;
            byte Data = (byte)(0x01 << ((int)Pos % 8));

            value.Card = (short)(OPos / 2);
            value.Pos  = (short)(OPos % 2);
            value.Data = Data;

            return(value);
        }
Exemple #5
0
        /// <summary>
        /// 인수로 넘어온 데이타 중 지정 포트가 동작 되었는지 알아 낸다.
        /// </summary>
        /// <param name="Pos"></param>
        /// <param name="DIVal"></param>
        /// <returns></returns>
        public bool inportb(short Pos, byte[] DIVal)
        {
            __IOData__ Value = IOCheck(Pos);

#if PROGRAM_RUNNING
            bool Data;
            //uint DIVal = 0;

            //wInitialCode = UniDAQ.Ixud_ReadDI(P32ToIn[Value.Card], (ushort)Value.Pos, ref DIVal);

            Data = false;
            if (((byte)DIVal[Value.Pos] & Value.Data) == Value.Data)
            {
                Data = true;
            }
            return(Data);
#else
            return(false);
#endif
        }