PMCUTest.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. from pimonitor.PMXmlParser import PMXmlParser
  2. from pimonitor.cu.PMCUContext import PMCUContext
  3. __author__ = 'citan'
  4. import unittest
  5. from pimonitor.PMDemoConnection import PMDemoConnection
  6. from pimonitor.PM import PM
  7. class PMCUTestCase(unittest.TestCase):
  8. def setUp(self):
  9. self._ecu_packet = None
  10. self._tcu_packet = None
  11. self._connection = None
  12. self._parameters = None
  13. self._ecu_context = None
  14. self._tcu_context = None
  15. self._ecu_parameters = None
  16. self._ecu_switch_parameters = None
  17. self._ecu_calculated_parameters = None
  18. self._tcu_parameters = None
  19. self._tcu_calculated_parameters = None
  20. self._tcu_switch_parameters = None
  21. logger = PM()
  22. logger.set(self.log)
  23. def prepare_1_open_connection(self):
  24. self._connection = PMDemoConnection()
  25. result = self._connection.open()
  26. self.assertTrue(result)
  27. def prepare_2_init_connection(self):
  28. self.prepare_1_open_connection()
  29. self.assertIsNotNone(self._connection)
  30. self._ecu_packet = self._connection.init(1)
  31. self.assertIsNotNone(self._ecu_packet)
  32. self._tcu_packet = self._connection.init(2)
  33. self.assertIsNotNone(self._tcu_packet)
  34. def prepare_3_parse_logger_definition(self):
  35. self.prepare_2_init_connection()
  36. parser = PMXmlParser()
  37. self._parameters = parser.parse("logger_METRIC_EN_v263.xml")
  38. self._parameters = sorted(self._parameters, key=lambda x: x.get_id(), reverse=True)
  39. self.assertIsNotNone(self._parameters)
  40. self.assertEqual(len(self._parameters), 716)
  41. def prepare_4_match_parameters(self):
  42. self.prepare_3_parse_logger_definition()
  43. self._ecu_context = PMCUContext(self._ecu_packet, [1, 3])
  44. self._ecu_parameters = self._ecu_context.match_parameters(self._parameters)
  45. self.assertIsNotNone(self._ecu_parameters)
  46. self.assertEqual(len(self._ecu_parameters), 125)
  47. self._ecu_switch_parameters = self._ecu_context.match_switch_parameters(self._parameters)
  48. self.assertIsNotNone(self._ecu_switch_parameters)
  49. self.assertEqual(len(self._ecu_switch_parameters), 36)
  50. self._ecu_calculated_parameters = self._ecu_context.match_calculated_parameters(self._parameters, self._ecu_parameters)
  51. self.assertIsNotNone(self._ecu_calculated_parameters)
  52. self.assertEqual(len(self._ecu_calculated_parameters), 4)
  53. self._tcu_context = PMCUContext(self._tcu_packet, [2])
  54. self._tcu_parameters = self._tcu_context.match_parameters(self._parameters)
  55. self.assertIsNotNone(self._tcu_parameters)
  56. self.assertEqual(len(self._tcu_parameters), 11)
  57. self._tcu_switch_parameters = self._tcu_context.match_switch_parameters(self._parameters)
  58. self.assertIsNotNone(self._tcu_switch_parameters)
  59. self.assertEqual(len(self._tcu_switch_parameters), 13)
  60. self._tcu_calculated_parameters = self._tcu_context.match_calculated_parameters(self._parameters, self._tcu_parameters)
  61. self.assertIsNotNone(self._tcu_calculated_parameters)
  62. self.assertEqual(len(self._tcu_calculated_parameters), 0)
  63. #TODO: switches
  64. def test_5_read_parameters(self):
  65. self.prepare_4_match_parameters()
  66. print self._ecu_parameters[120].to_string()
  67. packet = self._connection.read_parameter(self._ecu_parameters[120])
  68. value = self._ecu_parameters[120].get_value(packet)
  69. print 'value=' + value
  70. def log(self, message, mid):
  71. print message
  72. return mid
  73. if __name__ == '__main__':
  74. unittest.main()