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.
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/PKG-INFO +1 -1
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/pyproject.toml +1 -1
- meshcore-1.9.8.dev6/src/meshcore/lpp_json_encoder.py +56 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/reader.py +3 -2
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/.gitignore +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/LICENSE +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/README.md +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_chat.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_chan_msg.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_custom_vars.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_infos.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_msg.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/ble_t1000_set_cv.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/mepo_mc_gps.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/pubsub_example.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/rf_packet_monitor.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_battery_monitor.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_chat.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_contacts.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_infos.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_msg.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_repeater_status.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_repeater_telemetry.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/serial_trace.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_chat.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_login_status.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_contacts.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_infos.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_msg.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/examples/tcp_mchome_readmsgs.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/pytest.ini +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/__init__.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/ble_cx.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/commands.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/events.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/meshcore.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/packets.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/serial_cx.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/src/meshcore/tcp_cx.py +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/tests/README.md +0 -0
- {meshcore-1.9.8.dev5 → meshcore-1.9.8.dev6}/tests/unit/test_commands.py +0 -0
- {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.
|
|
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
|
|
@@ -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
|
|
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=
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|