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()); } }
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); }
public void SetLPTVal(LPTControlBits bits, bool value) { int val = Read(); int mask = GetLPTMask(bits); if (value) { Write(val | mask); } else { Write(val & ~mask); } }
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); }
public bool GetLPTVal(LPTControlBits bit) { return((Read() & GetLPTMask(bit)) > 0); }