コード例 #1
0
        public static void WaitForTumbler(int number, bool state)
        {
            number--;
            Port           p = CreateLPT(LPTRegister.status);
            LPTControlBits c = LPTControlBits.Ack;

            switch (number)
            {
            case 0:
                c = LPTControlBits.Ack;
                break;

            case 1:
                c = LPTControlBits.Busy;
                break;

            case 2:
                c = LPTControlBits.PaperEnd;
                break;

            case 3:
                c = LPTControlBits.Select;
                break;
            }

            while (p.GetLPTVal(c) != state)
            {
                Thread.Sleep(100);
                Console.WriteLine(p.Read());
            }
        }
コード例 #2
0
        public static void WaitForTumblerSwitch(int number)
        {
            number--;
            Port           p = CreateLPT(LPTRegister.status);
            LPTControlBits c = LPTControlBits.Ack;

            switch (number)
            {
            case 0:
                c = LPTControlBits.Ack;
                break;

            case 1:
                c = LPTControlBits.Busy;
                break;

            case 2:
                c = LPTControlBits.PaperEnd;
                break;

            case 3:
                c = LPTControlBits.Select;
                break;
            }
            bool v = p.GetLPTVal(c);

            do
            {
                Thread.Sleep(100);
            }while (p.GetLPTVal(c) == v);
        }
コード例 #3
0
        public void SetLPTVal(LPTControlBits bits, bool value)
        {
            int val  = Read();
            int mask = GetLPTMask(bits);

            if (value)
            {
                Write(val | mask);
            }
            else
            {
                Write(val & ~mask);
            }
        }
コード例 #4
0
        public int GetLPTMask(LPTControlBits bits)
        {
            int mask = 0;

            switch (bits)
            {
            case LPTControlBits.Strobe:
                mask = 1;
                break;

            case LPTControlBits.AutoLF:
                mask = 2;
                break;

            case LPTControlBits.Init:
                mask = 4;
                break;

            case LPTControlBits.SelectIn:
                mask = 8;
                break;

            case LPTControlBits.AckIntEn:
                mask = 16;
                break;

            case LPTControlBits.Direction:
                mask = 32;
                break;

            case LPTControlBits.Ack:
                mask = 1 << 6;
                break;

            case LPTControlBits.Busy:
                mask = 1 << 7;
                break;

            case LPTControlBits.PaperEnd:
                mask = 1 << 5;
                break;

            case LPTControlBits.Select:
                mask = 1 << 4;
                break;
            }
            return(mask);
        }
コード例 #5
0
 public bool GetLPTVal(LPTControlBits bit)
 {
     return((Read() & GetLPTMask(bit)) > 0);
 }