MikrofonSensor und TemperaturSenor die zwei Python programme funktionieren. mit den jeweiligen 2 json Datein. Beim TemperaturSensor wird im Terminal keine Wertre ausgegeben aber in der json Datei kann man die Temp und Hum sehen.
This commit is contained in:
parent
4c654ec969
commit
1751076592
2614 changed files with 349009 additions and 0 deletions
134
lib/python3.11/site-packages/adafruit_platformdetect/__init__.py
Normal file
134
lib/python3.11/site-packages/adafruit_platformdetect/__init__.py
Normal file
|
@ -0,0 +1,134 @@
|
|||
# SPDX-FileCopyrightText: 2014-2018 Tony DiCola, Limor Fried, Brennen Bearnes
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Attempt to detect the current platform.
|
||||
"""
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
try:
|
||||
from typing import Optional
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
from adafruit_platformdetect.board import Board
|
||||
from adafruit_platformdetect.chip import Chip
|
||||
|
||||
# Needed to find libs (like libusb) installed by homebrew on Apple Silicon
|
||||
if sys.platform == "darwin":
|
||||
os.environ["DYLD_FALLBACK_LIBRARY_PATH"] = "/opt/homebrew/lib/"
|
||||
|
||||
|
||||
# Various methods here may retain state in future, so tell pylint not to worry
|
||||
# that they don't use self right now:
|
||||
# pylint: disable=no-self-use
|
||||
class Detector:
|
||||
"""Wrap various platform detection functions."""
|
||||
|
||||
def __init__(self) -> None:
|
||||
self.board = Board(self)
|
||||
self.chip = Chip(self)
|
||||
|
||||
def get_cpuinfo_field(self, field: str) -> Optional[str]:
|
||||
"""
|
||||
Search /proc/cpuinfo for a field and return its value, if found,
|
||||
otherwise None.
|
||||
"""
|
||||
# Match a line like 'Hardware : BCM2709':
|
||||
pattern = r"^" + field + r"\s+:\s+(.*)$"
|
||||
|
||||
with open("/proc/cpuinfo", "r", encoding="utf-8") as infile:
|
||||
cpuinfo = infile.read().split("\n")
|
||||
for line in cpuinfo:
|
||||
match = re.search(pattern, line, flags=re.IGNORECASE)
|
||||
if match:
|
||||
return match.group(1)
|
||||
return None
|
||||
|
||||
def check_dt_compatible_value(self, value: str) -> bool:
|
||||
"""
|
||||
Search /proc/device-tree/compatible for a value and return True, if found,
|
||||
otherwise False.
|
||||
"""
|
||||
# Match a value like 'qcom,apq8016-sbc':
|
||||
dt_compatible = self.get_device_compatible()
|
||||
if dt_compatible and value in dt_compatible:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def get_armbian_release_field(self, field: str) -> Optional[str]:
|
||||
"""
|
||||
Search /etc/armbian-release, if it exists, for a field and return its
|
||||
value, if found, otherwise None.
|
||||
"""
|
||||
field_value = None
|
||||
|
||||
pattern = r"^" + field + r"=(.*)"
|
||||
try:
|
||||
with open("/etc/armbian-release", "r", encoding="utf-8") as release_file:
|
||||
armbian = release_file.read().split("\n")
|
||||
for line in armbian:
|
||||
match = re.search(pattern, line)
|
||||
if match:
|
||||
field_value = match.group(1)
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
return field_value
|
||||
|
||||
def get_device_model(self) -> Optional[str]:
|
||||
"""
|
||||
Search /proc/device-tree/model for the device model and return its value, if found,
|
||||
otherwise None.
|
||||
"""
|
||||
try:
|
||||
with open("/proc/device-tree/model", "r", encoding="utf-8") as model_file:
|
||||
return model_file.read()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
return None
|
||||
|
||||
def get_device_compatible(self) -> Optional[str]:
|
||||
"""
|
||||
Search /proc/device-tree/compatible for the compatible chip name.
|
||||
"""
|
||||
try:
|
||||
with open(
|
||||
"/proc/device-tree/compatible", "r", encoding="utf-8"
|
||||
) as model_file:
|
||||
return model_file.read()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
return None
|
||||
|
||||
def check_board_asset_tag_value(self) -> Optional[str]:
|
||||
"""
|
||||
Search /sys/devices/virtual/dmi/id for the device model and return its value, if found,
|
||||
otherwise None.
|
||||
"""
|
||||
try:
|
||||
with open(
|
||||
"/sys/devices/virtual/dmi/id/board_asset_tag", "r", encoding="utf-8"
|
||||
) as tag_file:
|
||||
return tag_file.read().strip()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
return None
|
||||
|
||||
def check_board_name_value(self) -> Optional[str]:
|
||||
"""
|
||||
Search /sys/devices/virtual/dmi/id for the board name and return its value, if found,
|
||||
otherwise None. Debian/ubuntu based
|
||||
"""
|
||||
try:
|
||||
with open(
|
||||
"/sys/devices/virtual/dmi/id/board_name", "r", encoding="utf-8"
|
||||
) as board_name_file:
|
||||
return board_name_file.read().strip()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
return None
|
Loading…
Add table
Add a link
Reference in a new issue