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.
- ents/demo/demoPullRequests.py +119 -0
- ents/proto/soil_power_sensor_pb2.py +45 -27
- {ents-2.3.3.dist-info → ents-2.3.4.dist-info}/METADATA +1 -1
- {ents-2.3.3.dist-info → ents-2.3.4.dist-info}/RECORD +7 -6
- {ents-2.3.3.dist-info → ents-2.3.4.dist-info}/WHEEL +0 -0
- {ents-2.3.3.dist-info → ents-2.3.4.dist-info}/entry_points.txt +0 -0
- {ents-2.3.3.dist-info → ents-2.3.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -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\"\
|
|
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=
|
|
35
|
-
_globals['_ENABLEDSENSOR']._serialized_end=
|
|
36
|
-
_globals['_UPLOADMETHOD']._serialized_start=
|
|
37
|
-
_globals['_UPLOADMETHOD']._serialized_end=
|
|
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['
|
|
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['
|
|
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
|
+
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=
|
|
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.
|
|
22
|
-
ents-2.3.
|
|
23
|
-
ents-2.3.
|
|
24
|
-
ents-2.3.
|
|
25
|
-
ents-2.3.
|
|
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
|
|
File without changes
|
|
File without changes
|