class gpiohandle(httphandle): def __init__(self, name='gpio', interval=0.1, hostname=""): httphandle.__init__(self, name, interval, hostname) self.gpio = GPIO(self) def execute(self): #重写 self.gpio.stop() #停止之前的命令 cmd = self.gethttpdata(self.name) #print cmd if cmd <> None and cmd.has_key('cmdname'): cmdname = cmd['cmdname'] #print cmdname if cmdname == 'setgpio': self.setgpio(cmd) elif cmdname == 'replygpio': self.replygpio(cmd) elif cmdname == 'getgpio': self.getgpio(cmd) elif cmdname == 'getgpios': self.getgpios() def checkGPIO(self, gpio): i = int(gpio) if not self.gpio.isAvailable(i): print "GPIO " + gpio + " Not Available" return False if not self.gpio.isEnabled(i): print "GPIO " + gpio + " Disabled" return False return True def getgpios(self): data = self.gpio.writeJSON() self.posthttpdata(self.name, data) def getgpio(self, cmd): if cmd.has_key('pins'): pins = cmd["pins"] self.gpio.reply(pins) def setgpio(self, cmd): if cmd.has_key('setup') and cmd.has_key('loop'): setup = cmd['setup'] loop = cmd['loop'] self.gpio.setdata(setup, loop, []) if not self.gpio.isAlive(): self.gpio.setDaemon(True) #守护线程 self.gpio.start() def replygpio(self, cmd): if cmd.has_key('setup') and cmd.has_key('loop') and cmd.has_key( 'reply'): setup = cmd['setup'] loop = cmd['loop'] reply = cmd['reply'] self.gpio.setdata(setup, loop, reply) if not self.gpio.isAlive(): self.gpio.setDaemon(True) #守护线程 self.gpio.start()
class gpiohandle(httphandle): def __init__(self, name="gpio", interval=0.1, hostname=""): httphandle.__init__(self, name, interval, hostname) self.gpio = GPIO(self) def execute(self): # 重写 self.gpio.stop() # 停止之前的命令 cmd = self.gethttpdata(self.name) # print cmd if cmd <> None and cmd.has_key("cmdname"): cmdname = cmd["cmdname"] # print cmdname if cmdname == "setgpio": self.setgpio(cmd) elif cmdname == "replygpio": self.replygpio(cmd) elif cmdname == "getgpio": self.getgpio(cmd) elif cmdname == "getgpios": self.getgpios() def checkGPIO(self, gpio): i = int(gpio) if not self.gpio.isAvailable(i): print "GPIO " + gpio + " Not Available" return False if not self.gpio.isEnabled(i): print "GPIO " + gpio + " Disabled" return False return True def getgpios(self): data = self.gpio.writeJSON() self.posthttpdata(self.name, data) def getgpio(self, cmd): if cmd.has_key("pins"): pins = cmd["pins"] self.gpio.reply(pins) def setgpio(self, cmd): if cmd.has_key("setup") and cmd.has_key("loop"): setup = cmd["setup"] loop = cmd["loop"] self.gpio.setdata(setup, loop, []) if not self.gpio.isAlive(): self.gpio.setDaemon(True) # 守护线程 self.gpio.start() def replygpio(self, cmd): if cmd.has_key("setup") and cmd.has_key("loop") and cmd.has_key("reply"): setup = cmd["setup"] loop = cmd["loop"] reply = cmd["reply"] self.gpio.setdata(setup, loop, reply) if not self.gpio.isAlive(): self.gpio.setDaemon(True) # 守护线程 self.gpio.start()