ents 2.3.4__py3-none-any.whl → 2.3.6__py3-none-any.whl
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.
- ents/__init__.py +4 -1
- ents/calibrate/recorder.py +4 -4
- ents/cli.py +321 -6
- ents/config/user_config.py +1 -4
- ents/dirtviz/__init__.py +8 -0
- ents/dirtviz/client.py +223 -0
- ents/dirtviz/plots.py +50 -0
- ents/proto/sensor.py +290 -0
- ents/proto/sensor_pb2.py +48 -0
- ents/proto/soil_power_sensor_pb2.py +83 -55
- ents/simulator/node.py +159 -0
- {ents-2.3.4.dist-info → ents-2.3.6.dist-info}/METADATA +58 -104
- ents-2.3.6.dist-info/RECORD +30 -0
- {ents-2.3.4.dist-info → ents-2.3.6.dist-info}/WHEEL +1 -1
- ents/demo/demoPullRequests.py +0 -119
- ents-2.3.4.dist-info/RECORD +0 -26
- {ents-2.3.4.dist-info → ents-2.3.6.dist-info}/entry_points.txt +0 -0
- {ents-2.3.4.dist-info → ents-2.3.6.dist-info}/licenses/LICENSE +0 -0
ents/dirtviz/plots.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""Common plots for data on dirtviz.
|
|
2
|
+
|
|
3
|
+
Still need to fill in with common functions:
|
|
4
|
+
- Plot power (voltage, current, calcualted power)
|
|
5
|
+
- Plot teros12
|
|
6
|
+
- Plot bme280
|
|
7
|
+
- Plot all (take all available sensors)
|
|
8
|
+
- Plot group (find mean/stddev for each point)
|
|
9
|
+
|
|
10
|
+
Can pull from personal scripts from SenSys (jtmadden)
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import pandas as pd
|
|
14
|
+
|
|
15
|
+
import matplotlib.pyplot as plt
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# matplotlib formatting
|
|
19
|
+
# plt.rcParams["font.size"] = 7
|
|
20
|
+
# plt.rcParams['font.weight'] = 'medium'
|
|
21
|
+
# plt.ion()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def plot_data(data: list[pd.DataFrame], name, **kwargs):
|
|
25
|
+
"""Plots data from one or many cells
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
data: List of dataframes
|
|
29
|
+
name: Column or measurement name
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
fig, ax = plt.subplots()
|
|
33
|
+
for d in data:
|
|
34
|
+
ax.plot(d["timestamp"], d[name], **kwargs)
|
|
35
|
+
|
|
36
|
+
ax.axhline(
|
|
37
|
+
y=0,
|
|
38
|
+
color="black",
|
|
39
|
+
linewidth=2,
|
|
40
|
+
dashes=(2, 2),
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
ax.set_xlabel("Timestamp")
|
|
44
|
+
ax.set_ylabel(name)
|
|
45
|
+
|
|
46
|
+
ax.grid()
|
|
47
|
+
|
|
48
|
+
plt.show(block=False)
|
|
49
|
+
|
|
50
|
+
return ax
|
ents/proto/sensor.py
ADDED
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"""Module for sensor measurements
|
|
2
|
+
|
|
3
|
+
Encode/decoding functions are wrappers around the protobuf messages. These take
|
|
4
|
+
in the json dictionary format of the messages and return serialized byte
|
|
5
|
+
arrays.
|
|
6
|
+
|
|
7
|
+
Format/parse functions implement the protocol for repeated sensor measurements.
|
|
8
|
+
These take in a list of measurements and automatically optimize repeated
|
|
9
|
+
metadata fields.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from google.protobuf.json_format import MessageToDict, ParseDict
|
|
13
|
+
|
|
14
|
+
from .sensor_pb2 import (
|
|
15
|
+
SensorMeasurement,
|
|
16
|
+
RepeatedSensorMeasurements,
|
|
17
|
+
SensorType,
|
|
18
|
+
RepeatedSensorResponses,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def parse_sensor_measurement(data: bytes) -> list:
|
|
23
|
+
"""Parses a sensor measurement into a usable dictionary.
|
|
24
|
+
|
|
25
|
+
Function does the following:
|
|
26
|
+
1. Decodes the serialized byte array
|
|
27
|
+
2. Updates metadata for each measurement if missing
|
|
28
|
+
3. Adds names, descriptions, and units to metadata
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
data: Byte array of message.
|
|
32
|
+
|
|
33
|
+
Returns:
|
|
34
|
+
Dictionary of sensor measurement.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
meas = decode_repeated_sensor_measurements(data)
|
|
38
|
+
meas = update_repeated_metadata(meas)
|
|
39
|
+
for m in meas["measurements"]:
|
|
40
|
+
sensor_data = get_sensor_data(m["type"])
|
|
41
|
+
m.update(sensor_data)
|
|
42
|
+
|
|
43
|
+
return meas
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def format_sensor_measurement(meas: list) -> bytes:
|
|
47
|
+
"""Formats a sensor measurement dictionary into a serialized byte array.
|
|
48
|
+
|
|
49
|
+
Function does the following:
|
|
50
|
+
1. Uses top level metadata for duplicate measurement metadata fields
|
|
51
|
+
2. Encodes the dictionary into a serialized byte array
|
|
52
|
+
|
|
53
|
+
Args:
|
|
54
|
+
meas: Dictionary of sensor measurement.
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
Byte array of serialized message.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
# TODO Implement optimization of repeated metadata fields
|
|
61
|
+
meas_dict = {
|
|
62
|
+
"measurements": meas,
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
data = encode_repeated_sensor_measurements(meas_dict)
|
|
66
|
+
return data
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def get_sensor_data(meas_type: int) -> dict:
|
|
70
|
+
"""Gets sensor data information.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
meas_type: Sensor measurement dictionary.
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
Metadata associated with the sensor type.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
SENSOR_DATA = {
|
|
80
|
+
SensorType.POWER_VOLTAGE: {
|
|
81
|
+
"name": "Voltage",
|
|
82
|
+
"unit": "mV",
|
|
83
|
+
},
|
|
84
|
+
SensorType.POWER_CURRENT: {
|
|
85
|
+
"name": "Current",
|
|
86
|
+
"unit": "uA",
|
|
87
|
+
},
|
|
88
|
+
SensorType.TEROS12_VWC: {
|
|
89
|
+
"name": "Volumetric Water Content",
|
|
90
|
+
"unit": "%",
|
|
91
|
+
},
|
|
92
|
+
SensorType.TEROS12_TEMP: {
|
|
93
|
+
"name": "Temperature",
|
|
94
|
+
"unit": "C",
|
|
95
|
+
},
|
|
96
|
+
SensorType.TEROS12_EC: {
|
|
97
|
+
"name": "Electrical Conductivity",
|
|
98
|
+
"unit": "uS/cm",
|
|
99
|
+
},
|
|
100
|
+
SensorType.PHYTOS31_VOLTAGE: {
|
|
101
|
+
"name": "Voltage",
|
|
102
|
+
"unit": "mV",
|
|
103
|
+
},
|
|
104
|
+
SensorType.PHYTOS31_LEAF_WETNESS: {
|
|
105
|
+
"name": "Leaf Wetness",
|
|
106
|
+
"unit": "%",
|
|
107
|
+
},
|
|
108
|
+
SensorType.BME280_PRESSURE: {
|
|
109
|
+
"name": "Pressure",
|
|
110
|
+
"unit": "kPa",
|
|
111
|
+
},
|
|
112
|
+
SensorType.BME280_TEMP: {
|
|
113
|
+
"name": "Temperature",
|
|
114
|
+
"unit": "C",
|
|
115
|
+
},
|
|
116
|
+
SensorType.BME280_HUMIDITY: {
|
|
117
|
+
"name": "Humidity",
|
|
118
|
+
"unit": "%",
|
|
119
|
+
},
|
|
120
|
+
SensorType.TEROS21_MATRIC_POT: {
|
|
121
|
+
"name": "Matric Potential",
|
|
122
|
+
"unit": "kPa",
|
|
123
|
+
},
|
|
124
|
+
SensorType.TEROS21_TEMP: {
|
|
125
|
+
"name": "Temperature",
|
|
126
|
+
"unit": "C",
|
|
127
|
+
},
|
|
128
|
+
SensorType.SEN0308_VOLTAGE: {
|
|
129
|
+
"name": "Voltage",
|
|
130
|
+
"unit": "mV",
|
|
131
|
+
},
|
|
132
|
+
SensorType.SEN0308_HUMIDITY: {
|
|
133
|
+
"name": "Humidity",
|
|
134
|
+
"unit": "%",
|
|
135
|
+
},
|
|
136
|
+
SensorType.SEN0257_VOLTAGE: {
|
|
137
|
+
"name": "Voltage",
|
|
138
|
+
"unit": "mV",
|
|
139
|
+
},
|
|
140
|
+
SensorType.SEN0257_PRESSURE: {
|
|
141
|
+
"name": "Pressure",
|
|
142
|
+
"unit": "kPa",
|
|
143
|
+
},
|
|
144
|
+
SensorType.YFS210C_FLOW: {
|
|
145
|
+
"name": "Flow Rate",
|
|
146
|
+
"unit": "L/min",
|
|
147
|
+
},
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
meta = SENSOR_DATA[SensorType.Value(meas_type)]
|
|
151
|
+
return meta
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
def encode_sensor_measurement(meas_dict: dict) -> bytes:
|
|
155
|
+
meas = SensorMeasurement()
|
|
156
|
+
ParseDict(meas_dict, meas)
|
|
157
|
+
|
|
158
|
+
return meas.SerializeToString()
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
def encode_repeated_sensor_measurements(meas_dict: dict) -> bytes:
|
|
162
|
+
"""Encodes a SensorMeasurement message
|
|
163
|
+
|
|
164
|
+
Args:
|
|
165
|
+
rep_meas: Repeated sensor measurement dictionary.
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
Byte array of encoded RepeatedSensorMeasurements message.
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
meas = RepeatedSensorMeasurements()
|
|
172
|
+
ParseDict(meas_dict, meas)
|
|
173
|
+
|
|
174
|
+
return meas.SerializeToString()
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def decode_sensor_measurement(data: bytes) -> dict:
|
|
178
|
+
"""Decodes a SensorMeasurement message
|
|
179
|
+
|
|
180
|
+
Args:
|
|
181
|
+
data: Byte array of SensorMeasurement message.
|
|
182
|
+
|
|
183
|
+
Returns:
|
|
184
|
+
Decoded sensor measurement dictionary.
|
|
185
|
+
"""
|
|
186
|
+
|
|
187
|
+
meas = SensorMeasurement()
|
|
188
|
+
meas.ParseFromString(data)
|
|
189
|
+
|
|
190
|
+
parsed_meas = MessageToDict(meas)
|
|
191
|
+
|
|
192
|
+
return parsed_meas
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def decode_repeated_sensor_measurements(data: bytes) -> dict:
|
|
196
|
+
"""Decodes repeated sensor measurements
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
data: Byte array from RepeatedSensorMeasurements
|
|
200
|
+
|
|
201
|
+
Returns:
|
|
202
|
+
List of decoded sensor measurement dictionaries.
|
|
203
|
+
"""
|
|
204
|
+
|
|
205
|
+
rep_meas = RepeatedSensorMeasurements()
|
|
206
|
+
rep_meas.ParseFromString(data)
|
|
207
|
+
return MessageToDict(rep_meas)
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
def update_repeated_metadata(meas: dict) -> dict:
|
|
211
|
+
"""Ensures every measurements has metadata field set.
|
|
212
|
+
|
|
213
|
+
If a measurement is missing the metadata field, it is filled in from the
|
|
214
|
+
repeated sensor measurement. Existing measurement metadata fields are not
|
|
215
|
+
overwritten.
|
|
216
|
+
|
|
217
|
+
Args:
|
|
218
|
+
meas: Sensor measurement dictionary.
|
|
219
|
+
|
|
220
|
+
Returns:
|
|
221
|
+
Updated sensor measurement dictionary.
|
|
222
|
+
"""
|
|
223
|
+
|
|
224
|
+
# if top level meta does not exist, ensure all measurements have meta
|
|
225
|
+
if "meta" not in meas:
|
|
226
|
+
for m in meas["measurements"]:
|
|
227
|
+
if "meta" not in m:
|
|
228
|
+
raise ValueError("Repeated measurement missing metadata field.")
|
|
229
|
+
# otherwise populate missing measurement meta from top level
|
|
230
|
+
else:
|
|
231
|
+
for m in meas["measurements"]:
|
|
232
|
+
if "meta" not in m:
|
|
233
|
+
m["meta"] = meas["meta"]
|
|
234
|
+
del meas["meta"]
|
|
235
|
+
|
|
236
|
+
return meas
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def encode_sensor_response(resp_dict: dict) -> bytes:
|
|
240
|
+
"""Encodes a sensor response message.
|
|
241
|
+
|
|
242
|
+
{
|
|
243
|
+
responses: [
|
|
244
|
+
{
|
|
245
|
+
status: int,
|
|
246
|
+
message: str,
|
|
247
|
+
},
|
|
248
|
+
...
|
|
249
|
+
]
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
Args:
|
|
253
|
+
resp_dict: Sensor response dictionary.
|
|
254
|
+
|
|
255
|
+
Returns:
|
|
256
|
+
Byte array of encoded SensorResponse message.
|
|
257
|
+
"""
|
|
258
|
+
|
|
259
|
+
resp = RepeatedSensorResponses()
|
|
260
|
+
ParseDict(resp_dict, resp)
|
|
261
|
+
|
|
262
|
+
return resp.SerializeToString()
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
def decode_sensor_response(data: bytes) -> dict:
|
|
266
|
+
"""Decodes a sensor response message.
|
|
267
|
+
|
|
268
|
+
{
|
|
269
|
+
responses: [
|
|
270
|
+
{
|
|
271
|
+
status: int,
|
|
272
|
+
message: str,
|
|
273
|
+
},
|
|
274
|
+
...
|
|
275
|
+
]
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
Args:
|
|
279
|
+
data: Byte array of SensorResponse message.
|
|
280
|
+
|
|
281
|
+
Returns:
|
|
282
|
+
Decoded sensor response dictionary.
|
|
283
|
+
"""
|
|
284
|
+
|
|
285
|
+
resp = RepeatedSensorResponses()
|
|
286
|
+
resp.ParseFromString(data)
|
|
287
|
+
|
|
288
|
+
parsed_resp = MessageToDict(resp)
|
|
289
|
+
|
|
290
|
+
return parsed_resp
|
ents/proto/sensor_pb2.py
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: sensor.proto
|
|
5
|
+
# Protobuf Python Version: 6.33.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
33,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'sensor.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0csensor.proto\":\n\x08Metadata\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\r\x12\x11\n\tlogger_id\x18\x02 \x01(\r\x12\n\n\x02ts\x18\x03 \x01(\r\":\n\x0eSensorResponse\x12\x0b\n\x03idx\x18\x01 \x01(\r\x12\x1b\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x0c.SensorError\"=\n\x17RepeatedSensorResponses\x12\"\n\tresponses\x18\x01 \x03(\x0b\x32\x0f.SensorResponse\"\x9e\x01\n\x11SensorMeasurement\x12\x17\n\x04meta\x18\x01 \x01(\x0b\x32\t.Metadata\x12\x19\n\x04type\x18\x02 \x01(\x0e\x32\x0b.SensorType\x12\x16\n\x0cunsigned_int\x18\x03 \x01(\rH\x00\x12\x14\n\nsigned_int\x18\x04 \x01(\x05H\x00\x12\x11\n\x07\x64\x65\x63imal\x18\x05 \x01(\x01H\x00\x12\x0b\n\x03idx\x18\x06 \x01(\rB\x07\n\x05value\"z\n\x1aRepeatedSensorMeasurements\x12\x17\n\x04meta\x18\x01 \x01(\x0b\x32\t.Metadata\x12\x19\n\x04type\x18\x02 \x01(\x0e\x32\x0b.SensorType\x12(\n\x0cmeasurements\x18\x03 \x03(\x0b\x32\x12.SensorMeasurement*\x9a\x03\n\nSensorType\x12\x08\n\x04NONE\x10\x00\x12\x11\n\rPOWER_VOLTAGE\x10\x01\x12\x11\n\rPOWER_CURRENT\x10\x02\x12\x0f\n\x0bTEROS12_VWC\x10\x03\x12\x13\n\x0fTEROS12_VWC_ADJ\x10\x04\x12\x10\n\x0cTEROS12_TEMP\x10\x05\x12\x0e\n\nTEROS12_EC\x10\x06\x12\x14\n\x10PHYTOS31_VOLTAGE\x10\x07\x12\x19\n\x15PHYTOS31_LEAF_WETNESS\x10\x08\x12\x13\n\x0f\x42ME280_PRESSURE\x10\t\x12\x0f\n\x0b\x42ME280_TEMP\x10\n\x12\x13\n\x0f\x42ME280_HUMIDITY\x10\x0b\x12\x16\n\x12TEROS21_MATRIC_POT\x10\x0c\x12\x10\n\x0cTEROS21_TEMP\x10\r\x12\x13\n\x0fSEN0308_VOLTAGE\x10\x0e\x12\x14\n\x10SEN0308_HUMIDITY\x10\x0f\x12\x13\n\x0fSEN0257_VOLTAGE\x10\x10\x12\x14\n\x10SEN0257_PRESSURE\x10\x11\x12\x10\n\x0cYFS210C_FLOW\x10\x12\x12\x16\n\x12PCAP02_CAPACITANCE\x10\x13*b\n\x0bSensorError\x12\x06\n\x02OK\x10\x00\x12\x0b\n\x07GENERAL\x10\x01\x12\n\n\x06LOGGER\x10\x02\x12\x08\n\x04\x43\x45LL\x10\x03\x12\x0f\n\x0bUNSUPPORTED\x10\x04\x12\x0b\n\x07INVALID\x10\x05\x12\n\n\x06\x44\x45\x43ODE\x10\x06\x62\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sensor_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
DESCRIPTOR._loaded_options = None
|
|
34
|
+
_globals['_SENSORTYPE']._serialized_start=485
|
|
35
|
+
_globals['_SENSORTYPE']._serialized_end=895
|
|
36
|
+
_globals['_SENSORERROR']._serialized_start=897
|
|
37
|
+
_globals['_SENSORERROR']._serialized_end=995
|
|
38
|
+
_globals['_METADATA']._serialized_start=16
|
|
39
|
+
_globals['_METADATA']._serialized_end=74
|
|
40
|
+
_globals['_SENSORRESPONSE']._serialized_start=76
|
|
41
|
+
_globals['_SENSORRESPONSE']._serialized_end=134
|
|
42
|
+
_globals['_REPEATEDSENSORRESPONSES']._serialized_start=136
|
|
43
|
+
_globals['_REPEATEDSENSORRESPONSES']._serialized_end=197
|
|
44
|
+
_globals['_SENSORMEASUREMENT']._serialized_start=200
|
|
45
|
+
_globals['_SENSORMEASUREMENT']._serialized_end=358
|
|
46
|
+
_globals['_REPEATEDSENSORMEASUREMENTS']._serialized_start=360
|
|
47
|
+
_globals['_REPEATEDSENSORMEASUREMENTS']._serialized_end=482
|
|
48
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
3
|
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
4
|
# source: soil_power_sensor.proto
|
|
5
|
-
# Protobuf Python Version: 6.
|
|
5
|
+
# Protobuf Python Version: 6.33.1
|
|
6
6
|
"""Generated protocol buffer code."""
|
|
7
7
|
from google.protobuf import descriptor as _descriptor
|
|
8
8
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
@@ -12,7 +12,7 @@ from google.protobuf.internal import builder as _builder
|
|
|
12
12
|
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
13
|
_runtime_version.Domain.PUBLIC,
|
|
14
14
|
6,
|
|
15
|
-
|
|
15
|
+
33,
|
|
16
16
|
1,
|
|
17
17
|
'',
|
|
18
18
|
'soil_power_sensor.proto'
|
|
@@ -24,67 +24,95 @@ _sym_db = _symbol_database.Default()
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17soil_power_sensor.proto\"E\n\x13MeasurementMetadata\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\r\x12\x11\n\tlogger_id\x18\x02 \x01(\r\x12\n\n\x02ts\x18\x03 \x01(\r\"4\n\x10PowerMeasurement\x12\x0f\n\x07voltage\x18\x02 \x01(\x01\x12\x0f\n\x07\x63urrent\x18\x03 \x01(\x01\"P\n\x12Teros12Measurement\x12\x0f\n\x07vwc_raw\x18\x02 \x01(\x01\x12\x0f\n\x07vwc_adj\x18\x03 \x01(\x01\x12\x0c\n\x04temp\x18\x04 \x01(\x01\x12\n\n\x02\x65\x63\x18\x05 \x01(\r\"6\n\x12Teros21Measurement\x12\x12\n\nmatric_pot\x18\x01 \x01(\x01\x12\x0c\n\x04temp\x18\x02 \x01(\x01\"<\n\x13Phytos31Measurement\x12\x0f\n\x07voltage\x18\x01 \x01(\x01\x12\x14\n\x0cleaf_wetness\x18\x02 \x01(\x01\"L\n\x11\x42ME280Measurement\x12\x10\n\x08pressure\x18\x01 \x01(\r\x12\x13\n\x0btemperature\x18\x02 \x01(\x05\x12\x10\n\x08humidity\x18\x03 \x01(\r\"7\n\x12SEN0308Measurement\x12\x0f\n\x07voltage\x18\x01 \x01(\x01\x12\x10\n\x08humidity\x18\x02 \x01(\x01\"7\n\x12SEN0257Measurement\x12\x0f\n\x07voltage\x18\x01 \x01(\x01\x12\x10\n\x08pressure\x18\x02 \x01(\x01\"\"\n\x12YFS210CMeasurement\x12\x0c\n\x04\x66low\x18\x01 \x01(\x01\"\
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17soil_power_sensor.proto\"E\n\x13MeasurementMetadata\x12\x0f\n\x07\x63\x65ll_id\x18\x01 \x01(\r\x12\x11\n\tlogger_id\x18\x02 \x01(\r\x12\n\n\x02ts\x18\x03 \x01(\r\"4\n\x10PowerMeasurement\x12\x0f\n\x07voltage\x18\x02 \x01(\x01\x12\x0f\n\x07\x63urrent\x18\x03 \x01(\x01\"*\n\x17VoltageDeltaMeasurement\x12\x0f\n\x07voltage\x18\x01 \x01(\r\"*\n\x17\x43urrentDeltaMeasurement\x12\x0f\n\x07\x63urrent\x18\x01 \x01(\r\"%\n\x12VoltageMeasurement\x12\x0f\n\x07voltage\x18\x01 \x01(\x01\"%\n\x12\x43urrentMeasurement\x12\x0f\n\x07\x63urrent\x18\x01 \x01(\x01\"K\n\x0fPowerDeltaEntry\x12\n\n\x02ts\x18\x01 \x01(\r\x12\x15\n\rvoltage_delta\x18\x02 \x01(\r\x12\x15\n\rcurrent_delta\x18\x03 \x01(\r\"E\n\x15PowerMeasurementDelta\x12\x15\n\rvoltage_delta\x18\x02 \x01(\r\x12\x15\n\rcurrent_delta\x18\x03 \x01(\r\"\\\n\x13RepeatedPowerDeltas\x12\x11\n\tlogger_id\x18\x01 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x02 \x01(\r\x12!\n\x07\x65ntries\x18\x03 \x03(\x0b\x32\x10.PowerDeltaEntry\"P\n\x12Teros12Measurement\x12\x0f\n\x07vwc_raw\x18\x02 \x01(\x01\x12\x0f\n\x07vwc_adj\x18\x03 \x01(\x01\x12\x0c\n\x04temp\x18\x04 \x01(\x01\x12\n\n\x02\x65\x63\x18\x05 \x01(\r\"6\n\x12Teros21Measurement\x12\x12\n\nmatric_pot\x18\x01 \x01(\x01\x12\x0c\n\x04temp\x18\x02 \x01(\x01\"<\n\x13Phytos31Measurement\x12\x0f\n\x07voltage\x18\x01 \x01(\x01\x12\x14\n\x0cleaf_wetness\x18\x02 \x01(\x01\"L\n\x11\x42ME280Measurement\x12\x10\n\x08pressure\x18\x01 \x01(\r\x12\x13\n\x0btemperature\x18\x02 \x01(\x05\x12\x10\n\x08humidity\x18\x03 \x01(\r\"7\n\x12SEN0308Measurement\x12\x0f\n\x07voltage\x18\x01 \x01(\x01\x12\x10\n\x08humidity\x18\x02 \x01(\x01\"7\n\x12SEN0257Measurement\x12\x0f\n\x07voltage\x18\x01 \x01(\x01\x12\x10\n\x08pressure\x18\x02 \x01(\x01\"\"\n\x12YFS210CMeasurement\x12\x0c\n\x04\x66low\x18\x01 \x01(\x01\"(\n\x11PCAP02Measurement\x12\x13\n\x0b\x63\x61pacitance\x18\x01 \x01(\x01\"\xa2\x03\n\x0bMeasurement\x12\"\n\x04meta\x18\x01 \x01(\x0b\x32\x14.MeasurementMetadata\x12\"\n\x05power\x18\x02 \x01(\x0b\x32\x11.PowerMeasurementH\x00\x12&\n\x07teros12\x18\x03 \x01(\x0b\x32\x13.Teros12MeasurementH\x00\x12(\n\x08phytos31\x18\x04 \x01(\x0b\x32\x14.Phytos31MeasurementH\x00\x12$\n\x06\x62me280\x18\x05 \x01(\x0b\x32\x12.BME280MeasurementH\x00\x12&\n\x07teros21\x18\x06 \x01(\x0b\x32\x13.Teros21MeasurementH\x00\x12&\n\x07sen0308\x18\x07 \x01(\x0b\x32\x13.SEN0308MeasurementH\x00\x12&\n\x07sen0257\x18\x08 \x01(\x0b\x32\x13.SEN0257MeasurementH\x00\x12&\n\x07yfs210c\x18\t \x01(\x0b\x32\x13.YFS210CMeasurementH\x00\x12$\n\x06pcap02\x18\n \x01(\x0b\x32\x12.PCAP02MeasurementH\x00\x42\r\n\x0bmeasurement\"X\n\x08Response\x12$\n\x04resp\x18\x01 \x01(\x0e\x32\x16.Response.ResponseType\"&\n\x0cResponseType\x12\x0b\n\x07SUCCESS\x10\x00\x12\t\n\x05\x45RROR\x10\x01\"\xc4\x02\n\x0c\x45sp32Command\x12$\n\x0cpage_command\x18\x01 \x01(\x0b\x32\x0c.PageCommandH\x00\x12$\n\x0ctest_command\x18\x02 \x01(\x0b\x32\x0c.TestCommandH\x00\x12$\n\x0cwifi_command\x18\x03 \x01(\x0b\x32\x0c.WiFiCommandH\x00\x12*\n\x0fmicrosd_command\x18\x04 \x01(\x0b\x32\x0f.MicroSDCommandH\x00\x12\x30\n\x12irrigation_command\x18\x05 \x01(\x0b\x32\x12.IrrigationCommandH\x00\x12\x31\n\x13user_config_command\x18\x06 \x01(\x0b\x32\x12.UserConfigCommandH\x00\x12&\n\rpower_command\x18\x07 \x01(\x0b\x32\r.PowerCommandH\x00\x42\t\n\x07\x63ommand\"\xb6\x01\n\x0bPageCommand\x12.\n\x0c\x66ile_request\x18\x01 \x01(\x0e\x32\x18.PageCommand.RequestType\x12\x17\n\x0f\x66ile_descriptor\x18\x02 \x01(\r\x12\x12\n\nblock_size\x18\x03 \x01(\r\x12\x11\n\tnum_bytes\x18\x04 \x01(\r\"7\n\x0bRequestType\x12\x08\n\x04OPEN\x10\x00\x12\t\n\x05\x43LOSE\x10\x01\x12\x08\n\x04READ\x10\x02\x12\t\n\x05WRITE\x10\x03\"\x82\x01\n\x0bTestCommand\x12\'\n\x05state\x18\x01 \x01(\x0e\x32\x18.TestCommand.ChangeState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x05\"<\n\x0b\x43hangeState\x12\x0b\n\x07RECEIVE\x10\x00\x12\x13\n\x0fRECEIVE_REQUEST\x10\x01\x12\x0b\n\x07REQUEST\x10\x02\"\xc5\x02\n\x0bWiFiCommand\x12\x1f\n\x04type\x18\x01 \x01(\x0e\x32\x11.WiFiCommand.Type\x12\x0c\n\x04ssid\x18\x02 \x01(\t\x12\x0e\n\x06passwd\x18\x03 \x01(\t\x12\x0b\n\x03url\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x08 \x01(\r\x12\n\n\x02rc\x18\x05 \x01(\r\x12\n\n\x02ts\x18\x06 \x01(\r\x12\x0c\n\x04resp\x18\x07 \x01(\x0c\x12\x0b\n\x03mac\x18\t \x01(\t\x12\x0f\n\x07\x63lients\x18\n \x01(\r\"\x97\x01\n\x04Type\x12\x0b\n\x07\x43ONNECT\x10\x00\x12\x08\n\x04POST\x10\x01\x12\t\n\x05\x43HECK\x10\x02\x12\x08\n\x04TIME\x10\x03\x12\x0e\n\nDISCONNECT\x10\x04\x12\x0e\n\nCHECK_WIFI\x10\x05\x12\r\n\tCHECK_API\x10\x06\x12\x0c\n\x08NTP_SYNC\x10\x07\x12\x08\n\x04HOST\x10\x08\x12\r\n\tSTOP_HOST\x10\t\x12\r\n\tHOST_INFO\x10\n\"\xad\x01\n\x11UserConfigCommand\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.UserConfigCommand.RequestType\x12\'\n\x0b\x63onfig_data\x18\x02 \x01(\x0b\x32\x12.UserConfiguration\"A\n\x0bRequestType\x12\x12\n\x0eREQUEST_CONFIG\x10\x00\x12\x13\n\x0fRESPONSE_CONFIG\x10\x01\x12\t\n\x05START\x10\x02\"\x86\x03\n\x0eMicroSDCommand\x12\"\n\x04type\x18\x01 \x01(\x0e\x32\x14.MicroSDCommand.Type\x12\x10\n\x08\x66ilename\x18\x02 \x01(\t\x12&\n\x02rc\x18\x03 \x01(\x0e\x32\x1a.MicroSDCommand.ReturnCode\x12\x1c\n\x04meas\x18\x04 \x01(\x0b\x32\x0c.MeasurementH\x00\x12 \n\x02uc\x18\x05 \x01(\x0b\x32\x12.UserConfigurationH\x00\" \n\x04Type\x12\x08\n\x04SAVE\x10\x00\x12\x0e\n\nUSERCONFIG\x10\x01\"\xab\x01\n\nReturnCode\x12\x0b\n\x07SUCCESS\x10\x00\x12\x11\n\rERROR_GENERAL\x10\x01\x12\x1e\n\x1a\x45RROR_MICROSD_NOT_INSERTED\x10\x02\x12#\n\x1f\x45RROR_FILE_SYSTEM_NOT_MOUNTABLE\x10\x03\x12\x1d\n\x19\x45RROR_PAYLOAD_NOT_DECODED\x10\x04\x12\x19\n\x15\x45RROR_FILE_NOT_OPENED\x10\x05\x42\x06\n\x04\x64\x61ta\"\x94\x01\n\x11IrrigationCommand\x12%\n\x04type\x18\x01 \x01(\x0e\x32\x17.IrrigationCommand.Type\x12\'\n\x05state\x18\x02 \x01(\x0e\x32\x18.IrrigationCommand.State\"\x11\n\x04Type\x12\t\n\x05\x43HECK\x10\x00\"\x1c\n\x05State\x12\x08\n\x04OPEN\x10\x00\x12\t\n\x05\x43LOSE\x10\x01\"\xab\x03\n\x0cPowerCommand\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.PowerCommand.Type\x12*\n\x06reason\x18\x02 \x01(\x0e\x32\x1a.PowerCommand.WakeupReason\x12\x12\n\nboot_count\x18\x03 \x01(\r\"\x1d\n\x04Type\x12\t\n\x05SLEEP\x10\x00\x12\n\n\x06WAKEUP\x10\x01\"\x99\x02\n\x0cWakeupReason\x12\x15\n\x11POWER_WAKEUP_EXT0\x10\x00\x12\x15\n\x11POWER_WAKEUP_EXT1\x10\x01\x12\x16\n\x12POWER_WAKEUP_TIMER\x10\x02\x12\x19\n\x15POWER_WAKEUP_TOUCHPAD\x10\x03\x12\x14\n\x10POWER_WAKEUP_ULP\x10\x04\x12\x15\n\x11POWER_WAKEUP_GPIO\x10\x05\x12\x15\n\x11POWER_WAKEUP_UART\x10\x06\x12\x15\n\x11POWER_WAKEUP_WIFI\x10\x07\x12\x16\n\x12POWER_WAKEUP_COCPU\x10\x08\x12 \n\x1cPOWER_WAKEUP_COCPU_TRAP_TRIG\x10\t\x12\x13\n\x0fPOWER_WAKEUP_BT\x10\n\"\xdc\x02\n\x11UserConfiguration\x12\x11\n\tlogger_id\x18\x01 \x01(\r\x12\x0f\n\x07\x63\x65ll_id\x18\x02 \x01(\r\x12$\n\rUpload_method\x18\x03 \x01(\x0e\x32\r.Uploadmethod\x12\x17\n\x0fUpload_interval\x18\x04 \x01(\r\x12\'\n\x0f\x65nabled_sensors\x18\x05 \x03(\x0e\x32\x0e.EnabledSensor\x12\x15\n\rVoltage_Slope\x18\x06 \x01(\x01\x12\x16\n\x0eVoltage_Offset\x18\x07 \x01(\x01\x12\x15\n\rCurrent_Slope\x18\x08 \x01(\x01\x12\x16\n\x0e\x43urrent_Offset\x18\t \x01(\x01\x12\x11\n\tWiFi_SSID\x18\n \x01(\t\x12\x15\n\rWiFi_Password\x18\x0b \x01(\t\x12\x18\n\x10\x41PI_Endpoint_URL\x18\x0c \x01(\t\x12\x19\n\x11\x41PI_Endpoint_Port\x18\r \x01(\r\"\x17\n\x08\x61\x64\x63Value\x12\x0b\n\x03\x61\x64\x63\x18\x01 \x01(\r*\x90\x01\n\rEnabledSensor\x12\x0b\n\x07Voltage\x10\x00\x12\x0b\n\x07\x43urrent\x10\x01\x12\x0b\n\x07Teros12\x10\x02\x12\x0b\n\x07Teros21\x10\x03\x12\n\n\x06\x42ME280\x10\x04\x12\x0c\n\x08Phytos31\x10\x05\x12\x0b\n\x07SEN0308\x10\x06\x12\x0b\n\x07SEN0257\x10\x07\x12\x0b\n\x07YFS210C\x10\x08\x12\n\n\x06PCAP02\x10\t*\"\n\x0cUploadmethod\x12\x08\n\x04LoRa\x10\x00\x12\x08\n\x04WiFi\x10\x01\x62\x06proto3')
|
|
28
28
|
|
|
29
29
|
_globals = globals()
|
|
30
30
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
31
|
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'soil_power_sensor_pb2', _globals)
|
|
32
32
|
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
33
|
DESCRIPTOR._loaded_options = None
|
|
34
|
-
_globals['_ENABLEDSENSOR']._serialized_start=
|
|
35
|
-
_globals['_ENABLEDSENSOR']._serialized_end=
|
|
36
|
-
_globals['_UPLOADMETHOD']._serialized_start=
|
|
37
|
-
_globals['_UPLOADMETHOD']._serialized_end=
|
|
34
|
+
_globals['_ENABLEDSENSOR']._serialized_start=4041
|
|
35
|
+
_globals['_ENABLEDSENSOR']._serialized_end=4185
|
|
36
|
+
_globals['_UPLOADMETHOD']._serialized_start=4187
|
|
37
|
+
_globals['_UPLOADMETHOD']._serialized_end=4221
|
|
38
38
|
_globals['_MEASUREMENTMETADATA']._serialized_start=27
|
|
39
39
|
_globals['_MEASUREMENTMETADATA']._serialized_end=96
|
|
40
40
|
_globals['_POWERMEASUREMENT']._serialized_start=98
|
|
41
41
|
_globals['_POWERMEASUREMENT']._serialized_end=150
|
|
42
|
-
_globals['
|
|
43
|
-
_globals['
|
|
44
|
-
_globals['
|
|
45
|
-
_globals['
|
|
46
|
-
_globals['
|
|
47
|
-
_globals['
|
|
48
|
-
_globals['
|
|
49
|
-
_globals['
|
|
50
|
-
_globals['
|
|
51
|
-
_globals['
|
|
52
|
-
_globals['
|
|
53
|
-
_globals['
|
|
54
|
-
_globals['
|
|
55
|
-
_globals['
|
|
56
|
-
_globals['
|
|
57
|
-
_globals['
|
|
58
|
-
_globals['
|
|
59
|
-
_globals['
|
|
60
|
-
_globals['
|
|
61
|
-
_globals['
|
|
62
|
-
_globals['
|
|
63
|
-
_globals['
|
|
64
|
-
_globals['
|
|
65
|
-
_globals['
|
|
66
|
-
_globals['
|
|
67
|
-
_globals['
|
|
68
|
-
_globals['
|
|
69
|
-
_globals['
|
|
70
|
-
_globals['
|
|
71
|
-
_globals['
|
|
72
|
-
_globals['
|
|
73
|
-
_globals['
|
|
74
|
-
_globals['
|
|
75
|
-
_globals['
|
|
76
|
-
_globals['
|
|
77
|
-
_globals['
|
|
78
|
-
_globals['
|
|
79
|
-
_globals['
|
|
80
|
-
_globals['
|
|
81
|
-
_globals['
|
|
82
|
-
_globals['
|
|
83
|
-
_globals['
|
|
84
|
-
_globals['
|
|
85
|
-
_globals['
|
|
86
|
-
_globals['
|
|
87
|
-
_globals['
|
|
88
|
-
_globals['
|
|
89
|
-
_globals['
|
|
42
|
+
_globals['_VOLTAGEDELTAMEASUREMENT']._serialized_start=152
|
|
43
|
+
_globals['_VOLTAGEDELTAMEASUREMENT']._serialized_end=194
|
|
44
|
+
_globals['_CURRENTDELTAMEASUREMENT']._serialized_start=196
|
|
45
|
+
_globals['_CURRENTDELTAMEASUREMENT']._serialized_end=238
|
|
46
|
+
_globals['_VOLTAGEMEASUREMENT']._serialized_start=240
|
|
47
|
+
_globals['_VOLTAGEMEASUREMENT']._serialized_end=277
|
|
48
|
+
_globals['_CURRENTMEASUREMENT']._serialized_start=279
|
|
49
|
+
_globals['_CURRENTMEASUREMENT']._serialized_end=316
|
|
50
|
+
_globals['_POWERDELTAENTRY']._serialized_start=318
|
|
51
|
+
_globals['_POWERDELTAENTRY']._serialized_end=393
|
|
52
|
+
_globals['_POWERMEASUREMENTDELTA']._serialized_start=395
|
|
53
|
+
_globals['_POWERMEASUREMENTDELTA']._serialized_end=464
|
|
54
|
+
_globals['_REPEATEDPOWERDELTAS']._serialized_start=466
|
|
55
|
+
_globals['_REPEATEDPOWERDELTAS']._serialized_end=558
|
|
56
|
+
_globals['_TEROS12MEASUREMENT']._serialized_start=560
|
|
57
|
+
_globals['_TEROS12MEASUREMENT']._serialized_end=640
|
|
58
|
+
_globals['_TEROS21MEASUREMENT']._serialized_start=642
|
|
59
|
+
_globals['_TEROS21MEASUREMENT']._serialized_end=696
|
|
60
|
+
_globals['_PHYTOS31MEASUREMENT']._serialized_start=698
|
|
61
|
+
_globals['_PHYTOS31MEASUREMENT']._serialized_end=758
|
|
62
|
+
_globals['_BME280MEASUREMENT']._serialized_start=760
|
|
63
|
+
_globals['_BME280MEASUREMENT']._serialized_end=836
|
|
64
|
+
_globals['_SEN0308MEASUREMENT']._serialized_start=838
|
|
65
|
+
_globals['_SEN0308MEASUREMENT']._serialized_end=893
|
|
66
|
+
_globals['_SEN0257MEASUREMENT']._serialized_start=895
|
|
67
|
+
_globals['_SEN0257MEASUREMENT']._serialized_end=950
|
|
68
|
+
_globals['_YFS210CMEASUREMENT']._serialized_start=952
|
|
69
|
+
_globals['_YFS210CMEASUREMENT']._serialized_end=986
|
|
70
|
+
_globals['_PCAP02MEASUREMENT']._serialized_start=988
|
|
71
|
+
_globals['_PCAP02MEASUREMENT']._serialized_end=1028
|
|
72
|
+
_globals['_MEASUREMENT']._serialized_start=1031
|
|
73
|
+
_globals['_MEASUREMENT']._serialized_end=1449
|
|
74
|
+
_globals['_RESPONSE']._serialized_start=1451
|
|
75
|
+
_globals['_RESPONSE']._serialized_end=1539
|
|
76
|
+
_globals['_RESPONSE_RESPONSETYPE']._serialized_start=1501
|
|
77
|
+
_globals['_RESPONSE_RESPONSETYPE']._serialized_end=1539
|
|
78
|
+
_globals['_ESP32COMMAND']._serialized_start=1542
|
|
79
|
+
_globals['_ESP32COMMAND']._serialized_end=1866
|
|
80
|
+
_globals['_PAGECOMMAND']._serialized_start=1869
|
|
81
|
+
_globals['_PAGECOMMAND']._serialized_end=2051
|
|
82
|
+
_globals['_PAGECOMMAND_REQUESTTYPE']._serialized_start=1996
|
|
83
|
+
_globals['_PAGECOMMAND_REQUESTTYPE']._serialized_end=2051
|
|
84
|
+
_globals['_TESTCOMMAND']._serialized_start=2054
|
|
85
|
+
_globals['_TESTCOMMAND']._serialized_end=2184
|
|
86
|
+
_globals['_TESTCOMMAND_CHANGESTATE']._serialized_start=2124
|
|
87
|
+
_globals['_TESTCOMMAND_CHANGESTATE']._serialized_end=2184
|
|
88
|
+
_globals['_WIFICOMMAND']._serialized_start=2187
|
|
89
|
+
_globals['_WIFICOMMAND']._serialized_end=2512
|
|
90
|
+
_globals['_WIFICOMMAND_TYPE']._serialized_start=2361
|
|
91
|
+
_globals['_WIFICOMMAND_TYPE']._serialized_end=2512
|
|
92
|
+
_globals['_USERCONFIGCOMMAND']._serialized_start=2515
|
|
93
|
+
_globals['_USERCONFIGCOMMAND']._serialized_end=2688
|
|
94
|
+
_globals['_USERCONFIGCOMMAND_REQUESTTYPE']._serialized_start=2623
|
|
95
|
+
_globals['_USERCONFIGCOMMAND_REQUESTTYPE']._serialized_end=2688
|
|
96
|
+
_globals['_MICROSDCOMMAND']._serialized_start=2691
|
|
97
|
+
_globals['_MICROSDCOMMAND']._serialized_end=3081
|
|
98
|
+
_globals['_MICROSDCOMMAND_TYPE']._serialized_start=2867
|
|
99
|
+
_globals['_MICROSDCOMMAND_TYPE']._serialized_end=2899
|
|
100
|
+
_globals['_MICROSDCOMMAND_RETURNCODE']._serialized_start=2902
|
|
101
|
+
_globals['_MICROSDCOMMAND_RETURNCODE']._serialized_end=3073
|
|
102
|
+
_globals['_IRRIGATIONCOMMAND']._serialized_start=3084
|
|
103
|
+
_globals['_IRRIGATIONCOMMAND']._serialized_end=3232
|
|
104
|
+
_globals['_IRRIGATIONCOMMAND_TYPE']._serialized_start=3185
|
|
105
|
+
_globals['_IRRIGATIONCOMMAND_TYPE']._serialized_end=3202
|
|
106
|
+
_globals['_IRRIGATIONCOMMAND_STATE']._serialized_start=3204
|
|
107
|
+
_globals['_IRRIGATIONCOMMAND_STATE']._serialized_end=3232
|
|
108
|
+
_globals['_POWERCOMMAND']._serialized_start=3235
|
|
109
|
+
_globals['_POWERCOMMAND']._serialized_end=3662
|
|
110
|
+
_globals['_POWERCOMMAND_TYPE']._serialized_start=3349
|
|
111
|
+
_globals['_POWERCOMMAND_TYPE']._serialized_end=3378
|
|
112
|
+
_globals['_POWERCOMMAND_WAKEUPREASON']._serialized_start=3381
|
|
113
|
+
_globals['_POWERCOMMAND_WAKEUPREASON']._serialized_end=3662
|
|
114
|
+
_globals['_USERCONFIGURATION']._serialized_start=3665
|
|
115
|
+
_globals['_USERCONFIGURATION']._serialized_end=4013
|
|
116
|
+
_globals['_ADCVALUE']._serialized_start=4015
|
|
117
|
+
_globals['_ADCVALUE']._serialized_end=4038
|
|
90
118
|
# @@protoc_insertion_point(module_scope)
|