def actuate(terminal):
    connection = SerialConnection(port=terminal)
    arduinoDue = ArduinoInterface(connection, boards.Due)

    arduinoDue.set_precision(12)
    arduinoDue.add_input(54)
    arduinoDue.add_output(40)

    last_time = time.time()
    start_time = last_time
    read_c = 0

    diff = last_time - start_time
    measures = []
    while diff < 10:
        print "Reading... {0}".format(diff)
        results = arduinoDue.actuate([(40,1)])
        measures.append(results)
        last_time = time.time()
        diff = last_time - start_time

    # Process samples
    samples = []
    for element in measures:
        for i in xrange(len(element)):
            samples.append(int(element[i][1]))

    # print "{0}".format(samples)
    print "Samples len: {0}".format(len(samples))

    plt.clf()
    plt.plot(samples)
    plt.show(block=True)
예제 #2
0
 def test_actuate_with_one_read(self):
     self._connection = MockConnection(REPORT)
     self._interface = ArduinoInterface(self._connection, boards.Due)
     self._interface.add_output(60)
     self._interface.add_input(16)
     self._interface.add_input(61)
     response = self._interface.actuate([(60, 128)])
     self.assertEqual(1, len(response["D16"]))
     self.assertTrue(response["D16"][0])
     self.assertEqual(1, len(response["A7"]))
     self.assertEqual(0x0520, response["A7"][0])
예제 #3
0
 def test_average(self):
     self._connection = MockConnection(REPORT_B)
     self._interface = ArduinoInterface(self._connection, boards.Due)
     self._interface.set_report_mode(REPORT_MODES.AVERAGE,
                                     read_count=11,
                                     read_delay=5)
     self._interface.add_output(boards.Due["ANALOG_PINS"][6])
     self._interface.add_input(boards.Due["ANALOG_PINS"][7])  # Pin A7
     self._interface.add_input(boards.Due["DIGITAL_PINS"][16])
     response = self._interface.actuate([(60, 128)])
     self.assertEqual(2, len(response))
     self.assertEqual(1, len(response["D16"]))
     self.assertTrue(response["D16"][0])
     self.assertEqual(0x0100, response["A7"][0])
예제 #4
0
 def test_actuate_with_many_pins_readings(self):
     self._connection = MockConnection(REPORT_C)
     self._interface = ArduinoInterface(self._connection, boards.Due)
     self._interface.set_report_mode(REPORT_MODES.BULK,
                                     read_count=5,
                                     read_delay=5)
     self._interface.add_output(60)  # Pin A6
     self._interface.add_input(61)  # Pin A7
     self._interface.add_input(62)  # Pin A8
     response = self._interface.actuate([(60, 128)])
     for i in range(0, 5):
         self.assertEqual(0x0100, response["A7"][i])
     for i in range(0, 5):
         self.assertEqual(0x0100, response["A8"][i])
예제 #5
0
def actuate(terminal):
    connection = SerialConnection(port=terminal)
    arduinoDue = ArduinoInterface(connection, boards.Due)

    arduinoDue.reset()
    arduinoDue.set_report_mode(REPORT_MODES.BULK, read_count=5, read_delay=100)
    arduinoDue.add_output(40)
    arduinoDue.add_input(64)
    arduinoDue.add_input(63)
    #    arduinoDue.add_input(2)

    output = arduinoDue.actuate([(40, 1)])
    for i in output.keys():
        print i
        print output[i]
def actuate(terminal):
    global BREAK_COUNT
    connection = SerialConnection(port=terminal)
    arduinoDue = ArduinoInterface(connection, boards.Due)

    arduinoDue.reset()  #Just in case
    arduinoDue.set_report_mode(protocol.REPORT_MODES.AVERAGE,
                               read_count=100,
                               read_delay=0)
    arduinoDue.set_precision(12)

    arduinoDue.add_output(40)
    arduinoDue.add_output(66)
    #    arduinoDue.add_input(65)
    #    arduinoDue.add_input(64)
    #    arduinoDue.add_input(63)
    #    arduinoDue.add_input(62)
    #    arduinoDue.add_input(61)
    #    arduinoDue.add_input(60)
    #    arduinoDue.add_input(59)
    #    arduinoDue.add_input(58)
    #    arduinoDue.add_input(57)
    #    arduinoDue.add_input(56)
    #    arduinoDue.add_input(55)
    arduinoDue.add_input(54)
    arduinoDue.add_input(55)
    arduinoDue.add_input(56)

    last_time = time.time()
    start_time = last_time
    read_c = 0

    for i in xrange(0, BREAK_COUNT):
        output = arduinoDue.actuate([(40, 1), (66, 255)])
        #print output
        read_c = read_c + 1
        new_time = time.time()

        if (new_time - start_time) > 1:
            print str(read_c - 1)  # The current read was out of the period
            read_c = 1
            start_time = new_time

        last_time = new_time
예제 #7
0
 def test_actuate_with_many_readings(self):
     self._connection = MockConnection(REPORT_B)
     self._interface = ArduinoInterface(self._connection, boards.Due)
     self._interface.set_report_mode(REPORT_MODES.BULK,
                                     read_count=11,
                                     read_delay=5)
     self._interface.add_output(60)
     self._interface.add_input(61)
     self._interface.add_input(16)
     response = self._interface.actuate([(60, 128)])
     self.assertEqual(2, len(response))
     self.assertTrue("D16" in response.keys())
     self.assertEqual(11, len(response["D16"]))
     self.assertTrue(response["D16"][0])
     self.assertTrue(response["D16"][6])
     self.assertTrue(response["D16"][7])
     self.assertFalse(response["D16"][8])
     self.assertTrue(response["D16"][9])
     self.assertFalse(response["D16"][10])
     for i in range(0, 11):
         self.assertEqual(0x0100, response["A7"][i])
예제 #8
0
 def setUp(self):
     self._connection = MockConnection(ACK)
     self._interface = ArduinoInterface(self._connection, boards.Due)