def addReadback(self, window, name, status, y, x): info = Readback(name, 71) info.updateValues(status["value"], status["setpoint"], status["limit"]) window.addstr(y, x, str(info)) window.chgat(y, x, 13, curses.A_BOLD) if info.percent > 75: window.chgat(y, x + 29, 44, curses.A_BOLD | curses.color_pair(2)) else: window.chgat(y, x + 29, 44, curses.A_BOLD | curses.color_pair(3))
def addSupply(self, window, supply, status, startY=1, startX=1): window.box() window.addstr(startY - 1, startX, " {} Power Supply ".format(supply), curses.A_BOLD | curses.color_pair(4)) self.addReadback(window, "Voltage (kV):", status["voltage"], startY + 1, startX + 1) self.addReadback(window, "Current (μA):", status["current"], startY + 2, startX + 1) ramp = Readback("Ramp Rate:", 71, showBar=False, numberFormat="8d") ramp.updateValues(status["rate"]["value"], status["rate"]["setpoint"]) window.addstr(startY + 4, startX + 1, str(ramp)) window.chgat(startY + 4, startX + 1, 13, curses.A_BOLD) window.chgat(startY + 4, startX + 30, 8, curses.A_BOLD) window.addstr(startY + 6, startX + 1, "Status:", curses.A_BOLD) window.addstr(startY + 6, startX + 18, "{0:>8s}".format(status["status"]), curses.A_BOLD)