def init_oled(self): self.oled_reset = 13 self.reset_oled() import dbus service = "LCDd.service" bus = dbus.SystemBus() systemd = bus.get_object('org.freedesktop.systemd1', '/org/freedesktop/systemd1') manager = dbus.Interface(systemd, 'org.freedesktop.systemd1.Manager') manager.RestartUnit(service, 'replace') run = False while run != True: try: self.lcd = Server("127.0.0.1", debug=False) self.lcd.start_session() run = True except: logger.info("Waiting for LDCd ...") time.sleep(.1) run = False self.screenVol = self.lcd.add_screen("Screen_vol") self.screenVol.set_heartbeat("off") self.screenVol.set_priority("background") self.screenMsg = self.lcd.add_screen("Screen_msg") self.screenMsg.set_heartbeat("off") self.screenMsg.set_priority("background") self.screenClear = self.lcd.add_screen("Screen_clear") self.screenClear.set_heartbeat("off") self.screenClear.set_priority("background")
def write_to_lcd(): lcd = Server("localhost", debug=False) lcd.start_session() screen1 = lcd.add_screen("screen1") screen1.set_heartbeat("off") system_uptime = os.popen('uptime | cut -c 13-19').read() system_uptime = system_uptime.rstrip() (lan_bytes_rx, lan_bytes_tx, wan_bytes_rx, wan_bytes_tx, lan_state_isup, wan_state_isup) = router_stats.interface_stats() user_load, system_load, irq_load = router_stats.cpu_load_stats() mem_used_percent = router_stats.mem_load_stats() string_widget = screen1.add_string_widget("wan_info_title", text="WAN data (gb):", x=1, y=1) string_widget = screen1.add_string_widget( "wan_info_data", text="RX:{0:.2f} ||TX:{1:.2f}".format(wan_bytes_rx / 1073741824, wan_bytes_tx / 1073741824), x=1, y=2) string_widget = screen1.add_string_widget("lan_info_title", text="LAN data (gb):", x=1, y=3) string_widget = screen1.add_string_widget( "lan_info_data", text="RX:{0:.2f} ||TX:{1:.2f}".format(lan_bytes_rx / 1073741824, lan_bytes_tx / 1073741824), x=1, y=4) string_widget = screen1.add_string_widget("cpu_info_title", text="CPU load:", x=1, y=5) string_widget = screen1.add_string_widget( "cpu_info_data", text="U: {0:.0f}% S: {1:.0f}% I: {2:.0f}%".format( user_load, system_load, irq_load), x=1, y=6) string_widget = screen1.add_string_widget( "mem_info", text="MEM load: {0:.1f}% used".format(mem_used_percent), x=1, y=7) string_widget = screen1.add_string_widget( "sys_uptime", text="Uptime: {0}".format(system_uptime), x=1, y=8)
def main(): current_isp_index = 0 try: lcd = Server("localhost", debug=False) lcd.start_session() sc = lcd.add_screen("home") sc.set_heartbeat("off") sc.set_duration(10) line1 = sc.add_string_widget("Line1Widget", text="Init...", x=1, y=1) line2 = sc.add_scroller_widget("Line2Widget", text="", speed=6, top=2, right=16) last_calibration = get_calibration() update_display(line1, line2, current_isp_index) update_shaping(last_calibration, current_isp_index) lcd.add_key("Down") lcd.add_key("Up") last_update_time = time.time() while (True): key = lcd.poll() if key is not None: favorites = get_favorites() if key == "key Down\n": current_isp_index += 1 if current_isp_index == len(favorites): current_isp_index = 0 elif key == "key Up\n": current_isp_index -= 1 if current_isp_index < 0: current_isp_index = len(favorites) - 1 else: print(("Unknown key: ", key)) update_display(line1, line2, current_isp_index) # reload the calibration, in case it has updated last_calibration = get_calibration() update_shaping(last_calibration, current_isp_index) last_update_time = time.time() # watch for file changes on LASTDISPLAY_FULLPATH elif os.path.isfile(LASTDISPLAY_FULLPATH) and os.stat( LASTDISPLAY_FULLPATH).st_mtime > last_update_time: last_update_time = time.time() with open(LASTDISPLAY_FULLPATH) as f: line1.set_text(f.readline().split("\n")[0]) line2.set_text(f.readline().split("\n")[0]) time.sleep(0.2) except ConnectionRefusedError: print("display: problem connecting to lcdproc, shutting down")
def __init__(self, server = "localhost", debug = False): self._logger = logging.getLogger(__name__) self.__lcd = Server(server, debug=debug) self.__lcd.start_session() self.__screen = self.__lcd.add_screen("screen") self.__screen.set_heartbeat("off") self.__screen.set_priority("foreground") self.__line1 = self.__screen.add_string_widget("line1", text="", x=1, y=1) self.__line2 = self.__screen.add_string_widget("line2", text="", x=1, y=2) self.__line3 = self.__screen.add_string_widget("line3", text="", x=1, y=3) self.__line4 = self.__screen.add_string_widget("line4", text="", x=1, y=4)
def __init__(self, tracklog_source_dir, tracklog_export_dir): Thread.__init__(self) self.daemon = True self.__tracklog_source_dir = tracklog_source_dir self.__tracklog_export_dir = tracklog_export_dir self.__lcd = Server() self.__lcd.start_session() self.__screen = self.__lcd.add_screen("exporter") self.__screen.set_priority("hidden") self.__title_widget = self.__screen.add_string_widget("title", "", y=1) self.__progress_widget = self.__screen.add_hbar_widget("status", y=2, length=0)
def __init__(self, database_filename, source, pause_func, unpause_func): Thread.__init__(self) self.daemon = True self.__database_filename = database_filename self.__source = source self.__pause_func = pause_func self.__unpause_func = unpause_func self.__lcd = Server() self.__lcd.start_session() self.__screen = self.__lcd.add_screen("loader") self.__screen.set_priority("hidden") self.__title_widget = self.__screen.add_string_widget("title","",y=1) self.__progress_widget = self.__screen.add_hbar_widget("status",y=2,length=0)
def __init__(self): self.__lcd = Server() self.__lcd.start_session() self.__screen = self.__lcd.add_screen("dashboard") self.__screen.set_heartbeat("off") self.__screen.set_priority("info") self.__clock_widget = self.__screen.add_string_widget("time", "") self.__speed_widget = self.__screen.add_string_widget("speed", "", y=2, x=1) self.__bearing_widget = self.__screen.add_string_widget("bearing", "", y=2, x=14)
def __init__(self): self.__lcd = Server() self.__lcd.start_session() self.__screen = self.__lcd.add_screen("cache") self.__screen.set_heartbeat("off") self.__screen.set_duration(10) self.__screen.set_priority("hidden") self.__title_widget = self.__screen.add_scroller_widget( "title", 1, 1, 12, 1, "h", 1, "") self.__code_widget = self.__screen.add_string_widget("code", "", y=2) self.__distance_to_cache_widget = self.__screen.add_string_widget( "dist", "", y=2, x=9) self.__bearing_to_cache_widget = self.__screen.add_string_widget("btc", "", y=2, x=14) self.__bearing_widget = self.__screen.add_string_widget("bearing", "", y=1, x=14)
def main(): lcd = Server("media", debug=False) lcd.start_session() screen1 = lcd.add_screen("Screen1") screen1.set_heartbeat("off") screen1.set_duration(10) screen2 = lcd.add_screen("Screen2") screen2.set_heartbeat("off") screen2.set_duration(2) #string_widget = screen.add_string_widget("MyStringWidget", text="TestwWEJIowejioewjio", x=1, y=2) #scroller_widget = screen.add_scroller_widget("MyScrollerWidget", text="This Is A Test Message, Yeah, Yeah, Yeah", speed=2) #hbar_widget = screen.add_hbar_widget("MyHBarWidget", x=1, y=4, length=60) #frame_widget = screen.add_frame_widget("MyFrameWidget") num1_widget = screen1.add_number_widget("MyNumber1Widget", x=1, value=0) num2_widget = screen1.add_number_widget("MyNumber2Widget", x=5, value=0) num3_widget = screen1.add_number_widget("MyNumber3Widget", x=9, value=0) num4_widget = screen1.add_number_widget("MyNumber4Widget", x=13, value=0) time.sleep(2) progress = 0 while True: num1_widget.set_value(progress) num2_widget.set_value(progress) num3_widget.set_value(progress) num4_widget.set_value(progress) time.sleep(0.5) progress = progress + 1 if progress > 9: progress = 0
def main(): logInfo("Starting up...") while True: try: lcd = Server("localhost", debug=False) lcd.start_session() logInfo("Connected to LCDd") lcd.add_key("Up") lcd.add_key("Down") screen1 = lcd.add_screen("Screen1") screen1.set_heartbeat("off") line1_widget = screen1.add_scroller_widget("line1", left=1, top=1, right=20, bottom=1, speed=10, text="") line2_widget = screen1.add_scroller_widget("line2", left=1, top=2, right=20, bottom=2, speed=10, text="") currentIndex = 0 logInfo("Entering endless loop...") while True: interfaceNames = sorted(netifaces.interfaces()) interfaceNames = filter(lambda name: not name in ["lo"], interfaceNames) currentIndex = max(0, min(currentIndex, len(interfaceNames) - 1)) currentInterfaceName = interfaceNames[currentIndex] line1 = currentInterfaceName + ": " line2 = "" addresses = netifaces.ifaddresses(currentInterfaceName) if netifaces.AF_INET in addresses: line1 += addresses[netifaces.AF_INET][0]['addr'] if netifaces.AF_INET6 in addresses: line2 += addresses[netifaces.AF_INET6][0]['addr'] line1_widget.set_text(line1) line2_widget.set_text(line2) time.sleep(0.1) while True: event = lcd.poll() if not event: break event = string.strip(event) if event == "key Up": currentIndex = currentIndex + 1 elif event == "key Down": currentIndex = currentIndex - 1 # probably it's better to just quit together with LCDd, therefore it's commented out... #except socket.error, EOFError: # logWarn("Error connecting to LCDd, retrying in 30 seconds...") # time.sleep(30) except Exception as e: logError(e, "Error reached toplevel, exiting with exit code 42") sys.exit(42)
def main(): signal.signal(signal.SIGALRM, handler) # Initialize the LCD object instance lcd = Server(debug=False) lcd.start_session() lcd.add_key("Up") lcd.add_key("Down") lcd.add_key("Right") lcd.add_key("Left") lcd.add_key("Enter") # Initialize root/initial cfaScreen instance cfaScreen = home_screen.get() # Append Screens to base cfaInstance cfaScreen.pushDownScreen(sys_screens.get()) cfaScreen.pushDownScreen(IntelHDA_screens.get()) # Spawn the initial screen screen = genScreen(lcd, cfaScreen) # Loop logic... (read events and react) try: while True: signal.alarm(1) try: event = lcd.poll() except: event = None finally: signal.alarm(0) if not event == None: lines = event.splitlines() if lines[0] == 'key Enter': cfaScreen.handleEnter(screen) elif lines[0] == 'key Up': if cfaScreen.upScreen == None and cfaScreen.downScreen == None: cfaScreen.handleUp(screen) elif not cfaScreen.upScreen == None: clearScreen(lcd, cfaScreen) cfaScreen = cfaScreen.upScreen screen = genScreen(lcd, cfaScreen) else: pass elif lines[0] == 'key Down': if cfaScreen.downScreen == None and cfaScreen.upScreen == None: cfaScreen.handleDown(screen) elif not cfaScreen.downScreen == None: clearScreen(lcd, cfaScreen) cfaScreen = cfaScreen.downScreen screen = genScreen(lcd, cfaScreen) else: pass elif lines[0] == 'key Right': if not cfaScreen.nextScreen == None: clearScreen(lcd, cfaScreen) cfaScreen = cfaScreen.nextScreen screen = genScreen(lcd, cfaScreen) else: pass elif lines[0] == 'key Left': if not cfaScreen.prevScreen == None: clearScreen(lcd, cfaScreen) cfaScreen = cfaScreen.prevScreen screen = genScreen(lcd, cfaScreen) else: pass else: # Here the update functions are called if cfaScreen.ready(): cfaScreen.updateWidgets(screen) time.sleep(0.100) # LCD Cleanup on exit finally: # Execute closing code before clearing screen clearScreen(lcd, cfaScreen)
def main(): lcd = Server("localhost", debug=False) lcd.start_session() screen1 = lcd.add_screen("Screen1") screen1.set_heartbeat("off") # hostname/time uname = os.uname()[1] uname = uname.ljust(10) text1 = uname + time.strftime("%H:%M:%S") line1 = screen1.add_string_widget("String1", text=text1, x=1, y=1) # load load = os.getloadavg() text2 = "Load %.2f/%.2f/%.2f" % (load[0], load[1], load[2]) line2 = screen1.add_string_widget("String2", text=text2, x=1, y=2) # CPU usage text3 = "CPU " usage = commands.getoutput( "vmstat | tail -1 | awk '{print $15 \" \" $14 \" \" $13}'") usage = usage.split(" ") text3 = "CPU %s%%u %s%%i %s%%s" % (usage[2], usage[0], usage[1]) line3 = screen1.add_string_widget("String3", text=text3, x=1, y=3) # mem/swap mem = commands.getoutput("free | grep '^Mem:' | awk '{print $4 \" \" $2}'") mem = mem.split(" ") # 0 = free 1 = total mem = (float(mem[0]) / float(mem[1])) * 100.0 swap = commands.getoutput( "free | grep '^Swap:' | awk '{print $4 \" \" $2}'") swap = swap.split(" ") # 0 = free 1 = total swap = (float(swap[0]) / float(swap[1])) * 100.0 text4 = "free M:%.1f S:%.1f" % (mem, swap) line4 = screen1.add_string_widget("String4", text=text4, x=1, y=4) sep = ":" while True: text1 = uname + time.strftime("%H:%M:%S") line1.set_text(text1) load = os.getloadavg() text2 = "Load" + sep + "%.2f/%.2f/%.2f" % (load[0], load[1], load[2]) line2.set_text(text2) usage = commands.getoutput( "vmstat | tail -1 | awk '{print $15 \" \" $14 \" \" $13}'") usage = usage.split(" ") text3 = "CPU" + sep + "%s%%u %s%%i %s%%s" % (usage[2], usage[0], usage[1]) line3.set_text(text3) mem = commands.getoutput( "free | grep '^Mem:' | awk '{print $4 \" \" $2}'") mem = mem.split(" ") # 0 = free 1 = total mem = (float(mem[0]) / float(mem[1])) * 100.0 swap = commands.getoutput( "free | grep '^Swap:' | awk '{print $4 \" \" $2}'") swap = swap.split(" ") # 0 = free 1 = total swap = (float(swap[0]) / float(swap[1])) * 100.0 text4 = "free" + sep + "M:%.1f%% S:%.1f%%" % (mem, swap) line4.set_text(text4) if sep == ":": sep = " " else: sep = ":" time.sleep(1)