hw_drivers/iot_handlers/interfaces/DisplayInterface_L.py

43 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from re import sub, finditer
import subprocess
from vcgencmd import Vcgencmd
import RPi.GPIO as GPIO
from odoo.addons.hw_drivers.interface import Interface
class DisplayInterface(Interface):
_loop_delay = 0
connection_type = 'display'
def get_devices(self):
display_devices = {}
x_screen = 0
hdmi_port = {'hdmi_0' : 2}
rpi_type = GPIO.RPI_INFO.get('TYPE')
# RPI 3B+ response on for booth hdmi port
if 'Pi 4' in rpi_type:
hdmi_port.update({'hdmi_1': 7})
for hdmi in hdmi_port:
power_state_hdmi = Vcgencmd().display_power_state(hdmi_port.get(hdmi))
if power_state_hdmi == 'on':
iot_device = {
'identifier': hdmi,
'name': 'Display hdmi ' + str(x_screen),
'x_screen': str(x_screen),
}
display_devices[hdmi] = iot_device
x_screen += 1
if not len(display_devices):
# No display connected, create "fake" device to be accessed from another computer
display_devices['distant_display'] = {
'name': "Distant Display",
}
return display_devices