stepper: reduce method size
This commit is contained in:
parent
12712c241e
commit
98c51828e0
|
@ -254,6 +254,92 @@ class StepperProcess(multiprocessing.Process):
|
||||||
|
|
||||||
logger.info(f"Stepper initialisation is over")
|
logger.info(f"Stepper initialisation is over")
|
||||||
|
|
||||||
|
def __message_pump(self, last_message):
|
||||||
|
logger.debug("We have received a pumping command")
|
||||||
|
if last_message["action"] == "stop":
|
||||||
|
logger.debug("We have received a stop pump command")
|
||||||
|
self.pump_stepper.shutdown()
|
||||||
|
|
||||||
|
# Print status
|
||||||
|
logger.info("The pump has been interrupted")
|
||||||
|
|
||||||
|
# Publish the status "Interrupted" to via MQTT to Node-RED
|
||||||
|
self.actuator_client.client.publish(
|
||||||
|
"status/pump", '{"status":"Interrupted"}'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set the LEDs as Green
|
||||||
|
planktoscope.light.setRGB(0, 255, 0)
|
||||||
|
|
||||||
|
elif last_message["action"] == "move":
|
||||||
|
logger.debug("We have received a move pump command")
|
||||||
|
# Set the LEDs as Blue
|
||||||
|
planktoscope.light.setRGB(0, 0, 255)
|
||||||
|
|
||||||
|
if (
|
||||||
|
"direction" not in last_message
|
||||||
|
or "volume" not in last_message
|
||||||
|
or "flowrate" not in last_message
|
||||||
|
):
|
||||||
|
logger.error(
|
||||||
|
f"The received message has the wrong argument {last_message}"
|
||||||
|
)
|
||||||
|
self.actuator_client.client.publish("status/pump", '{"status":"Error"}')
|
||||||
|
return
|
||||||
|
# Get direction from the different received arguments
|
||||||
|
direction = last_message["direction"]
|
||||||
|
# Get delay (in between steps) from the different received arguments
|
||||||
|
volume = float(last_message["volume"])
|
||||||
|
# Get number of steps from the different received arguments
|
||||||
|
flowrate = float(last_message["flowrate"])
|
||||||
|
|
||||||
|
# Print status
|
||||||
|
logger.info("The pump is started.")
|
||||||
|
self.pump(direction, volume, flowrate)
|
||||||
|
else:
|
||||||
|
logger.warning(f"The received message was not understood {last_message}")
|
||||||
|
|
||||||
|
def __message_focus(self, last_message):
|
||||||
|
logger.debug("We have received a focusing request")
|
||||||
|
# If a new received command is "focus" but args contains "stop" we stop!
|
||||||
|
if last_message["action"] == "stop":
|
||||||
|
logger.debug("We have received a stop focus command")
|
||||||
|
self.focus_stepper.shutdown()
|
||||||
|
|
||||||
|
# Print status
|
||||||
|
logger.info("The focus has been interrupted")
|
||||||
|
|
||||||
|
# Publish the status "Interrupted" to via MQTT to Node-RED
|
||||||
|
self.actuator_client.client.publish(
|
||||||
|
"status/focus", '{"status":"Interrupted"}'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Set the LEDs as Green
|
||||||
|
planktoscope.light.setRGB(0, 255, 0)
|
||||||
|
|
||||||
|
elif last_message["action"] == "move":
|
||||||
|
logger.debug("We have received a move focus command")
|
||||||
|
# Set the LEDs as Yellow
|
||||||
|
planktoscope.light.setRGB(255, 255, 0)
|
||||||
|
|
||||||
|
if "direction" not in last_message or "distance" not in last_message:
|
||||||
|
logger.error(
|
||||||
|
f"The received message has the wrong argument {last_message}"
|
||||||
|
)
|
||||||
|
self.actuator_client.client.publish(
|
||||||
|
"status/focus", '{"status":"Error"}'
|
||||||
|
)
|
||||||
|
# Get direction from the different received arguments
|
||||||
|
direction = last_message["direction"]
|
||||||
|
# Get number of steps from the different received arguments
|
||||||
|
distance = float(last_message["distance"])
|
||||||
|
|
||||||
|
# Print status
|
||||||
|
logger.info("The focus movement is started.")
|
||||||
|
self.focus(direction, distance)
|
||||||
|
else:
|
||||||
|
logger.warning(f"The received message was not understood {last_message}")
|
||||||
|
|
||||||
def treat_command(self):
|
def treat_command(self):
|
||||||
command = ""
|
command = ""
|
||||||
if self.actuator_client.new_message_received():
|
if self.actuator_client.new_message_received():
|
||||||
|
@ -266,100 +352,11 @@ class StepperProcess(multiprocessing.Process):
|
||||||
|
|
||||||
# If the command is "pump"
|
# If the command is "pump"
|
||||||
if command == "pump":
|
if command == "pump":
|
||||||
logger.debug("We have received a pumping command")
|
self.__message_pump(last_message)
|
||||||
if last_message["action"] == "stop":
|
|
||||||
logger.debug("We have received a stop pump command")
|
|
||||||
self.pump_stepper.shutdown()
|
|
||||||
|
|
||||||
# Print status
|
|
||||||
logger.info("The pump has been interrupted")
|
|
||||||
|
|
||||||
# Publish the status "Interrupted" to via MQTT to Node-RED
|
|
||||||
self.actuator_client.client.publish(
|
|
||||||
"status/pump", '{"status":"Interrupted"}'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Set the LEDs as Green
|
|
||||||
planktoscope.light.setRGB(0, 255, 0)
|
|
||||||
|
|
||||||
elif last_message["action"] == "move":
|
|
||||||
logger.debug("We have received a move pump command")
|
|
||||||
# Set the LEDs as Blue
|
|
||||||
planktoscope.light.setRGB(0, 0, 255)
|
|
||||||
|
|
||||||
if (
|
|
||||||
"direction" not in last_message
|
|
||||||
or "volume" not in last_message
|
|
||||||
or "flowrate" not in last_message
|
|
||||||
):
|
|
||||||
logger.error(
|
|
||||||
f"The received message has the wrong argument {last_message}"
|
|
||||||
)
|
|
||||||
self.actuator_client.client.publish(
|
|
||||||
"status/pump", '{"status":"Error"}'
|
|
||||||
)
|
|
||||||
return
|
|
||||||
# Get direction from the different received arguments
|
|
||||||
direction = last_message["direction"]
|
|
||||||
# Get delay (in between steps) from the different received arguments
|
|
||||||
volume = float(last_message["volume"])
|
|
||||||
# Get number of steps from the different received arguments
|
|
||||||
flowrate = float(last_message["flowrate"])
|
|
||||||
|
|
||||||
# Print status
|
|
||||||
logger.info("The pump is started.")
|
|
||||||
self.pump(direction, volume, flowrate)
|
|
||||||
else:
|
|
||||||
logger.warning(
|
|
||||||
f"The received message was not understood {last_message}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# If the command is "focus"
|
# If the command is "focus"
|
||||||
elif command == "focus":
|
elif command == "focus":
|
||||||
logger.debug("We have received a focusing request")
|
self.__message_focus(last_message)
|
||||||
# If a new received command is "focus" but args contains "stop" we stop!
|
|
||||||
if last_message["action"] == "stop":
|
|
||||||
logger.debug("We have received a stop focus command")
|
|
||||||
self.focus_stepper.shutdown()
|
|
||||||
|
|
||||||
# Print status
|
|
||||||
logger.info("The focus has been interrupted")
|
|
||||||
|
|
||||||
# Publish the status "Interrupted" to via MQTT to Node-RED
|
|
||||||
self.actuator_client.client.publish(
|
|
||||||
"status/focus", '{"status":"Interrupted"}'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Set the LEDs as Green
|
|
||||||
planktoscope.light.setRGB(0, 255, 0)
|
|
||||||
|
|
||||||
elif last_message["action"] == "move":
|
|
||||||
logger.debug("We have received a move focus command")
|
|
||||||
# Set the LEDs as Yellow
|
|
||||||
planktoscope.light.setRGB(255, 255, 0)
|
|
||||||
|
|
||||||
if (
|
|
||||||
"direction" not in last_message
|
|
||||||
or "distance" not in last_message
|
|
||||||
):
|
|
||||||
logger.error(
|
|
||||||
f"The received message has the wrong argument {last_message}"
|
|
||||||
)
|
|
||||||
self.actuator_client.client.publish(
|
|
||||||
"status/focus", '{"status":"Error"}'
|
|
||||||
)
|
|
||||||
# Get direction from the different received arguments
|
|
||||||
direction = last_message["direction"]
|
|
||||||
# Get number of steps from the different received arguments
|
|
||||||
distance = float(last_message["distance"])
|
|
||||||
|
|
||||||
# Print status
|
|
||||||
logger.info("The focus movement is started.")
|
|
||||||
self.focus(direction, distance)
|
|
||||||
else:
|
|
||||||
logger.warning(
|
|
||||||
f"The received message was not understood {last_message}"
|
|
||||||
)
|
|
||||||
elif command != "":
|
elif command != "":
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f"We did not understand the received request {command} - {last_message}"
|
f"We did not understand the received request {command} - {last_message}"
|
||||||
|
@ -518,7 +515,6 @@ class StepperProcess(multiprocessing.Process):
|
||||||
"status/focus",
|
"status/focus",
|
||||||
'{"status":"Done"}',
|
'{"status":"Done"}',
|
||||||
)
|
)
|
||||||
time.sleep(0)
|
|
||||||
logger.info("Shutting down the stepper process")
|
logger.info("Shutting down the stepper process")
|
||||||
self.actuator_client.client.publish("status/pump", '{"status":"Dead"}')
|
self.actuator_client.client.publish("status/pump", '{"status":"Dead"}')
|
||||||
self.actuator_client.client.publish("status/focus", '{"status":"Dead"}')
|
self.actuator_client.client.publish("status/focus", '{"status":"Dead"}')
|
||||||
|
|
Loading…
Reference in a new issue