Beispiel #1
0
 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)
Beispiel #2
0
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))
Beispiel #3
0
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)
Beispiel #5
0
    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)
Beispiel #6
0
    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)