ents 2.3.3__py3-none-any.whl → 2.3.4__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.
@@ -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)}")
@@ -24,17 +24,17 @@ _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\"\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')
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
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=1851
35
- _globals['_ENABLEDSENSOR']._serialized_end=1930
36
- _globals['_UPLOADMETHOD']._serialized_start=1932
37
- _globals['_UPLOADMETHOD']._serialized_end=1966
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
38
  _globals['_MEASUREMENTMETADATA']._serialized_start=27
39
39
  _globals['_MEASUREMENTMETADATA']._serialized_end=96
40
40
  _globals['_POWERMEASUREMENT']._serialized_start=98
@@ -47,26 +47,44 @@ if not _descriptor._USE_C_DESCRIPTORS:
47
47
  _globals['_PHYTOS31MEASUREMENT']._serialized_end=350
48
48
  _globals['_BME280MEASUREMENT']._serialized_start=352
49
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
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
72
90
  # @@protoc_insertion_point(module_scope)
@@ -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
@@ -11,15 +11,16 @@ ents/config/README.md,sha256=SRtr5YuM64MSZQdy60F8Ib_AI2MR-MbbAdjS3jcjVD4,4447
11
11
  ents/config/__init__.py,sha256=3eyHUKg-ZPx82h2CGiNyzaaI7Y7koEOUX9pzrlnVcJw,51
12
12
  ents/config/adv_trace.py,sha256=hEDBNbVslJ2lJ-8tfJhPXxQMZN9Nylqv8RK42waRhsM,1290
13
13
  ents/config/user_config.py,sha256=SAudV12wyE-5Z0weZJQzBELRXR3-oevIgbrimUF2TmI,39198
14
+ ents/demo/demoPullRequests.py,sha256=YSTVa59puMtER8sjOppiMshUCDjdsIikXLNOM0U6zmU,3864
14
15
  ents/proto/__init__.py,sha256=5THafGlxirjEUATIXB2EVpdOY5APEjztzOAHlRGNG2c,720
15
16
  ents/proto/decode.py,sha256=_dn9Agv41YgUtMVHZ7l5-Y13ci3hnjyXrRPGKDIHzvo,2964
16
17
  ents/proto/encode.py,sha256=kPAD5-bL6zNEjh6z1n1FusdM9z5UretypxHHAiuGGA4,7753
17
18
  ents/proto/esp32.py,sha256=4QOHZNH1SqkJg4TLvJgrAbhdJg88ZNtqoMNLBcWUX2U,4657
18
- ents/proto/soil_power_sensor_pb2.py,sha256=dxIjcIF9XW9GRHWpkTIW0FAKq7a1Lf_usCfc8a20vYY,6846
19
+ ents/proto/soil_power_sensor_pb2.py,sha256=sNf-97udroXqmimooH0x1IWOTSm-4IoRsFzbyb9aLRg,9491
19
20
  ents/simulator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
21
  ents/simulator/node.py,sha256=vDdt_Q2BiEo1Z-aMZnm9_Y-aAtPU_lhcWW-xSDYR54c,4444
21
- ents-2.3.3.dist-info/METADATA,sha256=K2S8VdiVrPHPgXvoLEwPkjrI99rhY_pNOOG4LKYm__4,5258
22
- ents-2.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
- ents-2.3.3.dist-info/entry_points.txt,sha256=1U6ViZDTy4vv1jFp5RisBPC0NFqmtV3f18eUnWKX0Nk,95
24
- ents-2.3.3.dist-info/licenses/LICENSE,sha256=2WLObzfS99jXXcPS5INqnmDVZ1nlO8Rj8mzQn2xkn14,1086
25
- ents-2.3.3.dist-info/RECORD,,
22
+ ents-2.3.4.dist-info/METADATA,sha256=FMxd6PnezpUeq3ZBVty08iRL-CzgVo5YTugULlzxHZ4,5258
23
+ ents-2.3.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
24
+ ents-2.3.4.dist-info/entry_points.txt,sha256=1U6ViZDTy4vv1jFp5RisBPC0NFqmtV3f18eUnWKX0Nk,95
25
+ ents-2.3.4.dist-info/licenses/LICENSE,sha256=2WLObzfS99jXXcPS5INqnmDVZ1nlO8Rj8mzQn2xkn14,1086
26
+ ents-2.3.4.dist-info/RECORD,,
File without changes