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/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
@@ -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.31.1
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
- 31,
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\"\xfc\x02\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\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\"\xe9\x01\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\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\"\xfe\x01\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\"o\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\"\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\"\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*O\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*\"\n\x0cUploadmethod\x12\x08\n\x04LoRa\x10\x00\x12\x08\n\x04WiFi\x10\x01\x62\x06proto3')
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=2759
35
- _globals['_ENABLEDSENSOR']._serialized_end=2838
36
- _globals['_UPLOADMETHOD']._serialized_start=2840
37
- _globals['_UPLOADMETHOD']._serialized_end=2874
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['_TEROS12MEASUREMENT']._serialized_start=152
43
- _globals['_TEROS12MEASUREMENT']._serialized_end=232
44
- _globals['_TEROS21MEASUREMENT']._serialized_start=234
45
- _globals['_TEROS21MEASUREMENT']._serialized_end=288
46
- _globals['_PHYTOS31MEASUREMENT']._serialized_start=290
47
- _globals['_PHYTOS31MEASUREMENT']._serialized_end=350
48
- _globals['_BME280MEASUREMENT']._serialized_start=352
49
- _globals['_BME280MEASUREMENT']._serialized_end=428
50
- _globals['_SEN0308MEASUREMENT']._serialized_start=430
51
- _globals['_SEN0308MEASUREMENT']._serialized_end=485
52
- _globals['_SEN0257MEASUREMENT']._serialized_start=487
53
- _globals['_SEN0257MEASUREMENT']._serialized_end=542
54
- _globals['_YFS210CMEASUREMENT']._serialized_start=544
55
- _globals['_YFS210CMEASUREMENT']._serialized_end=578
56
- _globals['_MEASUREMENT']._serialized_start=581
57
- _globals['_MEASUREMENT']._serialized_end=961
58
- _globals['_RESPONSE']._serialized_start=963
59
- _globals['_RESPONSE']._serialized_end=1051
60
- _globals['_RESPONSE_RESPONSETYPE']._serialized_start=1013
61
- _globals['_RESPONSE_RESPONSETYPE']._serialized_end=1051
62
- _globals['_ESP32COMMAND']._serialized_start=1054
63
- _globals['_ESP32COMMAND']._serialized_end=1287
64
- _globals['_PAGECOMMAND']._serialized_start=1290
65
- _globals['_PAGECOMMAND']._serialized_end=1472
66
- _globals['_PAGECOMMAND_REQUESTTYPE']._serialized_start=1417
67
- _globals['_PAGECOMMAND_REQUESTTYPE']._serialized_end=1472
68
- _globals['_TESTCOMMAND']._serialized_start=1475
69
- _globals['_TESTCOMMAND']._serialized_end=1605
70
- _globals['_TESTCOMMAND_CHANGESTATE']._serialized_start=1545
71
- _globals['_TESTCOMMAND_CHANGESTATE']._serialized_end=1605
72
- _globals['_WIFICOMMAND']._serialized_start=1608
73
- _globals['_WIFICOMMAND']._serialized_end=1862
74
- _globals['_WIFICOMMAND_TYPE']._serialized_start=1751
75
- _globals['_WIFICOMMAND_TYPE']._serialized_end=1862
76
- _globals['_MICROSDCOMMAND']._serialized_start=1865
77
- _globals['_MICROSDCOMMAND']._serialized_end=2255
78
- _globals['_MICROSDCOMMAND_TYPE']._serialized_start=2041
79
- _globals['_MICROSDCOMMAND_TYPE']._serialized_end=2073
80
- _globals['_MICROSDCOMMAND_RETURNCODE']._serialized_start=2076
81
- _globals['_MICROSDCOMMAND_RETURNCODE']._serialized_end=2247
82
- _globals['_IRRIGATIONCOMMAND']._serialized_start=2258
83
- _globals['_IRRIGATIONCOMMAND']._serialized_end=2406
84
- _globals['_IRRIGATIONCOMMAND_TYPE']._serialized_start=2359
85
- _globals['_IRRIGATIONCOMMAND_TYPE']._serialized_end=2376
86
- _globals['_IRRIGATIONCOMMAND_STATE']._serialized_start=2378
87
- _globals['_IRRIGATIONCOMMAND_STATE']._serialized_end=2406
88
- _globals['_USERCONFIGURATION']._serialized_start=2409
89
- _globals['_USERCONFIGURATION']._serialized_end=2757
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)