def convert1(self): if pfio.read_output(): pfio.digital_write(1, 0) print('LED 1 OFF') sleep(0.5) else: pfio.digital_write(1, 1) print('LED 1 ON') sleep(0.5)
def ajax(request): data = request.GET.dict() return_values = dict() if 'init' in data: try: pfio.init() except pfio.InitError as error: return_values.update({'status': 'init failed'}) return_values.update({'error': str(error)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) if 'read_input' in data: try: input_bitp = pfio.read_input() except Exception as e: return_values.update({'status': 'read_input failed'}) return_values.update({'error': str(e)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) else: return_values.update({'input_bitp': input_bitp}) if 'read_output' in data: try: output_bitp = pfio.read_output() except Exception as e: return_values.update({'status': 'read_output failed'}) return_values.update({'error': str(e)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) else: return_values.update({'output_bitp': output_bitp}) if 'write_output' in data: try: output_bitp = int(data['write_output']) except ValueError: return_values.update({'status': 'write_output failed'}) return_values.update( {'error': "write_output needs an integer bit pattern."}) return HttpResponseBadRequest(simplejson.dumps(return_values)) try: pfio.write_output(output_bitp) except Exception as e: return_values.update({'status': "write_output failed"}) return_values.update({'error': str(e)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) return_values.update({'status': 'success'}) return HttpResponse(simplejson.dumps(return_values))
def ajax(request): data = request.GET.dict() return_values = dict() if 'init' in data: try: pfio.init() except pfio.InitError as error: return_values.update({'status' : 'init failed'}) return_values.update({'error' : str(error)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) if 'read_input' in data: try: input_bitp = pfio.read_input() except Exception as e: return_values.update({'status' : 'read_input failed'}) return_values.update({'error' : str(e)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) else: return_values.update({'input_bitp' : input_bitp}) if 'read_output' in data: try: output_bitp = pfio.read_output() except Exception as e: return_values.update({'status' : 'read_output failed'}) return_values.update({'error' : str(e)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) else: return_values.update({'output_bitp' : output_bitp}) if 'write_output' in data: try: output_bitp = int(data['write_output']) except ValueError: return_values.update({'status' : 'write_output failed'}) return_values.update({'error' : "write_output needs an integer bit pattern."}) return HttpResponseBadRequest(simplejson.dumps(return_values)) try: pfio.write_output(output_bitp) except Exception as e: return_values.update({'status' : "write_output failed"}) return_values.update({'error' : str(e)}) return HttpResponseBadRequest(simplejson.dumps(return_values)) return_values.update({'status' : 'success'}) return HttpResponse(simplejson.dumps(return_values))
def timeout_loop(self): # read PiFace input/output state global last_data r_input = '{0:08b}'.format(pfio.read_input()) r_output = '{0:08b}'.format(pfio.read_output()) data = {"in": [], "out": []} for i in range(8): data['in'].append(r_input[7-i]) data['out'].append(r_output[7-i]) if data != last_data: self.write_message(json.dumps(data)) last_data = data # here come the magic part .. loop if self.connected: tornado.ioloop.IOLoop.instance().add_timeout(datetime.timedelta(seconds=.5), self.timeout_loop)
def handle(self): data = self.request[0] socket = self.request[1] # read the UDP packet into our own object packet = UdpPacket().from_network(data) # only support digital read/writes if packet.command == DIGITAL_WRITE_CMD: if verbose: print "Digital write request for pin %d -> %d" % (packet.pin, packet.value) pfio.digital_write(packet.pin, packet.value) response = UdpPacket(DIGITAL_WRITE_ACK, packet.pin) socket.sendto(response.for_network(), self.client_address) elif packet.command == DIGITAL_READ_CMD: if verbose: print "Digital read request for pin %d" % packet.pin response = UdpPacket(DIGITAL_READ_ACK, packet.pin, pfio.digital_read(packet.pin)) socket.sendto(response.for_network(), self.client_address) elif packet.command == READ_OUT_CMD: if verbose: print "Digital read request for output pins" response = UdpPacket(READ_OUT_ACK, 0, pfio.read_output()) socket.sendto(response.for_network(), self.client_address) elif packet.command == WATCHDOG_CMD: if verbose: print "Watchdog request" response = UdpPacket(WATCHDOG_ACK, packet.pin) socket.sendto(response.for_network(), self.client_address) else: if verbose: print "Unknown packet command (%d)" % packet.command response = UdpPacket(ERROR_ACK, packet.pin) socket.sendto(response.for_network(), self.client_address)