I have made a small library to help users develop for Raspberry Pi on Windows or other systems that don't have RPi.GPIO libraries. It implements RPi.GPIO functions and return None values.
When we are developing on some IDE's, they will verify the code syntax and consequently report many errors as the library is not present on include paths. That can be annoying for the user, as they see a lot of errors everywhere and some red lines.
With FakeRPi you can fix that and also benefits from code completion and some utilities.
Also people who like to mantain code in windows and deploy/sync with Pi benefits from this.
Note: This is not an emulator of Rasberry Pi!
Importing
Importing library Python >= 2.7 & Python >= 3.1
Code: Select all
import importlib.util
try:
importlib.util.find_spec('RPi.GPIO')
import RPi.GPIO as GPIO
except ImportError:
"""
import FakeRPi.GPIO as GPIO
OR
import FakeRPi.RPiO as RPiO
"""
import FakeRPi.GPIO as GPIO
# Do your code hereCode: Select all
import imp
try:
imp.find_module('RPi.GPIO')
import RPi.GPIO as GPIO
except ImportError:
"""
import FakeRPi.GPIO as GPIO
OR
import FakeRPi.RPiO as RPiO
"""
import FakeRPi.GPIO as GPIO
# Do your code hereCode: Select all
import importlib.util
try:
importlib.util.find_spec('RPi.GPIO')
import RPi.GPIO as GPIO
except ImportError:
"""
import FakeRPi.GPIO as GPIO
OR
import FakeRPi.RPiO as RPiO
"""
import FakeRPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(22, GPIO.IN)
GPIO.output(18, GPIO.HIGH)
if GPIO.input(22):
print("Pin 2 is HIGH")
else:
print("Pin 2 is LOW")
GPIO.cleanup()
Code: Select all
import importlib.util
try:
importlib.util.find_spec('RPi.GPIO')
import RPi.GPIO as GPIO
except ImportError:
"""
import FakeRPi.GPIO as GPIO
OR
import FakeRPi.RPiO as RPiO
"""
import FakeRPi.GPIO as GPIO
import FakeRPi.Utilities as Utilities
Utilities.set_default_pintype(Utilities.PIN_TYPE_BOARD)
pin1 = Utilities.get_pin(Utilities.PIN_GPIO_GEN_1)
pin2 = Utilities.get_pin(Utilities.PIN_GPIO_GEN_2)
pin3 = Utilities.get_pin(Utilities.PIN_GPIO_GEN_3)
pin4 = Utilities.get_pin(Utilities.PIN_GPIO_GEN_4)
pin5 = Utilities.get_pin(Utilities.PIN_GPIO_GEN_5)
pin6 = Utilities.get_pin(Utilities.PIN_GPIO_GEN_6)
pin7 = Utilities.get_pin(Utilities.PIN_GPIO_GEN_7)
sda1 = Utilities.get_pin(Utilities.PIN_GPIO_02_SDA1_I2C)
GPIO.setmode(RPiO.BOARD)
GPIO.setup(pin1, GPIO.OUTPUT)
GPIO.setup(pin1, GPIO.OUTPUT)
GPIO.setup(pin2, GPIO.INPUT)
GPIO.setup(pin3, GPIO.INPUT)
GPIO.setup(pin4, GPIO.OUTPUT)
GPIO.setup(pin5, GPIO.OUTPUT)
GPIO.setup(pin6, GPIO.INPUT)
GPIO.setup(pin7, GPIO.OUTPUT)
print(GPIO.input(pin6))
print(Utilities.PIN_GPIO_GEN_6 == Utilities.PIN_GPIO_25_GEN_6 == Utilities.PIN_GPIO_25) # Must be true