meshcore 2.1.17__tar.gz → 2.1.18__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 meshcore might be problematic. Click here for more details.

Files changed (60) hide show
  1. {meshcore-2.1.17 → meshcore-2.1.18}/PKG-INFO +1 -1
  2. {meshcore-2.1.17 → meshcore-2.1.18}/pyproject.toml +1 -1
  3. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/commands/device.py +41 -42
  4. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/reader.py +1 -0
  5. {meshcore-2.1.17 → meshcore-2.1.18}/.github/python-test.yml +0 -0
  6. {meshcore-2.1.17 → meshcore-2.1.18}/.gitignore +0 -0
  7. {meshcore-2.1.17 → meshcore-2.1.18}/LICENSE +0 -0
  8. {meshcore-2.1.17 → meshcore-2.1.18}/README.md +0 -0
  9. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_chat.py +0 -0
  10. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_pin_pairing_example.py +0 -0
  11. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_private_key_export.py +0 -0
  12. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_t1000_chan_msg.py +0 -0
  13. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_t1000_custom_vars.py +0 -0
  14. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_t1000_infos.py +0 -0
  15. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_t1000_msg.py +0 -0
  16. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_t1000_msg_retries.py +0 -0
  17. {meshcore-2.1.17 → meshcore-2.1.18}/examples/ble_t1000_set_cv.py +0 -0
  18. {meshcore-2.1.17 → meshcore-2.1.18}/examples/connection_events_example.py +0 -0
  19. {meshcore-2.1.17 → meshcore-2.1.18}/examples/mepo_mc_gps.py +0 -0
  20. {meshcore-2.1.17 → meshcore-2.1.18}/examples/pubsub_example.py +0 -0
  21. {meshcore-2.1.17 → meshcore-2.1.18}/examples/rf_packet_monitor.py +0 -0
  22. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_battery_monitor.py +0 -0
  23. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_channel_manager.py +0 -0
  24. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_chat.py +0 -0
  25. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_contacts.py +0 -0
  26. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_infos.py +0 -0
  27. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_msg.py +0 -0
  28. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_repeater_status.py +0 -0
  29. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_repeater_telemetry.py +0 -0
  30. {meshcore-2.1.17 → meshcore-2.1.18}/examples/serial_trace.py +0 -0
  31. {meshcore-2.1.17 → meshcore-2.1.18}/examples/tcp_chat.py +0 -0
  32. {meshcore-2.1.17 → meshcore-2.1.18}/examples/tcp_login_status.py +0 -0
  33. {meshcore-2.1.17 → meshcore-2.1.18}/examples/tcp_mchome_contacts.py +0 -0
  34. {meshcore-2.1.17 → meshcore-2.1.18}/examples/tcp_mchome_infos.py +0 -0
  35. {meshcore-2.1.17 → meshcore-2.1.18}/examples/tcp_mchome_msg.py +0 -0
  36. {meshcore-2.1.17 → meshcore-2.1.18}/examples/tcp_mchome_readmsgs.py +0 -0
  37. {meshcore-2.1.17 → meshcore-2.1.18}/pytest.ini +0 -0
  38. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/__init__.py +0 -0
  39. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/ble_cx.py +0 -0
  40. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/commands/__init__.py +0 -0
  41. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/commands/base.py +0 -0
  42. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/commands/binary.py +0 -0
  43. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/commands/contact.py +0 -0
  44. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/commands/messaging.py +0 -0
  45. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/connection_manager.py +0 -0
  46. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/events.py +0 -0
  47. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/lpp_json_encoder.py +0 -0
  48. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/meshcore.py +0 -0
  49. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/packets.py +0 -0
  50. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/parsing.py +0 -0
  51. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/serial_cx.py +0 -0
  52. {meshcore-2.1.17 → meshcore-2.1.18}/src/meshcore/tcp_cx.py +0 -0
  53. {meshcore-2.1.17 → meshcore-2.1.18}/tests/README.md +0 -0
  54. {meshcore-2.1.17 → meshcore-2.1.18}/tests/test_ble_connection.py +0 -0
  55. {meshcore-2.1.17 → meshcore-2.1.18}/tests/test_ble_pin_pairing.py +0 -0
  56. {meshcore-2.1.17 → meshcore-2.1.18}/tests/test_meshcore_ble_pin.py +0 -0
  57. {meshcore-2.1.17 → meshcore-2.1.18}/tests/unit/test_commands.py +0 -0
  58. {meshcore-2.1.17 → meshcore-2.1.18}/tests/unit/test_events.py +0 -0
  59. {meshcore-2.1.17 → meshcore-2.1.18}/tests/unit/test_private_key_export.py +0 -0
  60. {meshcore-2.1.17 → meshcore-2.1.18}/tests/unit/test_reader.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcore
3
- Version: 2.1.17
3
+ Version: 2.1.18
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.1.17"
7
+ version = "2.1.18"
8
8
  authors = [
9
9
  { name="Florent de Lamotte", email="florent@frizoncorrea.fr" },
10
10
  { name="Alex Wolden", email="awolden@gmail.com" },
@@ -87,14 +87,18 @@ class DeviceCommands(CommandHandlerBase):
87
87
  [EventType.OK, EventType.ERROR],
88
88
  )
89
89
 
90
+ # the old set_other_params function has been replaced in
91
+ # favour of set_other_params_from_infos to be more generic
92
+ # stays here for backward compatibility but does not support
93
+ # multi_acks for instance
90
94
  async def set_other_params(
91
- self,
92
- manual_add_contacts: bool,
93
- telemetry_mode_base: int,
94
- telemetry_mode_loc: int,
95
- telemetry_mode_env: int,
96
- advert_loc_policy: int,
97
- ) -> Event:
95
+ self,
96
+ manual_add_contacts: bool,
97
+ telemetry_mode_base: int,
98
+ telemetry_mode_loc: int,
99
+ telemetry_mode_env: int,
100
+ advert_loc_policy: int,
101
+ ) -> Event:
98
102
  telemetry_mode = (
99
103
  (telemetry_mode_base & 0b11)
100
104
  | ((telemetry_mode_loc & 0b11) << 2)
@@ -108,55 +112,50 @@ class DeviceCommands(CommandHandlerBase):
108
112
  )
109
113
  return await self.send(data, [EventType.OK, EventType.ERROR])
110
114
 
115
+ async def set_other_params_from_infos(self, infos) -> Event:
116
+ telemetry_mode = (
117
+ (infos["telemetry_mode_base"] & 0b11)
118
+ | ((infos["telemetry_mode_loc"] & 0b11) << 2)
119
+ | ((infos["telemetry_mode_env"] & 0b11) << 4)
120
+ )
121
+ data = (
122
+ b"\x26"
123
+ + infos["manual_add_contacts"].to_bytes(1)
124
+ + telemetry_mode.to_bytes(1)
125
+ + infos["adv_loc_policy"].to_bytes(1)
126
+ + infos["multi_acks"].to_bytes(1)
127
+ )
128
+ return await self.send(data, [EventType.OK, EventType.ERROR])
129
+
111
130
  async def set_telemetry_mode_base(self, telemetry_mode_base: int) -> Event:
112
131
  infos = (await self.send_appstart()).payload
113
- return await self.set_other_params(
114
- infos["manual_add_contacts"],
115
- telemetry_mode_base,
116
- infos["telemetry_mode_loc"],
117
- infos["telemetry_mode_env"],
118
- infos["adv_loc_policy"],
119
- )
132
+ infos["telemetry_mode_base"] = telemetry_mode_base
133
+ return await self.set_other_params_from_infos(infos)
120
134
 
121
135
  async def set_telemetry_mode_loc(self, telemetry_mode_loc: int) -> Event:
122
136
  infos = (await self.send_appstart()).payload
123
- return await self.set_other_params(
124
- infos["manual_add_contacts"],
125
- infos["telemetry_mode_base"],
126
- telemetry_mode_loc,
127
- infos["telemetry_mode_env"],
128
- infos["adv_loc_policy"],
129
- )
137
+ infos["telemetry_mode_loc"] = telemetry_mode_loc
138
+ return await self.set_other_params_from_infos(infos)
130
139
 
131
140
  async def set_telemetry_mode_env(self, telemetry_mode_env: int) -> Event:
132
141
  infos = (await self.send_appstart()).payload
133
- return await self.set_other_params(
134
- infos["manual_add_contacts"],
135
- infos["telemetry_mode_base"],
136
- infos["telemetry_mode_loc"],
137
- telemetry_mode_env,
138
- infos["adv_loc_policy"],
139
- )
142
+ infos["telemetry_mode_env"] = telemetry_mode_env
143
+ return await self.set_other_params_from_infos(infos)
140
144
 
141
145
  async def set_manual_add_contacts(self, manual_add_contacts: bool) -> Event:
142
146
  infos = (await self.send_appstart()).payload
143
- return await self.set_other_params(
144
- manual_add_contacts,
145
- infos["telemetry_mode_base"],
146
- infos["telemetry_mode_loc"],
147
- infos["telemetry_mode_env"],
148
- infos["adv_loc_policy"],
149
- )
147
+ infos["manual_add_contacts"] = manual_add_contacts
148
+ return await self.set_other_params_from_infos(infos)
150
149
 
151
150
  async def set_advert_loc_policy(self, advert_loc_policy: int) -> Event:
152
151
  infos = (await self.send_appstart()).payload
153
- return await self.set_other_params(
154
- infos["manual_add_contacts"],
155
- infos["telemetry_mode_base"],
156
- infos["telemetry_mode_loc"],
157
- infos["telemetry_mode_env"],
158
- advert_loc_policy,
159
- )
152
+ infos["adv_loc_policy"] = advert_loc_policy
153
+ return await self.set_other_params_from_infos(infos)
154
+
155
+ async def set_multi_ack(self, multi_acks: int) -> Event:
156
+ infos = (await self.send_appstart()).payload
157
+ infos["multi_acks"] = multi_acks
158
+ return await self.set_other_params_from_infos(infos)
160
159
 
161
160
  async def set_devicepin(self, pin: int) -> Event:
162
161
  logger.debug(f"Setting device PIN to: {pin}")
@@ -123,6 +123,7 @@ class MessageReader:
123
123
  self_info["adv_lon"] = (
124
124
  int.from_bytes(data[40:44], byteorder="little", signed=True) / 1e6
125
125
  )
126
+ self_info["multi_acks"] = data[44]
126
127
  self_info["adv_loc_policy"] = data[45]
127
128
  self_info["telemetry_mode_env"] = (data[46] >> 4) & 0b11
128
129
  self_info["telemetry_mode_loc"] = (data[46] >> 2) & 0b11
File without changes
File without changes
File without changes
File without changes
File without changes