import time import threading from hm_pyhelper.logger import get_logger from gatewayconfig.gpio.mraa_gpio import init_mraa_pin LOGGER = get_logger(__name__) # How often to check for button presses MONITOR_CHECK_INTERVAL_SECONDS = 0.05 class MraaButton(threading.Thread): """ Unlike MraaLED, the button could not be easily monkey patched. Instead, basic button logic is implemented in its entirety. MraaButton will trigger #when_held if a button is pressed for hold_seconds. #when_held will only fire once if the button remains held down. If a button is pressed down for shorter, than hold_seconds, #when_held is not called. """ def __init__(self, pin_number, hold_seconds): """ pin_number refers to the pin number, not GPIO number: https://wiki.radxa.com/Rockpi4/hardware/gpio#GPIO_number """ super(MraaButton, self).__init__() LOGGER.info("Initializing mraa button on pin %s" % pin_number) self.daemon = True
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ import dbus import dbus.service from hm_pyhelper.logger import get_logger from lib.cputemp.bletools import BleTools logger = get_logger(__name__) BLUEZ_SERVICE_NAME = "org.bluez" LE_ADVERTISING_MANAGER_IFACE = "org.bluez.LEAdvertisingManager1" DBUS_OM_IFACE = "org.freedesktop.DBus.ObjectManager" DBUS_PROP_IFACE = "org.freedesktop.DBus.Properties" LE_ADVERTISEMENT_IFACE = "org.bluez.LEAdvertisement1" class Advertisement(dbus.service.Object): PATH_BASE = "/org/bluez/example/advertisement" def __init__(self, index, advertising_type): self.path = self.PATH_BASE + str(index) self.bus = BleTools.get_bus() self.ad_type = advertising_type
from time import sleep import dbus from hm_pyhelper.logger import get_logger from hm_pyhelper.miner_param import get_public_keys_rust from hm_pyhelper.hardware_definitions import variant_definitions, get_variant_attribute from hw_diag.utilities.shell import config_search_param logging = get_logger(__name__) DBUS_PROPERTIES = 'org.freedesktop.DBus.Properties' DBUS_OBJECTMANAGER = 'org.freedesktop.DBus.ObjectManager' # BlueZ DBUS_BLUEZ_SERVICE_NAME = 'org.bluez' DBUS_ADAPTER_IFACE = 'org.bluez.Adapter1' # NetworkManager DBUS_NM_SERVICE_NAME = 'org.freedesktop.NetworkManager' DBUS_NM_OBJECT_PATH = '/org/freedesktop/NetworkManager' DBUS_NM_IFACE = 'org.freedesktop.NetworkManager' DBUS_NM_DEVICE_IFACE = 'org.freedesktop.NetworkManager.Device' NM_DEVICE_TYPES = { 1: "Ethernet", 2: "Wi-Fi", 5: "Bluetooth", 6: "OLPC", 7: "WiMAX", 8: "Modem", 9: "InfiniBand", 10: "Bond",