Create a door controller simulator
The simulator fakes up some libraries so that the main door controller script can be tested without needing a Raspberry Pi. Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
668260c7b2
commit
8faf31c86f
|
@ -0,0 +1,18 @@
|
|||
print("Using fake GPIO driver.")
|
||||
|
||||
BOARD = "board"
|
||||
IN = "input"
|
||||
OUT = "output"
|
||||
|
||||
def cleanup():
|
||||
print("> GPIO: cleaning up!")
|
||||
|
||||
def output(pin, voltage):
|
||||
state = "on" if (voltage == 1) else "off"
|
||||
print("> GPIO setting pin %s to %s." % (pin, state))
|
||||
|
||||
def setmode(mode):
|
||||
print("> GPIO setting mode: %s." % mode)
|
||||
|
||||
def setup(pin, iomode):
|
||||
print("> GPIO setting up pin: %s, %s." % (pin, iomode))
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
import os
|
||||
import sys
|
||||
#######################################################
|
||||
# #
|
||||
# Add simulator/ directory to the module search path. #
|
||||
# #
|
||||
#######################################################
|
||||
sys.path.insert(0, os.path.join(os.getcwd(), "simulator"))
|
||||
|
||||
|
||||
|
||||
print("Welcome to the Workantile Door System Simulator!")
|
||||
import doors
|
||||
from doors import *
|
|
@ -0,0 +1 @@
|
|||
../doors.py
|
|
@ -0,0 +1,18 @@
|
|||
print("Using fake serial driver.")
|
||||
|
||||
import random
|
||||
import string
|
||||
|
||||
class Serial:
|
||||
def __init__(self, path, baudrate, timeout):
|
||||
self.path = path
|
||||
self.baudrate = baudrate
|
||||
self.timeout = timeout
|
||||
|
||||
def read(self, count):
|
||||
lst = [random.choice(string.hexdigits) for n in range(count - 2)]
|
||||
ret = "A" + "".join(lst) + "D"
|
||||
return ret.encode()
|
||||
|
||||
def flushInput(self):
|
||||
pass
|
|
@ -0,0 +1,24 @@
|
|||
print("Using fake urllib module.")
|
||||
|
||||
import random
|
||||
|
||||
class Request:
|
||||
def __init__(self, url):
|
||||
self.url = url
|
||||
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, type, value, tb):
|
||||
pass
|
||||
|
||||
def read(self):
|
||||
if random.randint(0, 1) == 0:
|
||||
return "OK".encode()
|
||||
return "ERROR".encode()
|
||||
|
||||
|
||||
|
||||
def urlopen(url):
|
||||
print("> URLLIB: opening url %s" % url)
|
||||
return Request(url)
|
Loading…
Reference in New Issue