meshcore 2.3.2__tar.gz → 2.3.4__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.
Files changed (71) hide show
  1. {meshcore-2.3.2 → meshcore-2.3.4}/PKG-INFO +1 -1
  2. {meshcore-2.3.2 → meshcore-2.3.4}/pyproject.toml +1 -1
  3. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/commands/binary.py +12 -8
  4. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/commands/messaging.py +2 -0
  5. {meshcore-2.3.2 → meshcore-2.3.4}/.github/python-test.yml +0 -0
  6. {meshcore-2.3.2 → meshcore-2.3.4}/.gitignore +0 -0
  7. {meshcore-2.3.2 → meshcore-2.3.4}/LICENSE +0 -0
  8. {meshcore-2.3.2 → meshcore-2.3.4}/README.md +0 -0
  9. {meshcore-2.3.2 → meshcore-2.3.4}/examples/.pubsub_example.py.swp +0 -0
  10. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_chat.py +0 -0
  11. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_pin_pairing_example.py +0 -0
  12. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_private_key_export.py +0 -0
  13. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_sign_example.py +0 -0
  14. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_stats.py +0 -0
  15. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_t1000_chan_msg.py +0 -0
  16. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_t1000_custom_vars.py +0 -0
  17. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_t1000_infos.py +0 -0
  18. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_t1000_msg.py +0 -0
  19. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_t1000_msg_retries.py +0 -0
  20. {meshcore-2.3.2 → meshcore-2.3.4}/examples/ble_t1000_set_cv.py +0 -0
  21. {meshcore-2.3.2 → meshcore-2.3.4}/examples/chan_recv_with_path.py +0 -0
  22. {meshcore-2.3.2 → meshcore-2.3.4}/examples/connection_events_example.py +0 -0
  23. {meshcore-2.3.2 → meshcore-2.3.4}/examples/mepo_mc_gps.py +0 -0
  24. {meshcore-2.3.2 → meshcore-2.3.4}/examples/pubsub_example.py +0 -0
  25. {meshcore-2.3.2 → meshcore-2.3.4}/examples/rf_packet_monitor.py +0 -0
  26. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_battery_monitor.py +0 -0
  27. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_channel_manager.py +0 -0
  28. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_chat.py +0 -0
  29. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_contacts.py +0 -0
  30. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_infos.py +0 -0
  31. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_meshcore_ollama.py +0 -0
  32. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_msg.py +0 -0
  33. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_pingbot.py +0 -0
  34. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_repeater_status.py +0 -0
  35. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_repeater_telemetry.py +0 -0
  36. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_rss_bot.py +0 -0
  37. {meshcore-2.3.2 → meshcore-2.3.4}/examples/serial_trace.py +0 -0
  38. {meshcore-2.3.2 → meshcore-2.3.4}/examples/tcp_chat.py +0 -0
  39. {meshcore-2.3.2 → meshcore-2.3.4}/examples/tcp_login_status.py +0 -0
  40. {meshcore-2.3.2 → meshcore-2.3.4}/examples/tcp_mchome_contacts.py +0 -0
  41. {meshcore-2.3.2 → meshcore-2.3.4}/examples/tcp_mchome_infos.py +0 -0
  42. {meshcore-2.3.2 → meshcore-2.3.4}/examples/tcp_mchome_msg.py +0 -0
  43. {meshcore-2.3.2 → meshcore-2.3.4}/examples/tcp_mchome_readmsgs.py +0 -0
  44. {meshcore-2.3.2 → meshcore-2.3.4}/pytest.ini +0 -0
  45. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/__init__.py +0 -0
  46. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/ble_cx.py +0 -0
  47. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/commands/__init__.py +0 -0
  48. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/commands/base.py +0 -0
  49. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/commands/contact.py +0 -0
  50. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/commands/control_data.py +0 -0
  51. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/commands/device.py +0 -0
  52. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/connection_manager.py +0 -0
  53. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/events.py +0 -0
  54. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/lpp_json_encoder.py +0 -0
  55. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/meshcore.py +0 -0
  56. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/meshcore_parser.py +0 -0
  57. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/packets.py +0 -0
  58. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/parsing.py +0 -0
  59. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/reader.py +0 -0
  60. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/serial_cx.py +0 -0
  61. {meshcore-2.3.2 → meshcore-2.3.4}/src/meshcore/tcp_cx.py +0 -0
  62. {meshcore-2.3.2 → meshcore-2.3.4}/tests/README.md +0 -0
  63. {meshcore-2.3.2 → meshcore-2.3.4}/tests/test_ble_connection.py +0 -0
  64. {meshcore-2.3.2 → meshcore-2.3.4}/tests/test_ble_pin_pairing.py +0 -0
  65. {meshcore-2.3.2 → meshcore-2.3.4}/tests/test_meshcore_ble_pin.py +0 -0
  66. {meshcore-2.3.2 → meshcore-2.3.4}/tests/unit/test_commands.py +0 -0
  67. {meshcore-2.3.2 → meshcore-2.3.4}/tests/unit/test_events.py +0 -0
  68. {meshcore-2.3.2 → meshcore-2.3.4}/tests/unit/test_path_discovery_response.py +0 -0
  69. {meshcore-2.3.2 → meshcore-2.3.4}/tests/unit/test_private_key_export.py +0 -0
  70. {meshcore-2.3.2 → meshcore-2.3.4}/tests/unit/test_reader.py +0 -0
  71. {meshcore-2.3.2 → meshcore-2.3.4}/tests/unit/test_serial_connection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcore
3
- Version: 2.3.2
3
+ Version: 2.3.4
4
4
  Summary: Base classes for communicating with meshcore companion radios
5
5
  Project-URL: Homepage, https://github.com/fdlamotte/meshcore_py
6
6
  Project-URL: Issues, https://github.com/fdlamotte/meshcore_py/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "meshcore"
7
- version = "2.3.2"
7
+ version = "2.3.4"
8
8
  authors = [
9
9
  { name="Florent de Lamotte", email="florent@frizoncorrea.fr" },
10
10
  { name="Alex Wolden", email="awolden@gmail.com" },
@@ -225,6 +225,7 @@ class BinaryCommandHandler(CommandHandlerBase):
225
225
 
226
226
  del res["tag"]
227
227
 
228
+ tries = 0
228
229
  while results_count < neighbours_count:
229
230
  #await asyncio.sleep(2) # wait 2s before next fetch
230
231
  next_res = await self.req_neighbours_sync(contact,
@@ -233,15 +234,18 @@ class BinaryCommandHandler(CommandHandlerBase):
233
234
  order_by=order_by,
234
235
  pubkey_prefix_length=pubkey_prefix_length,
235
236
  timeout=timeout,
236
- min_timeout=min_timeout+5) # requests are close, so let's have some more timeout
237
-
237
+ min_timeout=min_timeout+25) # requests are close and responses big,
238
+ #so let's have some more timeout for duty cycle
238
239
  if next_res is None :
239
- return res # caller should check it has everything
240
-
241
- results_count = results_count + next_res["results_count"]
242
-
243
- res["results_count"] = results_count
244
- res["neighbours"] += next_res["neighbours"]
240
+ if tries > 0:
241
+ return res # caller should check it has everything
242
+ else:
243
+ tries += 1
244
+ else:
245
+ tries = 0
246
+ results_count += next_res["results_count"]
247
+ res["results_count"] = results_count
248
+ res["neighbours"] += next_res["neighbours"]
245
249
 
246
250
  return res
247
251
 
@@ -269,6 +269,8 @@ class MessagingCommands(CommandHandlerBase):
269
269
  scope_key = b"\0"*16
270
270
  else:
271
271
  logger.debug(f"Setting scope from string {scope}")
272
+ if scope[0] != "#": # no hashtag as first char
273
+ scope = "#" + scope # adding hashtag
272
274
  scope_key = sha256(scope.encode("utf-8")).digest()[0:16]
273
275
  elif isinstance (scope, bytes): # scope has been sent directly as byte
274
276
  logger.debug(f"Directly setting scope to {scope}")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes