Skip to content

Commit ff6f020

Browse files
Juliana MashonJuliana Mashon
Juliana Mashon
authored and
Juliana Mashon
committed
Added verbosity configuration as state function
1 parent 636234d commit ff6f020

File tree

3 files changed

+21
-37
lines changed

3 files changed

+21
-37
lines changed

functions/basic_commands.py

+5-30
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,7 @@ def __init__(self, state):
1919
def wait(self, duration):
2020
"""Pauses execution for a certain number of milliseconds."""
2121

22-
verbosity_level = {
23-
1: lambda: print("`wait` called"),
24-
2: lambda: print(f"Waiting for {duration} milliseconds...")
25-
}
26-
27-
verbosity_level[self.broker.state.verbosity]()
22+
self.broker.state.print_status("wait()", description=f"Waiting for {duration} milliseconds...")
2823

2924
wait_message = {
3025
"kind": "rpc_request",
@@ -46,12 +41,7 @@ def wait(self, duration):
4641
def e_stop(self):
4742
"""Emergency locks (E-stops) the Farmduino microcontroller."""
4843

49-
verbosity_level = {
50-
1: lambda: print("`e_stop` called"),
51-
2: lambda: print(f"Triggered device emergency stop at: {datetime.now()}")
52-
}
53-
54-
verbosity_level[self.broker.state.verbosity]()
44+
self.broker.state.print_status("e_stop()", description=f"Triggered device emergency stop at: {datetime.now()}")
5545

5646
stop_message = {
5747
"kind": "rpc_request",
@@ -71,12 +61,7 @@ def e_stop(self):
7161
def unlock(self):
7262
"""Unlocks a locked (E-stopped) device."""
7363

74-
verbosity_level = {
75-
1: lambda: print("`unlock` called"),
76-
2: lambda: print(f"Triggered device unlock at: {datetime.now()}")
77-
}
78-
79-
verbosity_level[self.broker.state.verbosity]()
64+
self.broker.state.print_status("unlock()", description=f"Triggered device unlock at: {datetime.now()}")
8065

8166
unlock_message = {
8267
"kind": "rpc_request",
@@ -96,12 +81,7 @@ def unlock(self):
9681
def reboot(self):
9782
"""Reboots the FarmBot OS and reinitializes the device."""
9883

99-
verbosity_level = {
100-
1: lambda: print("`reboot` called"),
101-
2: lambda: print(f"Triggered device reboot at: {datetime.now()}")
102-
}
103-
104-
verbosity_level[self.broker.state.verbosity]()
84+
self.broker.state.print_status("reboot()", description=f"Triggered device reboot at: {datetime.now()}")
10585

10686
reboot_message = {
10787
**RPC_REQUEST,
@@ -119,12 +99,7 @@ def reboot(self):
11999
def shutdown(self):
120100
"""Shuts down the FarmBot OS and turns the device off."""
121101

122-
verbosity_level = {
123-
1: lambda: print("`shutdown` called"),
124-
2: lambda: print(f"Triggered device shutdown at: {datetime.now()}")
125-
}
126-
127-
verbosity_level[self.broker.state.verbosity]()
102+
self.broker.state.print_status("shutdown()", description=f"Triggered device shutdown at: {datetime.now()}")
128103

129104
shutdown_message = {
130105
**RPC_REQUEST,

functions/information.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,7 @@ def get_info(self, endpoint, id=None):
2727

2828
endpoint_data = self.auth.request('GET', endpoint, id)
2929

30-
verbosity_level = {
31-
1: lambda: print("`get_info` called"),
32-
2: lambda: print(json.dumps(endpoint_data, indent=4))
33-
}
34-
35-
verbosity_level[self.auth.state.verbosity]()
30+
self.broker.state.print_status("get_info()", endpoint_json=endpoint_data)
3631

3732
return endpoint_data
3833

@@ -44,7 +39,11 @@ def set_info(self, endpoint, field, value, id=None):
4439
}
4540

4641
self.auth.request('PATCH', endpoint, id, new_value)
47-
return self.get_info(endpoint, id)
42+
endpoint_data = self.get_info(endpoint, id)
43+
44+
self.broker.state.print_status("set_info()", endpoint_json=endpoint_data)
45+
46+
return endpoint_data
4847

4948
def safe_z(self):
5049
"""Returns the highest safe point along the z-axis."""

main.py

+10
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ def __init__(self):
1111
self.last_message = None
1212
self.verbosity = 2
1313

14+
def print_status(self, function, endpoint_json=None, description=None):
15+
"""Handle changes to output based on user-defined verbosity."""
16+
17+
if self.verbosity >= 1:
18+
return print(f"`{function}` called")
19+
if self.verbosity >= 2 and endpoint_json:
20+
return print(json.dumps(endpoint_json, indent=4))
21+
if self.verbosity >= 2 and description:
22+
return print(description)
23+
1424
class Farmbot():
1525
def __init__(self):
1626
self.state = State()

0 commit comments

Comments
 (0)