bluer-ugv 7.824.1__tar.gz → 7.835.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bluer-ugv might be problematic. Click here for more details.

Files changed (265) hide show
  1. {bluer_ugv-7.824.1/bluer_ugv.egg-info → bluer_ugv-7.835.1}/PKG-INFO +2 -2
  2. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/README.md +1 -1
  3. bluer_ugv-7.835.1/bluer_ugv/README/ugvs/location.py +22 -0
  4. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/__init__.py +1 -1
  5. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/classes.py +0 -3
  6. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/client.py +2 -8
  7. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +1 -0
  8. bluer_ugv-7.835.1/bluer_ugv/swallow/session/classical/motor/void.py +20 -0
  9. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/session.py +56 -11
  10. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +6 -0
  11. bluer_ugv-7.835.1/bluer_ugv/swallow/session/classical/setpoint/ethernet.py +31 -0
  12. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1/bluer_ugv.egg-info}/PKG-INFO +2 -2
  13. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/SOURCES.txt +3 -0
  14. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/LICENSE +0 -0
  15. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/MANIFEST.in +0 -0
  16. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/abcli.sh +0 -0
  17. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/actions.sh +0 -0
  18. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/aka.sh +0 -0
  19. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/alias.sh +0 -0
  20. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
  21. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
  22. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
  23. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
  24. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
  25. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
  26. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset.sh +0 -0
  27. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
  28. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
  29. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
  30. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
  31. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
  32. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ethernet/test.sh +0 -0
  33. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ethernet.sh +0 -0
  34. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/git/rm_keys.sh +0 -0
  35. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/git.sh +0 -0
  36. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
  37. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
  38. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
  39. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
  40. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
  41. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
  42. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
  43. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/play.sh +0 -0
  44. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/cat.sh +0 -0
  45. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/download.sh +0 -0
  46. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/edit.sh +0 -0
  47. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/upload.sh +0 -0
  48. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist.sh +0 -0
  49. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video.sh +0 -0
  50. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow.sh +0 -0
  51. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
  52. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/help.sh +0 -0
  53. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
  54. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
  55. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
  56. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
  57. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
  58. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
  59. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_video_play.sh +0 -0
  60. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_video_playlist.sh +0 -0
  61. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/ugv_get.sh +0 -0
  62. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
  63. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
  64. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/get.sh +0 -0
  65. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
  66. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/ssh.sh +0 -0
  67. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/watch.sh +0 -0
  68. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/__init__.py +0 -0
  69. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/aliases.py +0 -0
  70. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
  71. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/algo.py +0 -0
  72. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/consts.py +0 -0
  73. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/design.py +0 -0
  74. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/docs.py +0 -0
  75. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/flag.py +0 -0
  76. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/items.py +0 -0
  77. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/beast.py +0 -0
  78. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/build.py +0 -0
  79. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/__init__.py +0 -0
  80. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/box.py +0 -0
  81. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/docs.py +0 -0
  82. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/power.py +0 -0
  83. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/schematics.py +0 -0
  84. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/__init__.py +0 -0
  85. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/docs.py +0 -0
  86. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/parts.py +0 -0
  87. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/testing.py +0 -0
  88. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/v1.py +0 -0
  89. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/v2.py +0 -0
  90. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/testing.py +0 -0
  91. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/consts.py +0 -0
  92. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/docs.py +0 -0
  93. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/__init__.py +0 -0
  94. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/consts.py +0 -0
  95. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/docs.py +0 -0
  96. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/items.py +0 -0
  97. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/__init__.py +0 -0
  98. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/consts.py +0 -0
  99. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/docs.py +0 -0
  100. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/items.py +0 -0
  101. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/items.py +0 -0
  102. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/__init__.py +0 -0
  103. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/consts.py +0 -0
  104. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/docs.py +0 -0
  105. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/items.py +0 -0
  106. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/mechanical.py +0 -0
  107. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/parts.py +0 -0
  108. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/power.py +0 -0
  109. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/root.py +0 -0
  110. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/schematics.py +0 -0
  111. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/specs.py +0 -0
  112. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/terraform.py +0 -0
  113. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/__init__.py +0 -0
  114. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/consts.py +0 -0
  115. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/docs.py +0 -0
  116. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/items.py +0 -0
  117. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/releases.py +0 -0
  118. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/root.py +0 -0
  119. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/shortcuts.py +0 -0
  120. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/__init__.py +0 -0
  121. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/analog.py +0 -0
  122. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/consts.py +0 -0
  123. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
  124. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
  125. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/driving.py +0 -0
  126. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
  127. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/tracking.py +0 -0
  128. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
  129. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/__init__.py +0 -0
  130. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/ethernet.py +0 -0
  131. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
  132. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/parts.py +0 -0
  133. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
  134. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/items.py +0 -0
  135. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/__init__.py +0 -0
  136. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/__main__.py +0 -0
  137. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
  138. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/build.py +0 -0
  139. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/DYI.py +0 -0
  140. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
  141. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/classes.py +0 -0
  142. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/concealment.py +0 -0
  143. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/control.py +0 -0
  144. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/cost.py +0 -0
  145. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/db.py +0 -0
  146. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/payload.py +0 -0
  147. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/ps.py +0 -0
  148. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/range.py +0 -0
  149. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +0 -0
  150. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/size.py +0 -0
  151. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/speed.py +0 -0
  152. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/swarm.py +0 -0
  153. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +0 -0
  154. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/references/__init__.py +0 -0
  155. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/references/classes.py +0 -0
  156. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/references/db.py +0 -0
  157. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
  158. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/ugvs/classes.py +0 -0
  159. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/ugvs/db.py +0 -0
  160. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/db.py +0 -0
  161. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/docs.py +0 -0
  162. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/ethernet.py +0 -0
  163. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/get.py +0 -0
  164. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/__main__.py +0 -0
  165. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/assets/comparison.html +0 -0
  166. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/config.env +0 -0
  167. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/__init__.py +0 -0
  168. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
  169. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/eagle/parts.py +0 -0
  170. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/fire/__init__.py +0 -0
  171. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/fire/parts.py +0 -0
  172. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
  173. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/rangin/parts.py +0 -0
  174. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
  175. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
  176. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
  177. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
  178. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
  179. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/env.py +0 -0
  180. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/__init__.py +0 -0
  181. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/__main__.py +0 -0
  182. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/functions.py +0 -0
  183. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/get.py +0 -0
  184. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/git.py +0 -0
  185. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/ssh.py +0 -0
  186. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/__init__.py +0 -0
  187. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/dataset.py +0 -0
  188. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/debug.py +0 -0
  189. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/env.py +0 -0
  190. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/ethernet.py +0 -0
  191. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/git.py +0 -0
  192. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
  193. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/select_target.py +0 -0
  194. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
  195. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/video/__init__.py +0 -0
  196. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/video/functions.py +0 -0
  197. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/video/playlist.py +0 -0
  198. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/watch.py +0 -0
  199. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/host.py +0 -0
  200. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/logger.py +0 -0
  201. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/sample.env +0 -0
  202. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/__init__.py +0 -0
  203. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/__main__.py +0 -0
  204. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/dataset/__init__.py +0 -0
  205. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
  206. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
  207. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/debug.py +0 -0
  208. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/__init__.py +0 -0
  209. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/__main__.py +0 -0
  210. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/__init__.py +0 -0
  211. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
  212. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/generic.py +0 -0
  213. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
  214. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
  215. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/void.py +0 -0
  216. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +0 -0
  217. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/__init__.py +0 -0
  218. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/__main__.py +0 -0
  219. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/command.py +0 -0
  220. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/testing.py +0 -0
  221. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/__init__.py +0 -0
  222. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
  223. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +0 -0
  224. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +0 -0
  225. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
  226. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
  227. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
  228. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
  229. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
  230. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
  231. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
  232. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
  233. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
  234. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/position.py +0 -0
  235. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
  236. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/__init__.py +0 -0
  237. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/classes.py +0 -0
  238. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/__init__.py +0 -0
  239. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/__main__.py +0 -0
  240. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/engine.py +0 -0
  241. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/player.py +0 -0
  242. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/playlist.py +0 -0
  243. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/setpoint/__init__.py +0 -0
  244. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
  245. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
  246. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
  247. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
  248. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
  249. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
  250. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection_list.py +0 -0
  251. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +0 -0
  252. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
  253. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
  254. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
  255. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
  256. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/functions.py +0 -0
  257. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/targeting.py +0 -0
  258. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/urls.py +0 -0
  259. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
  260. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/requires.txt +0 -0
  261. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/top_level.txt +0 -0
  262. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/pyproject.toml +0 -0
  263. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/requirements.txt +0 -0
  264. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/setup.cfg +0 -0
  265. {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_ugv
3
- Version: 7.824.1
3
+ Version: 7.835.1
4
4
  Summary: 🐬 AI x UGV.
5
5
  Home-page: https://github.com/kamangir/bluer-ugv
6
6
  Author: Arash Abadpour (Kamangir)
@@ -65,7 +65,7 @@ pip install bluer_ugv
65
65
 
66
66
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
67
67
 
68
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.824.1`](https://github.com/kamangir/bluer-ugv).
68
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.835.1`](https://github.com/kamangir/bluer-ugv).
69
69
 
70
70
 
71
71
  built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
@@ -35,5 +35,5 @@ pip install bluer_ugv
35
35
 
36
36
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
37
37
 
38
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.824.1`](https://github.com/kamangir/bluer-ugv).
38
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.835.1`](https://github.com/kamangir/bluer-ugv).
39
39
 
@@ -0,0 +1,22 @@
1
+ from typing import Tuple
2
+
3
+ from bluer_ugv.README.ugvs.db import dict_of_ugvs
4
+ from bluer_ugv.logger import logger
5
+
6
+
7
+ def get_location(
8
+ hostname: str,
9
+ log: bool = True,
10
+ ) -> Tuple[bool, str]:
11
+ for info in dict_of_ugvs.values():
12
+ dict_of_computers = info.get("computers", {})
13
+ assert isinstance(dict_of_computers, dict)
14
+
15
+ for location, hostname_ in dict_of_computers.items():
16
+ if hostname == hostname_:
17
+ if log:
18
+ logger.info(f"{hostname}.location={location}")
19
+ return True, location
20
+
21
+ logger.error(f"{hostname}.location not found.")
22
+ return False, ""
@@ -4,7 +4,7 @@ ICON = "🐬"
4
4
 
5
5
  DESCRIPTION = f"{ICON} AI x UGV."
6
6
 
7
- VERSION = "7.824.1"
7
+ VERSION = "7.835.1"
8
8
 
9
9
  REPO_NAME = "bluer-ugv"
10
10
 
@@ -47,6 +47,3 @@ class ClassicalEthernet:
47
47
 
48
48
  while self.running:
49
49
  self.client.process()
50
-
51
- def update(self):
52
- return not self.client.stop_received
@@ -6,8 +6,6 @@ import struct
6
6
  import threading
7
7
  import time
8
8
 
9
- from bluer_sbc.session.functions import reply_to_bash
10
-
11
9
  from bluer_ugv.logger import logger
12
10
  from bluer_ugv.swallow.session.classical.ethernet.command import EthernetCommand
13
11
  from bluer_ugv.logger import logger
@@ -21,14 +19,13 @@ class EthernetClient:
21
19
  is_server: bool = False,
22
20
  reconnect_sec: float = 1.0,
23
21
  ):
24
- self.stop_received: bool = False
25
-
26
22
  self.host = host
27
23
  self.port = port
28
24
  self.is_server = is_server
29
25
  self.reconnect_sec = reconnect_sec
30
26
 
31
27
  self._send_queue: SimpleQueue[EthernetCommand] = SimpleQueue()
28
+ self._receive_queue: SimpleQueue[EthernetCommand] = SimpleQueue()
32
29
 
33
30
  self._lock = threading.Lock()
34
31
  self._sock: Optional[socket.socket] = None
@@ -250,10 +247,7 @@ class EthernetClient:
250
247
  )
251
248
  )
252
249
 
253
- if command.action == "keyboard":
254
- reply_to_bash(command.data.get("event", "unknown"))
255
- self.stop_received = True
256
- logger.info("stop received.")
250
+ self._receive_queue.put(command)
257
251
 
258
252
  # 2) drain outbound queue
259
253
  self._drain_send_queue()
@@ -2,3 +2,4 @@ from bluer_ugv.swallow.session.classical.motor.left import ClassicalLeftMotor
2
2
  from bluer_ugv.swallow.session.classical.motor.right import ClassicalRightMotor
3
3
  from bluer_ugv.swallow.session.classical.motor.rear import ClassicalRearMotors
4
4
  from bluer_ugv.swallow.session.classical.motor.steering import ClassicalSteeringMotor
5
+ from bluer_ugv.swallow.session.classical.motor.void import ClassicalVoidMotor
@@ -0,0 +1,20 @@
1
+ from bluer_ugv.swallow.session.classical.leds import ClassicalLeds
2
+ from bluer_ugv.swallow.session.classical.setpoint.classes import ClassicalSetPoint
3
+
4
+
5
+ class ClassicalVoidMotor:
6
+ def __init__(
7
+ self,
8
+ setpoint: ClassicalSetPoint,
9
+ leds: ClassicalLeds,
10
+ ):
11
+ pass
12
+
13
+ def cleanup(self):
14
+ pass
15
+
16
+ def initialize(self) -> bool:
17
+ return True
18
+
19
+ def update(self) -> bool:
20
+ return True
@@ -1,11 +1,15 @@
1
1
  from RPi import GPIO # type: ignore
2
+ from queue import Empty
2
3
 
3
4
  from bluer_options import string
5
+ from bluer_options.env import abcli_hostname
4
6
  from bluer_options.timing.classes import Timing
5
7
  from bluer_objects.env import abcli_object_name
6
8
  from bluer_objects.metadata import post_to_object
7
9
  from bluer_sbc.env import BLUER_SBC_CAMERA_KIND, BLUER_SBC_SWALLOW_HAS_STEERING
10
+ from bluer_sbc.session.functions import reply_to_bash
8
11
 
12
+ from bluer_ugv.README.ugvs.location import get_location
9
13
  from bluer_ugv.swallow.session.classical.ethernet.classes import ClassicalEthernet
10
14
  from bluer_ugv.swallow.session.classical.camera import (
11
15
  ClassicalCamera,
@@ -23,8 +27,12 @@ from bluer_ugv.swallow.session.classical.motor import (
23
27
  ClassicalRightMotor,
24
28
  ClassicalRearMotors,
25
29
  ClassicalSteeringMotor,
30
+ ClassicalVoidMotor,
26
31
  )
27
32
  from bluer_ugv.swallow.session.classical.setpoint.classes import ClassicalSetPoint
33
+ from bluer_ugv.swallow.session.classical.setpoint.ethernet import (
34
+ ClassicalEthernetSetPoint,
35
+ )
28
36
  from bluer_ugv.swallow.session.classical.position import ClassicalPosition
29
37
  from bluer_ugv.swallow.session.classical.screen.classes import ClassicalScreen
30
38
  from bluer_ugv.swallow.session.classical.ultrasonic_sensor.classes import (
@@ -42,6 +50,8 @@ class ClassicalSession:
42
50
  ):
43
51
  self.object_name = object_name
44
52
 
53
+ _, self.location = get_location(abcli_hostname)
54
+
45
55
  GPIO.setmode(GPIO.BCM)
46
56
 
47
57
  self.ethernet = ClassicalEthernet()
@@ -52,7 +62,10 @@ class ClassicalSession:
52
62
  leds=self.leds,
53
63
  )
54
64
 
55
- self.setpoint = ClassicalSetPoint(
65
+ self.setpoint = (
66
+ ClassicalSetPoint if self.location == "front" else ClassicalEthernetSetPoint
67
+ )(
68
+ ethernet=self.ethernet,
56
69
  leds=self.leds,
57
70
  )
58
71
 
@@ -81,27 +94,34 @@ class ClassicalSession:
81
94
  logger.info("has_steering: {}".format(self.has_steering))
82
95
 
83
96
  self.motor1 = (
84
- ClassicalSteeringMotor if self.has_steering else ClassicalRightMotor
97
+ ClassicalVoidMotor
98
+ if self.location != "front"
99
+ else ClassicalSteeringMotor if self.has_steering else ClassicalRightMotor
85
100
  )(
86
101
  setpoint=self.setpoint,
87
102
  leds=self.leds,
88
103
  )
89
104
 
90
105
  self.motor2 = (
91
- ClassicalRearMotors if self.has_steering else ClassicalLeftMotor
106
+ ClassicalVoidMotor
107
+ if self.location != "front"
108
+ else ClassicalRearMotors if self.has_steering else ClassicalLeftMotor
92
109
  )(
93
110
  setpoint=self.setpoint,
94
111
  leds=self.leds,
95
112
  )
96
113
 
97
- self.position = ClassicalPosition(object_name)
98
-
99
- logger.info(
100
- "wheel arrangement: {} + {}".format(
101
- self.motor1.role,
102
- self.motor2.role,
114
+ if self.location == "front":
115
+ logger.info(
116
+ "wheel arrangement: {} + {}".format(
117
+ self.motor1.role,
118
+ self.motor2.role,
119
+ )
103
120
  )
104
- )
121
+ else:
122
+ logger.info("no wheels.")
123
+
124
+ self.position = ClassicalPosition(object_name)
105
125
 
106
126
  camera_class = (
107
127
  ClassicalVoidCamera
@@ -199,7 +219,6 @@ class ClassicalSession:
199
219
  self.timing.start("session.update")
200
220
 
201
221
  for thing in [
202
- self.ethernet,
203
222
  self.keyboard,
204
223
  self.push_button,
205
224
  self.camera,
@@ -218,4 +237,30 @@ class ClassicalSession:
218
237
  self.timing.stop(thing.__class__.__name__)
219
238
 
220
239
  self.timing.stop("session.update")
240
+ if self.location != "front":
241
+ return True
242
+
243
+ while True:
244
+ try:
245
+ command = (
246
+ self.ethernet.client._receive_queue.get_nowait()
247
+ ) # pylint: disable=protected-access
248
+ except Empty:
249
+ break
250
+
251
+ if command.action == "keyboard":
252
+ reply_to_bash(command.data.get("event", "unknown"))
253
+ logger.info("stop received.")
254
+ return False
255
+
256
+ if command.action == "setpoint.put":
257
+ self.setpoint.put(
258
+ value=command.data.get("value", 0),
259
+ what=command.data.get("what", "void"),
260
+ log=True,
261
+ steering_expires_in=command.data.get("steering_expires_in", 0),
262
+ )
263
+ else:
264
+ logger.warning(f"unknown command: {command.as_str()}")
265
+
221
266
  return True
@@ -2,9 +2,11 @@ import threading
2
2
  from typing import Union, Dict
3
3
  import time
4
4
 
5
+
5
6
  from bluer_options import string
6
7
 
7
8
  from bluer_ugv.swallow.session.classical.leds import ClassicalLeds
9
+ from bluer_ugv.swallow.session.classical.ethernet.classes import ClassicalEthernet
8
10
  from bluer_ugv.swallow.session.classical.setpoint.steering import (
9
11
  generate_left_and_right,
10
12
  )
@@ -14,6 +16,7 @@ from bluer_ugv.logger import logger
14
16
  class ClassicalSetPoint:
15
17
  def __init__(
16
18
  self,
19
+ ethernet: ClassicalEthernet,
17
20
  leds: ClassicalLeds,
18
21
  ):
19
22
  self.speed = 0
@@ -23,10 +26,13 @@ class ClassicalSetPoint:
23
26
 
24
27
  self.started = False
25
28
 
29
+ self.ethernet = ethernet
26
30
  self.leds = leds
27
31
 
28
32
  self._lock = threading.Lock()
29
33
 
34
+ logger.info(f"{self.__class__.__name__} created.")
35
+
30
36
  def get(
31
37
  self,
32
38
  what: str = "all",
@@ -0,0 +1,31 @@
1
+ from typing import Union, Dict
2
+
3
+ from bluer_ugv.swallow.session.classical.ethernet.command import EthernetCommand
4
+ from bluer_ugv.swallow.session.classical.setpoint.classes import ClassicalSetPoint
5
+
6
+
7
+ class ClassicalEthernetSetPoint(ClassicalSetPoint):
8
+ def put(
9
+ self,
10
+ value: Union[int, bool, Dict[str, Union[int, bool]]],
11
+ what: str = "all",
12
+ log: bool = True,
13
+ steering_expires_in: float = 0,
14
+ ):
15
+ super().put(
16
+ value=value,
17
+ what=what,
18
+ log=log,
19
+ steering_expires_in=steering_expires_in,
20
+ )
21
+
22
+ self.ethernet.client.send(
23
+ EthernetCommand(
24
+ action="setpoint.put",
25
+ data={
26
+ "value": value,
27
+ "what": what,
28
+ "steering_expires_in": steering_expires_in,
29
+ },
30
+ )
31
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_ugv
3
- Version: 7.824.1
3
+ Version: 7.835.1
4
4
  Summary: 🐬 AI x UGV.
5
5
  Home-page: https://github.com/kamangir/bluer-ugv
6
6
  Author: Arash Abadpour (Kamangir)
@@ -65,7 +65,7 @@ pip install bluer_ugv
65
65
 
66
66
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
67
67
 
68
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.824.1`](https://github.com/kamangir/bluer-ugv).
68
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.835.1`](https://github.com/kamangir/bluer-ugv).
69
69
 
70
70
 
71
71
  built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
@@ -143,6 +143,7 @@ bluer_ugv/README/ugvs/db.py
143
143
  bluer_ugv/README/ugvs/docs.py
144
144
  bluer_ugv/README/ugvs/ethernet.py
145
145
  bluer_ugv/README/ugvs/get.py
146
+ bluer_ugv/README/ugvs/location.py
146
147
  bluer_ugv/README/ugvs/comparison/__init__.py
147
148
  bluer_ugv/README/ugvs/comparison/build.py
148
149
  bluer_ugv/README/ugvs/comparison/features/DYI.py
@@ -238,6 +239,7 @@ bluer_ugv/swallow/session/classical/motor/left.py
238
239
  bluer_ugv/swallow/session/classical/motor/rear.py
239
240
  bluer_ugv/swallow/session/classical/motor/right.py
240
241
  bluer_ugv/swallow/session/classical/motor/steering.py
242
+ bluer_ugv/swallow/session/classical/motor/void.py
241
243
  bluer_ugv/swallow/session/classical/screen/__init__.py
242
244
  bluer_ugv/swallow/session/classical/screen/classes.py
243
245
  bluer_ugv/swallow/session/classical/screen/video/__init__.py
@@ -247,6 +249,7 @@ bluer_ugv/swallow/session/classical/screen/video/player.py
247
249
  bluer_ugv/swallow/session/classical/screen/video/playlist.py
248
250
  bluer_ugv/swallow/session/classical/setpoint/__init__.py
249
251
  bluer_ugv/swallow/session/classical/setpoint/classes.py
252
+ bluer_ugv/swallow/session/classical/setpoint/ethernet.py
250
253
  bluer_ugv/swallow/session/classical/setpoint/steering.py
251
254
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py
252
255
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py
File without changes
File without changes