meshcore 1.9.8.dev5__tar.gz → 1.9.8.dev6__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 (42) hide show
  1. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/PKG-INFO +1 -1
  2. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/pyproject.toml +1 -1
  3. meshcore-1.9.8.dev6/src/meshcore/lpp_json_encoder.py +56 -0
  4. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/reader.py +3 -2
  5. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/.gitignore +0 -0
  6. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/LICENSE +0 -0
  7. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/README.md +0 -0
  8. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_chat.py +0 -0
  9. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_chan_msg.py +0 -0
  10. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_custom_vars.py +0 -0
  11. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_infos.py +0 -0
  12. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_msg.py +0 -0
  13. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_set_cv.py +0 -0
  14. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/mepo_mc_gps.py +0 -0
  15. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/pubsub_example.py +0 -0
  16. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/rf_packet_monitor.py +0 -0
  17. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_battery_monitor.py +0 -0
  18. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_chat.py +0 -0
  19. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_contacts.py +0 -0
  20. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_infos.py +0 -0
  21. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_msg.py +0 -0
  22. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_repeater_status.py +0 -0
  23. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_repeater_telemetry.py +0 -0
  24. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_trace.py +0 -0
  25. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_chat.py +0 -0
  26. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_login_status.py +0 -0
  27. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_contacts.py +0 -0
  28. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_infos.py +0 -0
  29. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_msg.py +0 -0
  30. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_readmsgs.py +0 -0
  31. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/pytest.ini +0 -0
  32. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/__init__.py +0 -0
  33. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/ble_cx.py +0 -0
  34. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/commands.py +0 -0
  35. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/events.py +0 -0
  36. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/meshcore.py +0 -0
  37. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/packets.py +0 -0
  38. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/serial_cx.py +0 -0
  39. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/tcp_cx.py +0 -0
  40. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/tests/README.md +0 -0
  41. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/tests/unit/test_commands.py +0 -0
  42. {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/tests/unit/test_events.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meshcore
3
- Version: 1.9.8.dev5
3
+ Version: 1.9.8.dev6
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 = "1.9.8.dev5"
7
+ version = "1.9.8.dev6"
8
8
  authors = [
9
9
  { name="Florent de Lamotte", email="florent@frizoncorrea.fr" },
10
10
  { name="Alex Wolden", email="awolden@gmail.com" },
@@ -0,0 +1,56 @@
1
+ from cayennelpp import LppFrame, LppData
2
+ from cayennelpp.lpp_type import LppType
3
+
4
+ # type name "how to display vale"
5
+ # display : None: (use lib default), []: only one value to display, ["field1", "field2" ...]: meaning of each field
6
+ my_lpp_types = {
7
+ 0: ('digital input', []),
8
+ 1: ('digital output', []),
9
+ 2: ('analog input', []),
10
+ 3: ('analog output', []),
11
+ 100: ('generic sensor', []),
12
+ 101: ('illuminance', []),
13
+ 102: ('presence', []),
14
+ 103: ('temperature', []),
15
+ 104: ('humidity', []),
16
+ 113: ('accelerometer', ["acc_x", "acc_y", "acc_z"]),
17
+ 115: ('barometer', []),
18
+ 116: ('voltage', []),
19
+ 117: ('current', []),
20
+ 118: ('frequency', []),
21
+ 120: ('percentage', []),
22
+ 121: ('altitude', []),
23
+ 122: ('load', []),
24
+ 125: ('concentration', []),
25
+ 128: ('power', []),
26
+ 130: ('distance', []),
27
+ 131: ('energy', []),
28
+ 132: ('direction', None),
29
+ 133: ('time', []),
30
+ 134: ('gyrometer', None),
31
+ 135: ('colour', ["red", "green", "blue"]),
32
+ 136: ('gps', ["latitude", "longitude", "altitude"]),
33
+ 142: ('switch', []),
34
+ }
35
+
36
+ def lpp_json_encoder (obj) :
37
+ """Encode LppType, LppData, and LppFrame to JSON."""
38
+ if isinstance(obj, LppFrame):
39
+ return obj.data
40
+ if isinstance(obj, LppType):
41
+ return my_lpp_types[obj.type][0]
42
+ if isinstance(obj, LppData):
43
+ d = {"channel" : obj.channel, "type" : obj.type}
44
+ if my_lpp_types[obj.type.type][1] is None :
45
+ d["value"] = obj.value
46
+ elif len(my_lpp_types[obj.type.type][1]) == 0 :
47
+ d["value"] = obj.value[0]
48
+ else :
49
+ val_dict = {}
50
+ i = 0
51
+ for t in my_lpp_types[obj.type.type][1] :
52
+ val_dict[t] = obj.value[i]
53
+ i = i + 1
54
+ d["value"] = val_dict
55
+ return d
56
+ raise TypeError(repr(obj) + " is not JSON serialized")
@@ -2,10 +2,11 @@ import sys
2
2
  import logging
3
3
  import asyncio
4
4
  import json
5
- from cayennelpp import LppFrame, LppData, LppUtil
5
+ from cayennelpp import LppFrame, LppData
6
6
  from typing import Any, Optional, Dict
7
7
  from .events import Event, EventType, EventDispatcher
8
8
  from .packets import PacketType
9
+ from meshcore.lpp_json_encoder import lpp_json_encoder
9
10
 
10
11
  logger = logging.getLogger("meshcore")
11
12
 
@@ -408,7 +409,7 @@ class MessageReader:
408
409
  data.append(lppdata)
409
410
  i = i + len(lppdata)
410
411
 
411
- lpp = json.loads(json.dumps(LppFrame(data), default=LppUtil.json_encode_type_str))
412
+ lpp = json.loads(json.dumps(LppFrame(data), default=lpp_json_encoder))
412
413
 
413
414
  res["lpp"] = lpp
414
415
 
File without changes
File without changes
File without changes
File without changes