|
|
|
|
@ -25,9 +25,9 @@ class WaveRoverNode(Node):
|
|
|
|
|
self._serial_port = self.get_parameter('serial_port').value
|
|
|
|
|
self._baudrate = self.get_parameter('baudrate').value
|
|
|
|
|
|
|
|
|
|
fan_pin = self._node.get_parameter('fan_pin').value
|
|
|
|
|
fan_pin = self.get_parameter('fan_pin').value
|
|
|
|
|
self._gpio_controller = GPIOController(fan_pin)
|
|
|
|
|
self._fan_time = self._node.get_parameter('fan_time').value
|
|
|
|
|
self._fan_time = self.get_parameter('fan_time').value
|
|
|
|
|
self._fe_burst_timer = None
|
|
|
|
|
|
|
|
|
|
wheel_max = 0.5 # popugais
|
|
|
|
|
@ -48,9 +48,9 @@ class WaveRoverNode(Node):
|
|
|
|
|
port=self._serial_port, baudrate=self._baudrate, timeout=1.0
|
|
|
|
|
)
|
|
|
|
|
time.sleep(0.5)
|
|
|
|
|
self._node.get_logger().info(f'Подключено к {self._serial_port}')
|
|
|
|
|
self.get_logger().info(f'Подключено к {self._serial_port}')
|
|
|
|
|
except SerialException as e:
|
|
|
|
|
self._node.get_logger().error(f'Ошибка serial: {e}')
|
|
|
|
|
self.get_logger().error(f'Ошибка serial: {e}')
|
|
|
|
|
self._serial_conn = None
|
|
|
|
|
|
|
|
|
|
def _send_json_command(self, command: dict):
|
|
|
|
|
@ -60,28 +60,28 @@ class WaveRoverNode(Node):
|
|
|
|
|
try:
|
|
|
|
|
json_str = json.dumps(command)
|
|
|
|
|
self._serial_conn.write(json_str.encode() + b'\n')
|
|
|
|
|
self._node.get_logger().debug(f'Отправлено: {json_str}')
|
|
|
|
|
self.get_logger().debug(f'Отправлено: {json_str}')
|
|
|
|
|
except SerialException as e:
|
|
|
|
|
self._node.get_logger().error(f'Ошибка отправки: {e}')
|
|
|
|
|
self.get_logger().error(f'Ошибка отправки: {e}')
|
|
|
|
|
self._serial_conn.close()
|
|
|
|
|
|
|
|
|
|
def fe_burst_cb(self, req, res):
|
|
|
|
|
if self._fe_burst_timer is None:
|
|
|
|
|
self._fe_burst_timer = self._node.create_timer(self._fan_time, self._fe_burst_timer_cb)
|
|
|
|
|
self._fe_burst_timer = self.create_timer(self._fan_time, self._fe_burst_timer_cb)
|
|
|
|
|
self._gpio_controller.enable()
|
|
|
|
|
msg = "Fire extingusher burst is performing"
|
|
|
|
|
|
|
|
|
|
res.success = True
|
|
|
|
|
self._node.get_logger().info(msg)
|
|
|
|
|
self.get_logger().info(msg)
|
|
|
|
|
else:
|
|
|
|
|
msg = "Fire extingusher burst is already performing"
|
|
|
|
|
self._node.get_logger().error(msg)
|
|
|
|
|
self.get_logger().error(msg)
|
|
|
|
|
res.success = False
|
|
|
|
|
res.message = msg
|
|
|
|
|
return res
|
|
|
|
|
|
|
|
|
|
def _fe_burst_timer_cb(self):
|
|
|
|
|
self._node.destroy_timer(self._fe_burst_timer)
|
|
|
|
|
self.destroy_timer(self._fe_burst_timer)
|
|
|
|
|
self._fe_burst_timer = None
|
|
|
|
|
self._gpio_controller.disable()
|
|
|
|
|
|
|
|
|
|
|