xnecas 2 месяцев назад
Родитель
Сommit
175aedbe32
36 измененных файлов с 626 добавлено и 155 удалено
  1. 4 1
      .idea/misc.xml
  2. 3 1
      .idea/nbus_api.iml
  3. 6 0
      .idea/vcs.xml
  4. 115 0
      daata.csv
  5. 0 0
      daata.json
  6. 115 0
      data.csv
  7. 78 0
      debug.py
  8. BIN
      nbus_api/__pycache__/nbus_bridge.cpython-313.pyc
  9. BIN
      nbus_api/__pycache__/nbus_common_parser.cpython-313.pyc
  10. BIN
      nbus_api/__pycache__/nbus_module_slave.cpython-313.pyc
  11. BIN
      nbus_api/__pycache__/nbus_sensor.cpython-313.pyc
  12. 230 0
      nbus_api/nbus_bridge.py
  13. 16 28
      nbus_api/nbus_module_slave.py
  14. 12 81
      nbus_api/nbus_sensor.py
  15. BIN
      nbus_hal/__pycache__/crc8.cpython-313.pyc
  16. BIN
      nbus_hal/__pycache__/nbus_generic_port.cpython-313.pyc
  17. BIN
      nbus_hal/nbus_serial/__pycache__/serial_config.cpython-313.pyc
  18. BIN
      nbus_hal/nbus_serial/__pycache__/serial_port.cpython-313.pyc
  19. 25 1
      nbus_hal/nbus_serial/serial_port.py
  20. 0 24
      nbus_sensor_drivers/generic_sensor_driver.py
  21. BIN
      nbus_types/__pycache__/nbus_address_type.cpython-313.pyc
  22. BIN
      nbus_types/__pycache__/nbus_command_type.cpython-313.pyc
  23. BIN
      nbus_types/__pycache__/nbus_data_fomat.cpython-313.pyc
  24. BIN
      nbus_types/__pycache__/nbus_info_type.cpython-313.pyc
  25. BIN
      nbus_types/__pycache__/nbus_parameter_type.cpython-313.pyc
  26. BIN
      nbus_types/__pycache__/nbus_sensor_count_type.cpython-313.pyc
  27. BIN
      nbus_types/__pycache__/nbus_sensor_type.cpython-313.pyc
  28. BIN
      nbus_types/__pycache__/nbus_status_type.cpython-313.pyc
  29. 1 0
      nbus_types/nbus_command_type.py
  30. BIN
      nbus_types/nbus_exceptions/__pycache__/nbus_api_exception.cpython-313.pyc
  31. BIN
      nbus_types/nbus_exceptions/__pycache__/nbus_network_exception.cpython-313.pyc
  32. BIN
      nbus_types/nbus_exceptions/__pycache__/nbus_node_exception.cpython-313.pyc
  33. 0 1
      nbus_types/nbus_exceptions/nbus_api_exception.py
  34. 2 0
      nbus_types/nbus_parameter_type.py
  35. 8 7
      nbus_types/nbus_sensor_type.py
  36. 11 11
      test.py

+ 4 - 1
.idea/misc.xml

@@ -1,4 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (nbus_api)" project-jdk-type="Python SDK" />
+  <component name="Black">
+    <option name="sdkName" value="Python 3.13 (nBus-Client-API)" />
+  </component>
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.13 (nBus-Client-API)" project-jdk-type="Python SDK" />
 </project>

+ 3 - 1
.idea/nbus_api.iml

@@ -2,9 +2,11 @@
 <module type="PYTHON_MODULE" version="4">
   <component name="NewModuleRootManager">
     <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/.venv" />
       <excludeFolder url="file://$MODULE_DIR$/im" />
     </content>
-    <orderEntry type="jdk" jdkName="Python 3.9 (nbus_api)" jdkType="Python SDK" />
+    <orderEntry type="jdk" jdkName="Python 3.13 (nBus-Client-API)" jdkType="Python SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
   <component name="PackageRequirementsSettings">

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 115 - 0
daata.csv

@@ -0,0 +1,115 @@
+TS,5.1,5.2,5.3,5.4,5.5,5.129,5.130,9.1,9.2,9.3,9.4,9.5,9.129,9.130
+363498,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363551,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363604,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363657,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363710,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363763,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363816,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363869,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363922,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+363975,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364028,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364081,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364134,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364187,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364240,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364293,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364346,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364399,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364452,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364505,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364558,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364611,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364664,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364717,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364770,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364823,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364876,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364929,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+364982,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365035,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365088,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365141,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365194,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365247,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365300,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365353,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365406,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365459,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365512,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365565,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365618,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365671,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365724,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365777,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365830,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365883,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365936,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+365989,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366042,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366095,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366148,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366201,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366254,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366307,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366360,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366413,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366466,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366519,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366572,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366625,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366678,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366731,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366784,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366837,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366890,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366943,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+366996,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367049,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367102,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367155,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367208,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367261,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367314,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367367,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367420,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367473,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367526,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367579,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367632,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367685,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367738,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367791,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367844,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367897,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+367950,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368003,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368056,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368109,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368162,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368215,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368268,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368321,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368374,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368427,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368480,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368533,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368586,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368639,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368692,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368745,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368798,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368851,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368904,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+368957,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369010,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369063,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369116,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369169,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369222,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369275,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369328,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369381,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369434,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"
+369487,"[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]","[1278900, -1312300, -2182900]","[3054417410, -190887440, -19852295490]","[17100, 1800]","[131186229045.10493, -606717310589.2699]",[32.683],[0],"[0.0, 0.0]"

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
daata.json


+ 115 - 0
data.csv

@@ -0,0 +1,115 @@
+TS,5.1.1,5.1.2,5.1.3,5.2.1,5.2.2,5.2.3,5.3.1,5.3.2,5.4.1,5.4.2,5.5.1,5.129.1,5.130.1,5.130.2,9.1.1,9.1.2,9.1.3,9.2.1,9.2.2,9.2.3,9.3.1,9.3.2,9.4.1,9.4.2,9.5.1,9.129.1,9.130.1,9.130.2
+113111,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113164,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113217,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113270,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113323,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113376,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113429,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113482,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113535,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113588,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113641,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113694,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113747,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113800,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113853,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113906,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+113959,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114012,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114065,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114118,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114171,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114224,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114277,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114330,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114383,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114436,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114489,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114542,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114595,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114648,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114701,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114754,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114807,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114860,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114913,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+114966,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115019,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115072,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115125,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115178,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115231,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115284,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115337,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115390,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115443,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115496,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115549,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115602,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115655,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115708,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115761,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115814,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115867,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115920,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+115973,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116026,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116079,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116132,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116185,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116238,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116291,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116344,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116397,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116450,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116503,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116556,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116609,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116662,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116715,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116768,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116821,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116874,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116927,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+116980,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117033,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117086,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117139,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117192,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117245,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117298,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117351,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117404,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117457,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117510,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117563,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117616,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117669,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117722,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117775,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117828,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117881,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117934,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+117987,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118040,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118093,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118146,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118199,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118252,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118305,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118358,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118411,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118464,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118517,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118570,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118623,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118676,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118729,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118782,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118835,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118888,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118941,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+118994,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+119047,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0
+119100,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0,1278900,-1312300,-2182900,3054417410,-190887440,-19852295490,17100,1800,131186229045.10493,-606717310589.2699,32.683,0,0.0,0.0

+ 78 - 0
debug.py

@@ -0,0 +1,78 @@
+import time
+import sys
+
+from nbus_hal.nbus_serial.serial_port import *
+from nbus_api.nbus_module_slave import NBusSlaveModule
+from nbus_api.nbus_bridge import NBusBridge
+from nbus_hal.nbus_serial.serial_config import *
+from nbus_api.nbus_sensor import NBusSensor
+from nbus_types.nbus_parameter_type import NBusParameterID
+import pandas as pd
+
+# example config
+config = {
+    "port_name": "COM4",
+    "baud": NBusBaudrate.SPEED_921600,
+    "parity": NBusParity.NONE,
+    "timeout": 10.0,
+    "request_attempts": 1,
+    "enable_log": True
+}
+
+if __name__ == "__main__":
+    sys.exit
+    port = NBusSerialPort(NBusSerialConfig(**config))
+    #module1 = NBusSlaveModule(port, 9)
+    #print(module1.cmd_get_sensor_type())
+    #sys.exit()
+    #sys.exit(0)
+    bridge = NBusBridge(port)
+    #print(module1.scan())
+
+
+    print(bridge.cmd_get_slaves())
+    print(bridge.cmd_get_format())
+
+    bridge.start_data_streaming()
+    time.sleep(5)
+    print((bridge.dataen()))
+    time.sleep(1)
+    bridge.stop_data_streaming()
+
+
+
+    print((bridge.dataen()))
+    df = bridge.df
+    df.to_csv("data.csv", index=False)
+
+    sys.exit()
+
+    module1.scan()
+    print(module1.cmd_get_echo(bytearray("ahoj", "ascii")))
+    print(module1.cmd_get_format())
+    print(module1.cmd_get_sensor_type())
+    print(module1.cmd_get_data())
+    #sys.exit(0)
+
+    t0 = time.time()
+    port.request_broadcast(NBusCommand.CMD_SET_START, bytearray([]))
+   # time.sleep(1.0)
+
+    for i in range(200):
+            print(hex(port.get_port().read()[0]))
+
+    port.request_broadcast(NBusCommand.CMD_SET_STOP, bytearray([]))
+
+
+
+
+    # algoritmus hazel zvon
+    while port.get_port().in_waiting:
+        time.sleep(0.05)
+        port.get_port().reset_input_buffer()
+        print("flushed baby")
+      #  break
+
+
+    print(module1.cmd_get_echo(bytearray("ahoj", "ascii")))
+

BIN
nbus_api/__pycache__/nbus_bridge.cpython-313.pyc


BIN
nbus_api/__pycache__/nbus_common_parser.cpython-313.pyc


BIN
nbus_api/__pycache__/nbus_module_slave.cpython-313.pyc


BIN
nbus_api/__pycache__/nbus_sensor.cpython-313.pyc


+ 230 - 0
nbus_api/nbus_bridge.py

@@ -0,0 +1,230 @@
+import struct
+from collections import deque
+from dataclasses import dataclass
+
+from nbus_api.nbus_common_parser import NbusCommonParser
+from nbus_api.nbus_module_slave import NBusSlaveModule
+from nbus_api.nbus_sensor import NBusSensor
+from nbus_hal.nbus_serial.serial_port import *
+from nbus_types.nbus_exceptions.nbus_api_exception import NBusErrorAPI, NBusErrorAPIType
+from nbus_types.nbus_sensor_count_type import NBusSensorCount
+
+import time
+from threading import Thread, Lock
+from collections import namedtuple
+
+import pandas as pd
+
+NBUS_RX_META = 4
+NBUS_FMT_SIZE = 4
+NBUS_TS_SIZE = 4
+NBUS_CRC_SIZE = 1
+NBUS_MA_SIZE = 1
+NBUS_SA_SIZE = 1
+
+NBUS_CRC_ADDR = -1
+NBUS_BRIDGE_DATA_HDR = bytearray([0x00] + [0xFF] * 8 + [0x00])
+
+@dataclass
+class NBusSlaveMeta:
+    obj: NBusSlaveModule
+    cnt: int
+    packet_size: int
+
+@beartype
+class NBusBridge:
+    def __init__(self, serial_port: NBusSerialPort):
+        """
+        Constructor.
+
+        :param serial_port: serial port
+        """
+        self.__port = serial_port
+        self.__slaves_meta = {}
+        self.__slaves = {}
+        self.__slaves_meta = {}
+        self.__scan_thread = None
+        self.__data_raw = bytearray([])
+        self.buf = deque()
+        self.lock = Lock()
+        self.__in_scan = False
+        self.__packet_size = 0
+
+        self.df = pd.DataFrame()
+
+    def init_from_network(self):
+        self.cmd_get_slaves()
+        self.cmd_get_format()
+
+    def cmd_get_slaves(self):
+        resp_length, *response = self.__port.request_bridge(NBusCommand.CMD_GET_SLAVES, bytearray([]))
+
+        slaves = {}
+        data_offset = 0
+
+        while data_offset < resp_length - 2:
+            slave_addr = response[data_offset]
+            slave_sensor_cnt = NBusSensorCount(response[data_offset + 1] , response[data_offset + 2])
+
+            slaves[slave_addr] = slave_sensor_cnt
+            self.__slaves_meta[slave_addr] = NBusSlaveMeta(NBusSlaveModule(self.__port, slave_addr), slave_sensor_cnt, 0)
+            data_offset += 3
+
+        return slaves
+
+    def cmd_get_format(self):
+        resp_length, *response = self.__port.request_bridge(NBusCommand.CMD_GET_FORMAT, bytearray([]))
+        data_offset = 0
+        fmt = {}
+
+        while data_offset < resp_length:
+            slave_addr = response[data_offset]
+            data_offset += NBUS_MA_SIZE
+
+            slave_sensor_cnt = self.__slaves_meta[slave_addr].cnt
+            format_len = NBUS_FMT_SIZE * (slave_sensor_cnt.read_only_count + slave_sensor_cnt.read_write_count)
+
+            fmt |= self._set_slave_format_from_response(slave_addr, format_len,
+                                                        response[data_offset: data_offset + format_len])
+
+            data_offset += format_len
+
+        self._set_data_packet_size()
+        return fmt
+
+    def cmd_get_data(self):
+        resp_length, *response = self.__port.request_bridge(NBusCommand.CMD_GET_FORMAT, bytearray([]))
+
+    def scan_fn(self):
+            while self.__in_scan:
+                with self.lock:
+                    if self.__port.get_port().in_waiting > 0:
+                        self.__data_raw.extend(self.__port.get_port().read())
+                    else:
+                        time.sleep(0.05)
+
+
+    def start_data_streaming(self):
+
+        self.__port.send_bridge(NBusCommand.CMD_SET_START, bytearray([]))
+        self.__scan_thread = Thread(target=self.scan_fn)
+        self.__in_scan = True
+        self.__scan_thread.start()
+
+
+    def stop_data_streaming(self):
+        self.__port.send_bridge(NBusCommand.CMD_SET_STOP, bytearray([]))
+        self.__in_scan = False
+        self.__scan_thread.join()
+
+        while self.__port.get_port().in_waiting:
+            time.sleep(0.05)
+            self.__port.get_port().reset_input_buffer()
+            print("flushed baby")
+
+    def get_data(self):
+        return self.__data_raw
+
+    def dataen(self):
+
+        with (self.lock):
+            frames = self.__data_raw.split(NBUS_BRIDGE_DATA_HDR)
+            contain_end = int(self.__in_scan)
+            frames_cnt = len(frames) - contain_end
+
+            for i in range(frames_cnt):
+                frame = frames[i]
+                frame_len = len(frame)
+                frame_crc = crc8(NBUS_BRIDGE_DATA_HDR + frame[:NBUS_CRC_ADDR])
+                data_offset = 0
+
+                if frame_len == self.__packet_size and frame[NBUS_CRC_ADDR] == frame_crc:
+                    ts = struct.unpack("<I", frame[data_offset : data_offset + NBUS_TS_SIZE])[0]
+                    data = {"TS": ts}
+                    data_offset += NBUS_TS_SIZE
+
+                    while data_offset < frame_len - 1:
+                        module_addr = frame[data_offset]
+                        data_offset += NBUS_MA_SIZE
+                        packet_size = self.__slaves_meta[module_addr].packet_size
+                        packet = frame[data_offset : data_offset + packet_size]
+
+                        data |= self._get_data_from_response(module_addr, packet_size, packet)
+                        data_offset += packet_size
+
+                    self.df = pd.concat([self.df, pd.DataFrame([data])])
+                else:
+                    print("Zahodeny")
+
+
+
+            if contain_end:
+                unparsed_bytes = len(frames[-1]) + len(NBUS_BRIDGE_DATA_HDR)
+                self.__data_raw = self.__data_raw[-unparsed_bytes:]
+
+
+        return []
+
+    def _set_data_packet_size(self):
+        self.__packet_size = NBUS_TS_SIZE + NBUS_CRC_SIZE
+
+        for slave_meta in self.__slaves_meta.values():
+            packet_size = 0
+
+            for device in slave_meta.obj.get_devices().values():
+                fmt = device.data_format
+                packet_size += fmt.byte_length * fmt.samples + NBUS_SA_SIZE
+
+            slave_meta.packet_size = packet_size
+            self.__packet_size += packet_size + NBUS_MA_SIZE
+
+
+    def _set_slave_format_from_response(self, slave_addr, resp_length, response):
+        data_offset = 0
+        formats = {}
+
+        devices  = self.__slaves_meta[slave_addr].obj.get_devices()
+
+        # parse format
+        while data_offset < resp_length:
+            device_id = response[data_offset]
+            device_format = NbusCommonParser.format_from_response(response[data_offset:data_offset + 4])
+
+            if device_id not in devices:
+                devices[device_id] = NBusSensor(device_id)
+
+            devices[device_id].data_format = device_format
+            tag = str(slave_addr) + "." + str(device_id)
+            formats[tag] = device_format
+            data_offset += NBUS_FMT_SIZE
+
+        return formats
+
+    def _get_data_from_response(self, slave_addr, resp_length, response):
+        """
+        Get data from all module sensors.
+
+        :return: dict of device addresses and data values
+        """
+        # parse data
+        data_offset = 0
+        data = {}
+        devices = self.__slaves_meta[slave_addr].obj.get_devices()
+
+        while data_offset < resp_length:
+            device_id = response[data_offset]
+            # handle errors
+            if devices[device_id].data_format is None:  # check for format and params
+                raise NBusErrorAPI(NBusErrorAPIType.FORMAT_NOT_LOADED)
+
+            values, offset = NbusCommonParser.data_from_response(devices[device_id].data_format,
+                                                                  response[data_offset:])
+
+            tag = str(slave_addr) + "." + str(device_id)
+
+            for i in range(len(values)):
+                data[tag + "." + str(i + 1)] = values[i]
+
+            data_offset += offset + NBUS_SA_SIZE
+
+        return data

+ 16 - 28
nbus_api/nbus_module_slave.py

@@ -24,30 +24,29 @@ class NBusSlaveModule:
 
         :param serial_port: serial port
         :param module_address: address of module
+        :param device_cnt: number of devices
         """
         self.__port = serial_port
         self.__module_addr = module_address
         self.__params = {}
         self.__devices = {}
-        self._map_param_get = lambda t, v: v    # dummy implementation
-        self._map_param_set = lambda t, v: v    # dummy implementation
 
     """
     ================================================================================================================
                                                 Module General Methods
     ================================================================================================================
     """
+    def scan(self):
+        sensors = self.cmd_get_sensor_type()
 
-    def set_module_parameter_mappers(self, map_param_get_cb: Callable[[NBusParameterID, NBusParameterValue], int],
-                                     map_param_set_cb: Callable[[NBusParameterID, int], NBusParameterValue]) -> None:
-        """
-        Set parameter mappers for module.
+        for sen_address, sen_type in sensors.items():
+            self.__devices[sen_address] = NBusSensor(sen_address)
+            self.__devices[sen_address].type = sen_type
 
-        :param map_param_get_cb: callback for map param get
-        :param map_param_set_cb: callback for map param set
-        """
-        self._map_param_get = map_param_get_cb
-        self._map_param_set = map_param_set_cb
+        return sensors
+
+    def get_devices(self):
+        return self.__devices
 
     def add_sensor(self, sensor: NBusSensor) -> None:
         """
@@ -96,8 +95,7 @@ class NBusSlaveModule:
                                                          bytearray([parameter.value]))
 
         # parse parameter
-        param_id, param_val_raw = NbusCommonParser.parameters_from_response(resp_len, response)[0]
-        param_val = self._map_param_get(param_id, param_val_raw)
+        param_id, param_val = NbusCommonParser.parameters_from_response(resp_len, response)[0]
 
         # store parameter value
         self.__params[param_id] = param_val
@@ -115,11 +113,9 @@ class NBusSlaveModule:
         resp_len, *response = self.__port.request_module(self.__module_addr, NBusCommand.CMD_GET_PARAM, bytearray([]))
 
         # parse parameters
-        params_raw = NbusCommonParser.parameters_from_response(resp_len, response)
-
-        for param_id, param_val_raw in params_raw:
-            param_val = self._map_param_get(param_id, param_val_raw)
+        params = NbusCommonParser.parameters_from_response(resp_len, response)
 
+        for param_id, param_val in params:
             # store parameters
             self.__params[param_id] = param_val
 
@@ -154,12 +150,10 @@ class NBusSlaveModule:
             # handle errors
             if self.__devices[device_id].data_format is None:  # check for format and params
                 raise NBusErrorAPI(NBusErrorAPIType.FORMAT_NOT_LOADED)
-            if not self.__devices[device_id].data_parameters_loaded():
-                raise NBusErrorAPI(NBusErrorAPIType.PARAMS_NOT_LOADED)
 
             values, offset = NbusCommonParser.data_from_response(self.__devices[device_id].data_format,
                                                                  response[begin_idx:])
-            data[device_id] = self.__devices[device_id].map_data_get(values)
+            data[device_id] = values
             begin_idx += offset + 1
 
         return data
@@ -263,7 +257,7 @@ class NBusSlaveModule:
 
         # create request packet
         param_id_raw = struct.pack("B", param.value)
-        param_val_raw = struct.pack("<I", self._map_param_set(param, value))
+        param_val_raw = struct.pack("<I",value)
         param_bytes = bytearray(param_id_raw) + bytearray(param_val_raw)
 
         # proceed request
@@ -284,10 +278,6 @@ class NBusSlaveModule:
         :return: dict od statuses
         """
 
-        # scale parameters
-        for p_id in params.keys():
-            params[p_id] = self._map_param_set(p_id, params[p_id])
-
         # create request packet
         param_bytes = NbusCommonParser.parameters_to_request(params)
 
@@ -335,10 +325,8 @@ class NBusSlaveModule:
             # handle errors
             if self.__devices[addr].data_format is None:  # check for format and params
                 raise NBusErrorAPI(NBusErrorAPIType.FORMAT_NOT_LOADED)
-            if not self.__devices[addr].data_parameters_loaded():
-                raise NBusErrorAPI(NBusErrorAPIType.PARAMS_NOT_LOADED)
 
-            raw_data = self.__devices[addr].map_data_set(data[addr])
+            raw_data = data[addr]
             request.append(addr)
             request.extend(NbusCommonParser.data_to_request(self.__devices[addr].data_format, raw_data))
 

+ 12 - 81
nbus_api/nbus_sensor.py

@@ -1,5 +1,4 @@
 import struct
-from abc import abstractmethod, ABCMeta
 from nbus_hal.nbus_generic_port import NBusPort
 from nbus_types.nbus_command_type import NBusCommand
 from nbus_types.nbus_data_fomat import *
@@ -12,7 +11,7 @@ from nbus_types.nbus_status_type import NBusStatusType
 
 
 @beartype
-class NBusSensor(metaclass=ABCMeta):
+class NBusSensor:
     """
     Class representing nBus sensor type.
     """
@@ -24,6 +23,7 @@ class NBusSensor(metaclass=ABCMeta):
         :param address: device address
         """
         self.__address = address
+        self.__type = None
         self.__module_address = None
         self.__port = None
         self.__data_format = None
@@ -101,64 +101,6 @@ class NBusSensor(metaclass=ABCMeta):
         """
         self.__port = port
 
-    """
-    ================================================================================================================
-                                                    Abstract Methods
-    ================================================================================================================
-    """
-
-    @abstractmethod
-    def data_parameters_loaded(self) -> bool:
-        """
-        Verify that all necessary parameters are loaded
-        before performing data get/set conversion.
-
-        :return: true if ready for conversion, otherwise False
-        """
-        pass
-
-    @abstractmethod
-    def map_parameter_get(self, param_id: NBusParameterID, param_value: int) -> NBusParameterValue:
-        """
-        Convert a parameter from cmd_get_param() to its engineering range.
-
-        :param param_id: the ID of the parameter
-        :param param_value: the value of the parameter in binary format
-        :return: the converted parameter value in engineering units
-        """
-        pass
-
-    @abstractmethod
-    def map_parameter_set(self, param_id: NBusParameterID, param_value: NBusParameterValue) -> int:
-        """
-        Convert a parameter to its binary range for cmd_set_data().
-
-        :param param_id: the ID of the parameter
-        :param param_value: the value of the parameter in engineering units
-        :return: the converted parameter value in binary format
-        """
-        pass
-
-    @abstractmethod
-    def map_data_get(self, values: list[int]) -> list[NBusDataValue]:
-        """
-        Convert data from cmd_get_data() to its engineering range.
-
-        :param values: a list of values in binary format to be converted
-        :return: a list of converted values in engineering units
-        """
-        pass
-
-    @abstractmethod
-    def map_data_set(self, values: list[NBusDataValue]) -> list[int]:
-        """
-        Convert data to its binary range for cmd_set_data().
-
-        :param values: a list of values in engineering range to be converted
-        :return: a list of converted values in binary format
-        """
-        pass
-
     """
     ================================================================================================================
                                                     Device Get Commands
@@ -177,8 +119,7 @@ class NBusSensor(metaclass=ABCMeta):
                                                          NBusCommand.CMD_GET_PARAM, bytearray([parameter.value]))
 
         # parse parameter
-        param_id, param_val_raw = NbusCommonParser.parameters_from_response(resp_len, response)[0]
-        param_val = self.map_parameter_get(param_id, param_val_raw)
+        param_id, param_val = NbusCommonParser.parameters_from_response(resp_len, response)[0]
 
         # store parameter value
         self.__params[param_id] = param_val
@@ -197,11 +138,9 @@ class NBusSensor(metaclass=ABCMeta):
                                                          NBusCommand.CMD_GET_PARAM, bytearray([]))
 
         # parse parameters
-        params_raw = NbusCommonParser.parameters_from_response(resp_len, response)
-
-        for param_id, param_val_raw in params_raw:
-            param_val = self.map_parameter_get(param_id, param_val_raw)
+        params = NbusCommonParser.parameters_from_response(resp_len, response)
 
+        for param_id, param_val in params:
             # store parameters
             self.__params[param_id] = param_val
 
@@ -218,13 +157,11 @@ class NBusSensor(metaclass=ABCMeta):
 
         if self.__data_format is None:  # check for format and params
             raise NBusErrorAPI(NBusErrorAPIType.FORMAT_NOT_LOADED)
-        if not self.data_parameters_loaded():
-            raise NBusErrorAPI(NBusErrorAPIType.PARAMS_NOT_LOADED)
 
         _, *resp = self.__port.request_sensor(self.__module_address, self.__address, NBusCommand.CMD_GET_DATA,
                                               bytearray([]))
         values, _ = NbusCommonParser.data_from_response(self.data_format, resp)
-        return self.map_data_get(values)
+        return values
 
     def cmd_get_sensor_type(self) -> NBusSensorType:
         """
@@ -234,7 +171,9 @@ class NBusSensor(metaclass=ABCMeta):
         """
         _, *response = self.__port.request_sensor(self.__module_address, self.__address,
                                                   NBusCommand.CMD_GET_SENSOR_TYPE, bytearray([]))
-        return NBusSensorType(response[0])
+
+        self.__type = response[0]
+        return NBusSensorType(self.__type)
 
     def cmd_get_format(self):
         """
@@ -275,7 +214,7 @@ class NBusSensor(metaclass=ABCMeta):
 
         # create request packet
         param_id_raw = struct.pack("B", param.value)
-        param_val_raw = struct.pack("<I", self.map_parameter_set(param, value))
+        param_val_raw = struct.pack("<I", value)
         param_bytes = bytearray(param_id_raw) + bytearray(param_val_raw)
 
         # proceed request
@@ -297,10 +236,6 @@ class NBusSensor(metaclass=ABCMeta):
         :return: dict od statuses
         """
 
-        # scale parameters
-        for p_id in params.keys():
-            params[p_id] = self.map_parameter_set(p_id, params[p_id])
-
         # create request packet
         param_bytes = NbusCommonParser.parameters_to_request(params)
 
@@ -341,16 +276,12 @@ class NBusSensor(metaclass=ABCMeta):
 
         if self.__data_format is None:  # check for format and params
             raise NBusErrorAPI(NBusErrorAPIType.FORMAT_NOT_LOADED)
-        if not self.data_parameters_loaded():
-            raise NBusErrorAPI(NBusErrorAPIType.PARAMS_NOT_LOADED)
 
         # create request packet
-        request = []
+        request = [self.__address]
 
         # transform data
-        raw_data = self.map_data_set(data)
-        request.append(self.__address)
-        request.extend(NbusCommonParser.data_to_request(self.data_format, raw_data))
+        request.extend(NbusCommonParser.data_to_request(self.data_format, data))
 
         # send request
         resp_length, *response = self.__port.request_sensor(self.__module_address, self.__address,

BIN
nbus_hal/__pycache__/crc8.cpython-313.pyc


BIN
nbus_hal/__pycache__/nbus_generic_port.cpython-313.pyc


BIN
nbus_hal/nbus_serial/__pycache__/serial_config.cpython-313.pyc


BIN
nbus_hal/nbus_serial/__pycache__/serial_port.cpython-313.pyc


+ 25 - 1
nbus_hal/nbus_serial/serial_port.py

@@ -52,6 +52,9 @@ class NBusSerialPort(NBusPort):
     ================================================================================================================
     """
 
+    def get_port(self):
+        return self._port
+
     def change_configuration(self, config: NBusSerialConfig):
         """
         Change port configuration.
@@ -93,13 +96,33 @@ class NBusSerialPort(NBusPort):
         """
         self._logger_cb = callback
 
+    def request_bridge(self, command: NBusCommand, data: bytearray, long_answer: NBusDelay = 0.0):
+        """
+        Make broadcast request to the nbus bridge module.
+        :param command: command id
+        :param data: command data to send
+             :param long_answer: delay in s for longer answer
+        """
+        return self._request_response(0, 0xFF, command.value, data, long_answer)
+
+    def send_bridge(self, command: NBusCommand, data: bytearray):
+        """
+        Make broadcast request to the nbus bridge module.
+        :param command: command id
+        :param data: command data to send
+             :param long_answer: delay in s for longer answer
+        """
+        request = self._create_packet(bytearray([0, 0, 0xFF, command.value]), data)
+        self._log("\tBRQ>", list(request))
+        self._port.write(request)  # send message
+
     def request_broadcast(self, command: NBusCommand, data: bytearray) -> None:
         """
         Make broadcast request to nbus network.
         :param command: command id
         :param data: command data to send
         """
-        request = self._create_packet(bytearray([0, 0, 0, command.value]), data)
+        request = self._create_packet(bytearray([0, 0, 0xFF, command.value]), data)
         self._log("\tBRQ>", list(request))
         self._port.write(request)  # send message
 
@@ -205,6 +228,7 @@ class NBusSerialPort(NBusPort):
 
         # check for crc
         if response[-1] != crc8(response[:-1]):
+            print(response_l, response, crc8(response[:-1]), response[-1])
             raise NBusErrorNetwork(NBusErrorNetworkType.DAMAGED_MESSAGE)
 
         self._log('d', 0, "\tRS>", [response_l] + list(response))   # log response

+ 0 - 24
nbus_sensor_drivers/generic_sensor_driver.py

@@ -1,24 +0,0 @@
-from nbus_api.nbus_sensor import NBusSensor
-from nbus_types.nbus_data_fomat import NBusDataValue
-from nbus_types.nbus_parameter_type import NBusParameterID, NBusParameterValue
-
-
-class NBusGenericSensor(NBusSensor):
-    """
-    Class for generic NBus sensor (no data transformation)
-    """
-
-    def data_parameters_loaded(self) -> bool:
-        return True
-
-    def map_parameter_get(self, param_id: NBusParameterID, param_value: int) -> NBusParameterValue:
-        return param_value
-
-    def map_parameter_set(self, param_id: NBusParameterID, param_value: NBusParameterValue) -> int:
-        return param_value
-
-    def map_data_get(self, values: list[int]) -> list[NBusDataValue]:
-        return values
-
-    def map_data_set(self, values: list[NBusDataValue]) -> list[int]:
-        return values

BIN
nbus_types/__pycache__/nbus_address_type.cpython-313.pyc


BIN
nbus_types/__pycache__/nbus_command_type.cpython-313.pyc


BIN
nbus_types/__pycache__/nbus_data_fomat.cpython-313.pyc


BIN
nbus_types/__pycache__/nbus_info_type.cpython-313.pyc


BIN
nbus_types/__pycache__/nbus_parameter_type.cpython-313.pyc


BIN
nbus_types/__pycache__/nbus_sensor_count_type.cpython-313.pyc


BIN
nbus_types/__pycache__/nbus_sensor_type.cpython-313.pyc


BIN
nbus_types/__pycache__/nbus_status_type.cpython-313.pyc


+ 1 - 0
nbus_types/nbus_command_type.py

@@ -15,6 +15,7 @@ class NBusCommand(Enum):
     CMD_GET_SENSOR_TYPE = 0x0D
     CMD_GET_INFO = 0x0E
     CMD_GET_FORMAT = 0x0F
+    CMD_GET_SLAVES = 0x10
     
     # set
     CMD_SET_FIND = 0x20

BIN
nbus_types/nbus_exceptions/__pycache__/nbus_api_exception.cpython-313.pyc


BIN
nbus_types/nbus_exceptions/__pycache__/nbus_network_exception.cpython-313.pyc


BIN
nbus_types/nbus_exceptions/__pycache__/nbus_node_exception.cpython-313.pyc


+ 0 - 1
nbus_types/nbus_exceptions/nbus_api_exception.py

@@ -13,4 +13,3 @@ class NBusErrorAPIType(Enum):
     Enum class for NBusErrorAPI identification.
     """
     FORMAT_NOT_LOADED = 0x201
-    PARAMS_NOT_LOADED = 0x202

+ 2 - 0
nbus_types/nbus_parameter_type.py

@@ -20,3 +20,5 @@ class NBusParameterID(Enum):
     PARAM_RANGE = 5
     PARAM_RANGE0 = 6
     PARAM_FILTER = 7
+    PARAM_ENABLE = 8
+    PARAM_MODE = 9

+ 8 - 7
nbus_types/nbus_sensor_type.py

@@ -9,10 +9,11 @@ class NBusSensorType(Enum):
     TYPE_ACCELEROMETER = 0
     TYPE_GYROSCOPE = 1
     TYPE_MAGNETOMETER = 2
-    TYPE_THERMOMETER = 3
-    TYPE_HYGROMETER = 4
-    TYPE_PRESSURE_GAUGE = 5
-    TYPE_HEART_RATE_MONITOR = 6
-    TYPE_LENGTH_GAUGE = 7
-    TYPE_LED_CONTROLLER = 8
-    TYPE_MOTOR_CONTROLLER = 9
+    TYPE_EULER_ANGLES_GAUGE = 3
+    TYPE_THERMOMETER = 4
+    TYPE_HYGROMETER = 5
+    TYPE_PRESSURE_GAUGE = 6
+    TYPE_HEART_RATE_MONITOR = 7
+    TYPE_LENGTH_GAUGE = 8
+    TYPE_LED_CONTROLLER = 9
+    TYPE_MOTOR_CONTROLLER = 10

+ 11 - 11
test.py

@@ -1,12 +1,12 @@
 from nbus_hal.nbus_serial.serial_port import *
 from nbus_api.nbus_module_slave import NBusSlaveModule
 from nbus_hal.nbus_serial.serial_config import *
-from nbus_sensor_drivers.generic_sensor_driver import NBusGenericSensor
+from nbus_api.nbus_sensor import NBusSensor
 from nbus_types.nbus_parameter_type import NBusParameterID
 
 # example config
 config = {
-    "port_name": "COM6",
+    "port_name": "COM4",
     "baud": NBusBaudrate.SPEED_921600,
     "parity": NBusParity.NONE,
     "timeout": 0.4,
@@ -22,13 +22,13 @@ if __name__ == "__main__":
     module = NBusSlaveModule(port, 5)
 
     # assemble module
-    module.add_sensor(NBusGenericSensor(1))
-    module.add_sensor(NBusGenericSensor(2))
-    module.add_sensor(NBusGenericSensor(3))
-    module.add_sensor(NBusGenericSensor(4))
-    module.add_sensor(NBusGenericSensor(5))
-    module.add_sensor(NBusGenericSensor(129))
-    module.add_sensor(NBusGenericSensor(130))
+    module.add_sensor(NBusSensor(1))
+    module.add_sensor(NBusSensor(2))
+    module.add_sensor(NBusSensor(3))
+    module.add_sensor(NBusSensor(4))
+    module.add_sensor(NBusSensor(5))
+    module.add_sensor(NBusSensor(129))
+    module.add_sensor(NBusSensor(130))
 
     # get sensors
     accelerometer = module.get_sensor(1)
@@ -47,8 +47,8 @@ if __name__ == "__main__":
 
     # test module set
     print("\n<<TEST MODULE SET>>")
-    print("CMD SET STOP: ", module.cmd_set_module_stop())
-    print("CMD SET START: ", module.cmd_set_module_start())
+   # print("CMD SET STOP: ", module.cmd_set_module_stop())
+   # print("CMD SET START: ", module.cmd_set_module_start())
 
     print("CMD SET PARAM SAMPLERATE: ", module.cmd_set_param(NBusParameterID.PARAM_SAMPLERATE, 12345))
     print("CMD GET PARAM SAMPLERATE: ", module.cmd_get_param(NBusParameterID.PARAM_SAMPLERATE))

Некоторые файлы не были показаны из-за большого количества измененных файлов