コード例 #1
0
 def asdu_received_handler(self, parameter, ioa, asdu):
     asdu_type = iec60870.CS101_ASDU_getTypeID(asdu)
     asdu_len = iec60870.CS101_ASDU_getNumberOfElements(asdu)
     for idx in range(asdu_len):
         io = iec60870.CS101_ASDU_getElement(asdu, idx)
         ioa = iec60870.InformationObject_getObjectAddress(io)
         if asdu_type == IEC608705TypeID.M_SP_NA_1.value:
             value = iec60870.SinglePointInformation_getValue(io)
             quality = iec60870.SinglePointInformation_getQuality(io)
             iec60870.SinglePointInformation_destroy(io)
         if asdu_type == IEC608705TypeID.M_ME_NC_1.value:
             value = iec60870.MeasuredValueShort_getValue(io)
             quality = iec60870.MeasuredValueShort_getQuality(io)
             iec60870.MeasuredValueShort_destroy(io)
         self.storage.update(Tag(ioa, asdu_type, value, quality))
     return True
コード例 #2
0
 def test_overparams(self):
     """ Проверка на превышение параметров """
     try:
         tag = Tag(1, 2, 3, 4, 5, 6)
     except Exception as e:
         self.assertRaises(TypeError, e)
コード例 #3
0
 def test_istagobject(self):
     """ создаем тег с параметрами, проверяем что они не None """
     tag = Tag(1, 2)
     self.assertIsNotNone(tag)
     self.assertTrue(tag.validate())
     self.assertIsInstance(tag, Tag)
コード例 #4
0
 def test_validation(self):
     """ Валидируем на отсутствие/присутствие none """
     self.assertTrue(Tag(1, 2).validate())
     self.assertFalse(Tag(None, None).validate())
コード例 #5
0
 def test_okparams(self):
     """ Создаем тег с параметрами. Должен создаться """
     self.assertNotIsInstance(Tag(1, 2), TypeError)
     self.assertIsInstance(Tag(1, 2), Tag)
コード例 #6
0
 def test_noparams(self):
     """ Создаем тег без параметров. не должно создаться. """
     try:
         tag = Tag()
     except Exception as e:
         self.assertRaises(TypeError, e)
コード例 #7
0
 def test_checkadded(self):
     """ Валидируем то что добавили """
     tag = Tag(1, 2)
     storage = ClientStorage()
     storage.add(tag)
     self.assertEqual(tag, storage.get(tag.ioa))
コード例 #8
0
 def test_add(self):
     """ Создаем тег и добавляем """
     tag = Tag(1, 2)
     storage = ClientStorage()
     self.assertTrue(storage.add(tag))