ents 2.3.3__tar.gz → 2.3.4__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 (30) hide show
  1. {ents-2.3.3 → ents-2.3.4}/PKG-INFO +1 -1
  2. {ents-2.3.3 → ents-2.3.4}/pyproject.toml +1 -1
  3. ents-2.3.4/src/ents/demo/demoPullRequests.py +119 -0
  4. ents-2.3.4/src/ents/proto/soil_power_sensor_pb2.py +90 -0
  5. ents-2.3.3/src/ents/proto/soil_power_sensor_pb2.py +0 -72
  6. {ents-2.3.3 → ents-2.3.4}/.gitignore +0 -0
  7. {ents-2.3.3 → ents-2.3.4}/LICENSE +0 -0
  8. {ents-2.3.3 → ents-2.3.4}/README.md +0 -0
  9. {ents-2.3.3 → ents-2.3.4}/src/ents/__init__.py +0 -0
  10. {ents-2.3.3 → ents-2.3.4}/src/ents/calibrate/PingSMU.py +0 -0
  11. {ents-2.3.3 → ents-2.3.4}/src/ents/calibrate/PingSPS.py +0 -0
  12. {ents-2.3.3 → ents-2.3.4}/src/ents/calibrate/README.md +0 -0
  13. {ents-2.3.3 → ents-2.3.4}/src/ents/calibrate/__init__.py +0 -0
  14. {ents-2.3.3 → ents-2.3.4}/src/ents/calibrate/linear_regression.py +0 -0
  15. {ents-2.3.3 → ents-2.3.4}/src/ents/calibrate/plots.py +0 -0
  16. {ents-2.3.3 → ents-2.3.4}/src/ents/calibrate/recorder.py +0 -0
  17. {ents-2.3.3 → ents-2.3.4}/src/ents/cli.py +0 -0
  18. {ents-2.3.3 → ents-2.3.4}/src/ents/config/README.md +0 -0
  19. {ents-2.3.3 → ents-2.3.4}/src/ents/config/__init__.py +0 -0
  20. {ents-2.3.3 → ents-2.3.4}/src/ents/config/adv_trace.py +0 -0
  21. {ents-2.3.3 → ents-2.3.4}/src/ents/config/user_config.py +0 -0
  22. {ents-2.3.3 → ents-2.3.4}/src/ents/proto/__init__.py +0 -0
  23. {ents-2.3.3 → ents-2.3.4}/src/ents/proto/decode.py +0 -0
  24. {ents-2.3.3 → ents-2.3.4}/src/ents/proto/encode.py +0 -0
  25. {ents-2.3.3 → ents-2.3.4}/src/ents/proto/esp32.py +0 -0
  26. {ents-2.3.3 → ents-2.3.4}/src/ents/simulator/__init__.py +0 -0
  27. {ents-2.3.3 → ents-2.3.4}/src/ents/simulator/node.py +0 -0
  28. {ents-2.3.3 → ents-2.3.4}/tests/__init__.py +0 -0
  29. {ents-2.3.3 → ents-2.3.4}/tests/test_generic.py +0 -0
  30. {ents-2.3.3 → ents-2.3.4}/tests/test_simulator.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ents
3
- Version: 2.3.3
3
+ Version: 2.3.4
4
4
  Summary: Python package for Environmental NeTworked Sensor (ENTS)
5
5
  Project-URL: Homepage, https://github.com/jlab-sensing/soil-power-sensor-firmware
6
6
  Project-URL: Issues, https://github.com/jlab-sensing/soil-power-sensor-firmware/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ents"
7
- version = "2.3.3"
7
+ version = "2.3.4"
8
8
  authors = [
9
9
  { name="John Madden", email="jmadden173@pm.me" },
10
10
  ]
@@ -0,0 +1,119 @@
1
+ import requests
2
+ from datetime import datetime, timezone
3
+ import pandas as pd
4
+ from tabulate import tabulate
5
+
6
+
7
+ class DirtVizClient:
8
+ BASE_URL = "https://dirtviz.jlab.ucsc.edu/api/"
9
+
10
+ def __init__(self):
11
+ self.session = requests.Session()
12
+
13
+ def cell_from_name(self, name, start=None, end=None):
14
+ """Get power data for a specific cell"""
15
+
16
+ def get_power_data(self, cell_id, start=None, end=None):
17
+ """Get power data for a specific cell"""
18
+ endpoint = f"power/{cell_id}"
19
+ params = {}
20
+
21
+ if start and end:
22
+ params = {
23
+ "startTime": start.strftime("%a, %d %b %Y %H:%M:%S GMT"),
24
+ "endTime": end.strftime("%a, %d %b %Y %H:%M:%S GMT"),
25
+ }
26
+
27
+ response = self.session.get(f"{self.BASE_URL}{endpoint}", params=params)
28
+ response.raise_for_status()
29
+ return response.json()
30
+
31
+
32
+ def format_data_display(df, cell_id):
33
+ """Format the data output with timestamp as first column"""
34
+
35
+ # Ensure timestamp exists and is first column
36
+ if "timestamp" in df.columns:
37
+ cols = ["timestamp"] + [col for col in df.columns if col != "timestamp"]
38
+ df = df[cols]
39
+
40
+ # Format timestamp nicely
41
+ df["timestamp"] = pd.to_datetime(df["timestamp"])
42
+ df["timestamp"] = df["timestamp"].dt.strftime("%m-%d-%Y %H:%M:%S")
43
+
44
+ # Calculate statistics
45
+ stats = {
46
+ "Cell ID": cell_id,
47
+ "Time Range": (
48
+ f"{df['timestamp'].iloc[0]} to {df['timestamp'].iloc[-1]}"
49
+ if len(df) > 0
50
+ else "N/A"
51
+ ),
52
+ "Data Points": len(df),
53
+ "Avg Voltage (mV)": f"{df['v'].mean():.2f}" if "v" in df.columns else "N/A",
54
+ "Max Voltage (mV)": f"{df['v'].max():.2f}" if "v" in df.columns else "N/A",
55
+ "Avg Current (µA)": f"{df['i'].mean():.2f}" if "i" in df.columns else "N/A",
56
+ "Avg Power (µW)": f"{df['p'].mean():.2f}" if "p" in df.columns else "N/A",
57
+ }
58
+
59
+ column_rename = {
60
+ "timestamp": "Measurement Times",
61
+ "v": "Voltage (mV)",
62
+ "i": "Current (µA)",
63
+ "p": "Power (µW)",
64
+ }
65
+ # Apply renaming
66
+ df = df.rename(columns=column_rename)
67
+
68
+ # Display header
69
+ print("\n" + "=" * 60)
70
+ print(f"CELL {cell_id} POWER DATA SUMMARY".center(60))
71
+ for key, value in stats.items():
72
+ print(f"• {key:<20}: {value}") # Display the summary information
73
+ print("=" * 60 + "\n")
74
+
75
+ # Display sample data with timestamp first
76
+ if len(df) > 0:
77
+ print("DATA BY TIMESTAMPS:")
78
+ print(
79
+ tabulate(
80
+ df,
81
+ headers="keys",
82
+ tablefmt="grid", # Changed to grid for better column alignment
83
+ stralign="center", # Right-align numbers
84
+ showindex=False,
85
+ numalign="center",
86
+ )
87
+ )
88
+ else:
89
+ print("No data available to display")
90
+
91
+ print("\n" + "=" * 80)
92
+
93
+
94
+ if __name__ == "__main__":
95
+ client = DirtVizClient()
96
+
97
+ try:
98
+ cell_id = 893 # Figure out how to do by name on DirtViz
99
+ start = datetime(2025, 8, 12, tzinfo=timezone.utc)
100
+ end = datetime.now(timezone.utc)
101
+
102
+ print(f"\nFetching power data for cell {cell_id}...")
103
+ data = client.get_power_data(cell_id, start, end)
104
+
105
+ if data:
106
+ df = pd.DataFrame(data)
107
+ format_data_display(df, cell_id)
108
+
109
+ # Save to CSV with timestamp first
110
+ # df.to_csv(f"cell_{cell_id}_power_data.csv", index=False)
111
+ # print(f"Data saved to cell_{cell_id}_power_data.csv")
112
+ else:
113
+ print("No data received for the specified time range.")
114
+
115
+ except requests.exceptions.HTTPError as e:
116
+ print(f"\nHTTP Error: {e}")
117
+ print(f"Response: {e.response.text[:500]}...")
118
+ except Exception as e:
119
+ print(f"\n⚠️ Unexpected error: {str(e)}")
@@ -0,0 +1,90 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: soil_power_sensor.proto
5
+ # Protobuf Python Version: 6.31.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
+ 31,
16
+ 1,
17
+ '',
18
+ 'soil_power_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\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')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'soil_power_sensor_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
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
38
+ _globals['_MEASUREMENTMETADATA']._serialized_start=27
39
+ _globals['_MEASUREMENTMETADATA']._serialized_end=96
40
+ _globals['_POWERMEASUREMENT']._serialized_start=98
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
90
+ # @@protoc_insertion_point(module_scope)
@@ -1,72 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # NO CHECKED-IN PROTOBUF GENCODE
4
- # source: soil_power_sensor.proto
5
- # Protobuf Python Version: 6.31.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
- 31,
16
- 1,
17
- '',
18
- 'soil_power_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\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\"\x84\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\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\"\x8b\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\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\"\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')
28
-
29
- _globals = globals()
30
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'soil_power_sensor_pb2', _globals)
32
- if not _descriptor._USE_C_DESCRIPTORS:
33
- DESCRIPTOR._loaded_options = None
34
- _globals['_ENABLEDSENSOR']._serialized_start=1851
35
- _globals['_ENABLEDSENSOR']._serialized_end=1930
36
- _globals['_UPLOADMETHOD']._serialized_start=1932
37
- _globals['_UPLOADMETHOD']._serialized_end=1966
38
- _globals['_MEASUREMENTMETADATA']._serialized_start=27
39
- _globals['_MEASUREMENTMETADATA']._serialized_end=96
40
- _globals['_POWERMEASUREMENT']._serialized_start=98
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['_MEASUREMENT']._serialized_start=431
51
- _globals['_MEASUREMENT']._serialized_end=691
52
- _globals['_RESPONSE']._serialized_start=693
53
- _globals['_RESPONSE']._serialized_end=781
54
- _globals['_RESPONSE_RESPONSETYPE']._serialized_start=743
55
- _globals['_RESPONSE_RESPONSETYPE']._serialized_end=781
56
- _globals['_ESP32COMMAND']._serialized_start=784
57
- _globals['_ESP32COMMAND']._serialized_end=923
58
- _globals['_PAGECOMMAND']._serialized_start=926
59
- _globals['_PAGECOMMAND']._serialized_end=1108
60
- _globals['_PAGECOMMAND_REQUESTTYPE']._serialized_start=1053
61
- _globals['_PAGECOMMAND_REQUESTTYPE']._serialized_end=1108
62
- _globals['_TESTCOMMAND']._serialized_start=1111
63
- _globals['_TESTCOMMAND']._serialized_end=1241
64
- _globals['_TESTCOMMAND_CHANGESTATE']._serialized_start=1181
65
- _globals['_TESTCOMMAND_CHANGESTATE']._serialized_end=1241
66
- _globals['_WIFICOMMAND']._serialized_start=1244
67
- _globals['_WIFICOMMAND']._serialized_end=1498
68
- _globals['_WIFICOMMAND_TYPE']._serialized_start=1387
69
- _globals['_WIFICOMMAND_TYPE']._serialized_end=1498
70
- _globals['_USERCONFIGURATION']._serialized_start=1501
71
- _globals['_USERCONFIGURATION']._serialized_end=1849
72
- # @@protoc_insertion_point(module_scope)
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