def get_homepage_data(self): hostname = str(socket.gethostname()) ssid = helpers.get_ssid() wired = subprocess.check_output(['cat', '/sys/class/net/eth0/operstate']).decode('utf-8').strip('\n') if wired == 'up': network = 'Ethernet' elif ssid: if helpers.access_point(): network = 'Wifi access point' else: network = 'Wifi : ' + ssid else: network = 'Not Connected' iot_device = [] for device in iot_devices: iot_device.append({ 'name': iot_devices[device].device_name + ' : ' + str(iot_devices[device].data['value']), 'type': iot_devices[device].device_type.replace('_', ' '), 'message': iot_devices[device].device_identifier + iot_devices[device].get_message() }) return { 'hostname': hostname, 'ip': helpers.get_ip(), 'mac': helpers.get_mac_address(), 'iot_device_status': iot_device, 'server_status': helpers.get_odoo_server_url() or 'Not Configured', 'six_terminal': self.get_six_terminal(), 'network_status': network, 'version': helpers.get_version(), }
def display(self, display_identifier=None): cust_js = None interfaces = ni.interfaces() with open(os.path.join(os.path.dirname(__file__), "../static/src/js/worker.js")) as js: cust_js = js.read() display_ifaces = [] for iface_id in interfaces: if 'wlan' in iface_id or 'eth' in iface_id: iface_obj = ni.ifaddresses(iface_id) ifconfigs = iface_obj.get(ni.AF_INET, []) essid = helpers.get_ssid() for conf in ifconfigs: if conf.get('addr'): display_ifaces.append({ 'iface_id': iface_id, 'essid': essid, 'addr': conf.get('addr'), 'icon': 'sitemap' if 'eth' in iface_id else 'wifi', }) if not display_identifier: display_identifier = DisplayDriver.get_default_display().device_identifier return pos_display_template.render({ 'title': "Odoo -- Point of Sale", 'breadcrumb': 'POS Client display', 'cust_js': cust_js, 'display_ifaces': display_ifaces, 'display_identifier': display_identifier, 'pairing_code': cm and cm.pairing_code, })
def print_status(self): """Prints the status ticket of the IoTBox on the current printer.""" wlan = '' ip = '' mac = '' homepage = '' hosting_ap = os.system('pgrep hostapd') == 0 ssid = helpers.get_ssid() if hosting_ap: with open('/root_bypass_ramdisks/etc/hostapd/hostapd.conf' ) as config_file: lines = config_file.readlines() ssid = lines[1].split("=")[1].replace("\n", "") wlan = '\nWireless network:\n%s\n\n' % ssid elif ssid: wlan = '\nWireless network:\n%s\n\n' % ssid interfaces = ni.interfaces() ips = [] for iface_id in interfaces: iface_obj = ni.ifaddresses(iface_id) ifconfigs = iface_obj.get(ni.AF_INET, []) for conf in ifconfigs: if conf.get('addr') and conf.get('addr'): ips.append(conf.get('addr')) if len(ips) == 0: ip = '\nERROR: Could not connect to LAN\n\nPlease check that the IoTBox is correc-\ntly connected with a network cable,\n that the LAN is setup with DHCP, and\nthat network addresses are available' elif len(ips) == 1: ip = '\nIP Address:\n%s\n' % ips[0] else: ip = '\nIP Addresses:\n%s\n' % '\n'.join(ips) mac_addr = get_mac() h = iter(hex(mac_addr)[2:].zfill(12)) mac_addr = ":".join(i + next(h) for i in h) if len(ips) >= 1: ips_filtered = [i for i in ips if i != '127.0.0.1'] main_ips = ips_filtered and ips_filtered[0] or '127.0.0.1' mac = '\nMAC Address:\n%s\n' % mac_addr homepage = '\nHomepage:\nhttp://%s:8069\n\n' % main_ips center = b'\x1b\x61\x01' title = b'\n\x1b\x21\x30\x1b\x4d\x01IoTBox Status\x1b\x4d\x00\x1b\x21\x00\n' cut = b'\x1d\x56\x41' self.print_raw(center + title + wlan.encode() + mac.encode() + ip.encode() + homepage.encode() + cut + b'\n')
def print_status(self): """Prints the status ticket of the IoTBox on the current printer.""" wlan = '' ip = '' mac = '' homepage = '' pairing_code = '' ssid = helpers.get_ssid() wlan = '\nWireless network:\n%s\n\n' % ssid interfaces = ni.interfaces() ips = [] for iface_id in interfaces: iface_obj = ni.ifaddresses(iface_id) ifconfigs = iface_obj.get(ni.AF_INET, []) for conf in ifconfigs: if conf.get('addr') and conf.get('addr'): ips.append(conf.get('addr')) if len(ips) == 0: ip = '\nERROR: Could not connect to LAN\n\nPlease check that the IoTBox is correc-\ntly connected with a network cable,\n that the LAN is setup with DHCP, and\nthat network addresses are available' elif len(ips) == 1: ip = '\nIP Address:\n%s\n' % ips[0] else: ip = '\nIP Addresses:\n%s\n' % '\n'.join(ips) if len(ips) >= 1: ips_filtered = [i for i in ips if i != '127.0.0.1'] main_ips = ips_filtered and ips_filtered[0] or '127.0.0.1' mac = '\nMAC Address:\n%s\n' % helpers.get_mac_address() homepage = '\nHomepage:\nhttp://%s:8069\n\n' % main_ips code = cm and cm.pairing_code if code: pairing_code = '\nPairing Code:\n%s\n' % code center = b'\x1b\x61\x01' title = b'\n\x1b\x21\x30\x1b\x4d\x01IoTBox Status\x1b\x4d\x00\x1b\x21\x00\n' cut = b'\x1d\x56\x41' self.print_raw(center + title + wlan.encode() + mac.encode() + ip.encode() + homepage.encode() + pairing_code.encode() + cut + b'\n')