Ejemplo n.º 1
0
 def test_autodetect(self):
     SAMPLE_DATA = b'1|cmd=home\n'
     logger = MagicMock(write=MagicMock(return_value=datetime.timedelta()))
     bus = Bus(logger)
     c = LoRa(bus=bus.handle('lora'), config={'device_id': 4})
     tester = bus.handle('tester')
     tester.register('raw')
     bus.connect('tester.raw', 'lora.raw')
     c.start()
     tester.publish('raw', SAMPLE_DATA)
     c.request_stop()
     c.join()
     self.assertEqual(c.device_id, 4)
Ejemplo n.º 2
0
    def test_autodetect(self):
        SAMPLE_DATA = b'1|cmd=home\n'
        logger = MagicMock()
        robot_bus = BusHandler(logger, out={}, name='robot')
        bus = BusHandler(logger,
                         out={'raw':[(robot_bus.queue, 'raw')]},
                         name='lora')

        c = LoRa(bus=bus, config={'device_id': 4})
        c.start()
        c.bus.queue.put((123, 'raw', SAMPLE_DATA))
        c.request_stop()
        c.join()
        self.assertEqual(c.device_id, 4)
Ejemplo n.º 3
0
 def test_send_cmd(self):
     logger = MagicMock()
     bus = Bus(logger)
     logger.write = MagicMock(return_value=datetime.timedelta(
         microseconds=9721))
     c = LoRa(bus=bus.handle('lora'), config={'device_id': 3})
     tester = bus.handle('tester')
     tester.register('raw')
     bus.connect('lora.cmd', 'tester.cmd')
     bus.connect('tester.raw', 'lora.raw')
     c.start()
     tester.publish('raw', b'1|3:GoHome:1234\n')
     c.request_stop()
     c.join()
     self.assertEqual(tester.listen()[2], b'GoHome')
Ejemplo n.º 4
0
 def test_autodetect_bug(self):
     logger = MagicMock()
     logger.write = MagicMock(return_value=datetime.timedelta(
         microseconds=9721))
     bus = Bus(logger)
     c = LoRa(bus=bus.handle('lora'), config={})  # force autodetection
     tester = bus.handle('tester')
     tester.register('raw')
     bus.connect('tester.raw', 'lora.raw')
     c.start()
     tester.publish('raw', b'4|alive\n')
     tester.publish('raw', b'4|alive-97')
     tester.publish('raw', b'21\n')
     c.request_stop()
     c.join()
     self.assertEqual(c.device_id, 4)
Ejemplo n.º 5
0
    def test_autodetect_bug(self):
        logger = MagicMock()
        robot_bus = BusHandler(logger, out={}, name='robot')
        logger.write = MagicMock(return_value=datetime.timedelta(microseconds=9721))
        bus = BusHandler(logger,
                         out={'raw':[(robot_bus.queue, 'raw')]},
                         name='lora')

        c = LoRa(bus=bus, config={})  # force autodetection
        c.start()
        c.bus.queue.put((datetime.timedelta(microseconds=1331), 'raw', b'4|alive\n'))
#        c.bus.queue.put((datetime.timedelta(microseconds=29000), 'raw', b'4|alive-9721\n'))
        c.bus.queue.put((datetime.timedelta(microseconds=29000), 'raw', b'4|alive-97'))
        c.bus.queue.put((datetime.timedelta(microseconds=29200), 'raw', b'21\n'))
        c.request_stop()
        c.join()
        self.assertEqual(c.device_id, 4)
Ejemplo n.º 6
0
 def test_control_center(self):
     logger = MagicMock()
     bus = Bus(logger)
     logger.write = MagicMock(return_value=datetime.timedelta(seconds=97))
     c = LoRa(bus=bus.handle('lora'), config={'device_id': 1})
     app = bus.handle('app')
     app.register('cmd')
     tester = bus.handle('serial')
     tester.register('raw')
     bus.connect('app.cmd', 'lora.cmd')
     bus.connect('lora.raw', 'serial.raw')
     c.start()
     app.publish('cmd', [3, b'Pause'])
     c.request_stop()
     c.join()
     self.assertEqual(tester.listen()[2], b'alive\n')
     self.assertEqual(tester.listen()[2], b'3:Pause:97\n')