def find_first_device_or_simulate(self):
        simulated_device = SimulatedUSB()
        try:
            fd = FindDevices()
            result, usb_info = fd.list_usb()
            log.debug(" USB ID strings: %s" % usb_info[0])
            (vid, pid) = usb_info[0].split(':')[0:2]
        except:
            log.debug("Error find devices: %s" % str(sys.exc_info()))
            

        try:
            real_device = CameraUSB()
            log.debug("Attempt real device connection")
            if real_device.connect(9386, pid):
                log.debug("Succesfull connection to: %s" % pid)
                return real_device
        except:
            log.debug("Exception %s" % str(sys.exc_info()))
            pass

        log.debug("Return simulated device")
        simulated_device.assign("Stroker785L")
        simulated_device.serial_number = "Simulated Stroker785L"
        return simulated_device            
    def test_no_device_connection(self):
        # Devices are on from setup, turn off manually here and wait
        self.ensure_all_off(self.phd_relay)
        time.sleep(1)

        ud = CameraUSB()
        vid = 0x24aa
        pid = 0x0009
        result = ud.connect(vid, pid)
        self.assertFalse(result)

        fd = FindDevices()
        result, serial = fd.get_serial(vid, pid)
        self.assertFalse(result)
        self.assertTrue(ud.disconnect())
示例#3
0
 def setUp(self):
     self.relay = relay.Relay()
     self.fd = FindDevices()
     self.vid = 0x24aa
     self.pid = 0x0009
示例#4
0
class Test(unittest.TestCase):

    def setUp(self):
        self.relay = relay.Relay()
        self.fd = FindDevices()
        self.vid = 0x24aa
        self.pid = 0x0009

    def test_get_serial(self):
        self.ensure_all_off(self.relay)
        time.sleep(1)
        result, dev_list = self.fd.get_serial(self.vid, self.pid)
        self.assertFalse(result)
        self.assertEquals(dev_list, "serial_failure")

        # Assumes a wasatch camera is plugged into USB
        self.ensure_all_on(self.relay)
        time.sleep(10)

        # Get the device list manually
        result, dev_list = self.fd.get_serial(self.vid, self.pid)
        self.assertTrue(result)
        self.assertNotEqual(dev_list, "serial_failure")

        # Arbitrary requirement that serial number has to be at least
        # 3 chars
        self.assertTrue(len(dev_list) > 3)

    def test_list_usb(self):
        # With no devices powered, ensure the list is empty
        self.ensure_all_off(self.relay)
        time.sleep(1)
        result, usb_list = self.fd.list_usb()
        self.assertTrue(result)
        self.assertEqual(usb_list, []) 

        # Connect devices, ensure at least one is listed
        self.ensure_all_on(self.relay)
        # As of 2015-08-15 11:06 certain devices are not available on
        # the bus on odroid for way too long. Give them time to
        # initialize before trying to read the usb descriptor.
        # Sometimes even 20 seconds is not long enough.
        time.sleep(20)

        result, usb_list = self.fd.list_usb()
        print "List is: %s" % usb_list
        self.assertTrue(result)
        self.assertTrue(len(usb_list) == 1)
        self.assertTrue("24aa" in str(usb_list))

    def ensure_all_off(self, relay):
        self.assertTrue(relay.zero_off())
        self.assertTrue(relay.one_off())
        self.assertTrue(relay.two_off())
        self.assertTrue(relay.three_off())
        return True

    def ensure_all_on(self, relay):
        self.assertTrue(relay.zero_on())
        self.assertTrue(relay.one_on())
        self.assertTrue(relay.two_on())
        self.assertTrue(relay.three_on())
        return True