def __init__(self, devicesfilename, groupaddrfilename, dumpaddressinfo=False, flanksOnly=False, types=None): # Load device and address info self.groupDict.loadGroupAddrs(open(groupaddrfilename), dumpaddressinfo) # Populate streams dictionary for k in self.groupDict.keys(): if k in types.keys(): t = types[k] else: t = None self.knxAddrStream[k] = KnxAddressStream(k, self.groupDict[k], t, flanksOnly) self.knxAddrStream[k].prepareSynchronizedPrints() self.devDict.loadDeviceAddrs(open(devicesfilename))
def test_init(self): s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "%", False) self.assertIsInstance(s, KnxAddressStream)
def test_preparePlotData(self): s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "temp", False) s.addTelegram( 0, strptime("Fri Sep 4 06:15:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp1) s.addTelegram( 1, strptime("Fri Sep 4 06:16:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp2) s.addTelegram( 2, strptime("Fri Sep 4 06:17:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp3) basetime = mktime( strptime("Fri Sep 4 06:10:03 2015", "%a %b %d %H:%M:%S %Y")) pd = s.preparePlotData(basetime) self.assertIsInstance(pd, type({})) self.assertEqual(len(pd["data"]), 3) s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "time", False) s.addTelegram( 0, strptime("Fri Sep 4 06:15:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutime1) s.addTelegram( 1, strptime("Fri Sep 4 06:16:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutime2) s.addTelegram( 2, strptime("Fri Sep 4 06:17:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutime3) basetime = mktime( strptime("Fri Sep 4 06:10:03 2015", "%a %b %d %H:%M:%S %Y")) pd = s.preparePlotData(basetime) self.assertIsInstance(pd, type({})) self.assertEqual(len(pd["data"]), 3)
def test_printTelegrams(self): s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "temp", False) s.addTelegram( 10, strptime("Fri Sep 4 06:15:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp1) s.addTelegram( 11, strptime("Fri Sep 4 06:16:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp2) s.addTelegram( 12, strptime("Fri Sep 4 06:17:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp3) s.prepareSynchronizedPrints() self.assertTrue(s.printTelegrams(1)) self.assertTrue(s.printTelegrams(10)) self.assertTrue(s.printTelegrams(11)) self.assertFalse(s.printTelegrams(12)) self.assertFalse(s.printTelegrams(13)) s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "temp", True) s.addTelegram( 10, strptime("Fri Sep 4 06:15:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp1) s.addTelegram( 11, strptime("Fri Sep 4 06:16:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp2) s.addTelegram( 12, strptime("Fri Sep 4 06:17:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp3) s.prepareSynchronizedPrints() self.assertTrue(s.printTelegrams(5)) self.assertTrue(s.printTelegrams(10)) self.assertTrue(s.printTelegrams(11)) self.assertFalse(s.printTelegrams(12)) self.assertFalse(s.printTelegrams(13))
def test_storeCachedInput(self): s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "temp", False) s.addTelegram( 10, strptime("Fri Sep 4 06:15:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp1) s.addTelegram( 11, strptime("Fri Sep 4 06:16:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp2) s.addTelegram( 12, strptime("Fri Sep 4 06:17:03 2015", "%a %b %d %H:%M:%S %Y"), self.pdutemp3) s.prepareSynchronizedPrints() of = StringIO() of.name = "testfile" self.assertTrue(s.storeCachedInput(1, of)) self.assertTrue(s.storeCachedInput(10, of)) self.assertTrue(s.storeCachedInput(11, of)) self.assertFalse(s.storeCachedInput(12, of)) self.assertFalse(s.storeCachedInput(13, of)) of.seek(0) self.assertEqual(len(of.readlines()), 3)
def test_addTelegram(self): s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "%", False) s.addTelegram(0, "", self.pdu00) s.addTelegram(1, "", self.pduff) s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "temp", False) s.addTelegram(0, "", self.pdutemp1) self.assertEqual(s.maxVal, "23.10") self.assertEqual(s.minVal, "23.10") s.addTelegram(1, "", self.pdutemp2) self.assertEqual(s.maxVal, "23.10") self.assertEqual(s.minVal, "-17.86") s.addTelegram(2, "", self.pdutemp3) self.assertEqual(s.maxVal, "38.46") self.assertEqual(s.minVal, "-17.86")
def test_errorExit(self): s = KnxAddressStream("1/1/17", self.groupdict["1/1/17"], "%", False) with self.assertRaises(KnxParseException): s.errorExit("the message")