Better is_raspberrypi
This commit is contained in:
parent
02afe06655
commit
e9d203ae7b
1 changed files with 40 additions and 6 deletions
|
|
@ -1,15 +1,49 @@
|
||||||
from openflexure_microscope.api.views import MicroscopeView
|
from openflexure_microscope.api.views import MicroscopeView
|
||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import os
|
import io
|
||||||
from sys import platform
|
from sys import platform
|
||||||
|
|
||||||
|
|
||||||
def is_raspberrypi():
|
def is_raspberrypi(raise_on_errors=False):
|
||||||
if (platform != "linux"):
|
"""
|
||||||
return False
|
Checks if Raspberry Pi.
|
||||||
else:
|
"""
|
||||||
return (os.uname()[1] == 'raspberrypi')
|
try:
|
||||||
|
with io.open('/proc/cpuinfo', 'r') as cpuinfo:
|
||||||
|
found = False
|
||||||
|
for line in cpuinfo:
|
||||||
|
if line.startswith('Hardware'):
|
||||||
|
found = True
|
||||||
|
label, value = line.strip().split(':', 1)
|
||||||
|
value = value.strip()
|
||||||
|
if value not in (
|
||||||
|
'BCM2708',
|
||||||
|
'BCM2709',
|
||||||
|
'BCM2835',
|
||||||
|
'BCM2836'
|
||||||
|
):
|
||||||
|
if raise_on_errors:
|
||||||
|
raise ValueError(
|
||||||
|
'This system does not appear to be a '
|
||||||
|
'Raspberry Pi.'
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
if not found:
|
||||||
|
if raise_on_errors:
|
||||||
|
raise ValueError(
|
||||||
|
'Unable to determine if this system is a Raspberry Pi.'
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
except IOError:
|
||||||
|
if raise_on_errors:
|
||||||
|
raise ValueError('Unable to open `/proc/cpuinfo`.')
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
class ShutdownAPI(MicroscopeView):
|
class ShutdownAPI(MicroscopeView):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue