diff --git a/Drone/client.py b/Drone/client.py
index aed8dc4..f557081 100644
--- a/Drone/client.py
+++ b/Drone/client.py
@@ -1,3 +1,4 @@
+import os
import time
import errno
import random
@@ -74,6 +75,7 @@ class Client(object):
def rewrite_config(self):
with open(self.config_path, 'w') as file:
self.config.write(file)
+ os.system("chown -R pi:pi /home/pi/clever-show")
def write_config(self, reload_config=True, *config_options):
for config_option in config_options:
diff --git a/Drone/client_config.ini b/Drone/client_config.ini
index 45585ce..f121d9b 100644
--- a/Drone/client_config.ini
+++ b/Drone/client_config.ini
@@ -1,3 +1,4 @@
+
[SERVER]
port = 25000
broadcast_port = 8181
@@ -48,5 +49,4 @@ use_leds = False
led_pin = 21
x0 = 0
y0 = 0
-z0 = 0
-
+z0 = 0
\ No newline at end of file
diff --git a/Drone/copter_client.py b/Drone/copter_client.py
index 19e7220..cd2f113 100644
--- a/Drone/copter_client.py
+++ b/Drone/copter_client.py
@@ -376,10 +376,18 @@ def _command_reset_z(*args, **kwargs):
@messaging.message_callback("update_repo")
def _command_update_repo(*args, **kwargs):
- os.system("git reset --hard origin/master")
+ os.system("mv /home/pi/clever-show/Drone/client_config.ini /home/pi/clever-show/Drone/client_config_tmp.ini")
+ os.system("git reset --hard HEAD")
+ os.system("git checkout master")
os.system("git fetch")
- os.system("git pull")
- os.system("chown -R pi:pi ~/CleverSwarm")
+ os.system("git pull --rebase")
+ os.system("mv /home/pi/clever-show/Drone/client_config_tmp.ini /home/pi/clever-show/Drone/client_config.ini")
+ os.system("chown -R pi:pi /home/pi/clever-show")
+
+@messaging.message_callback("reboot_all")
+def _command_reboot_all(*args, **kwargs):
+ reboot_fcu()
+ execute_command("reboot")
@messaging.message_callback("reboot_fcu")
def _command_reboot(*args, **kwargs):
diff --git a/Server/server.py b/Server/server.py
index 311b924..b612711 100644
--- a/Server/server.py
+++ b/Server/server.py
@@ -314,7 +314,10 @@ class Client(messaging.ConnectionManager):
if self.connected:
self.close()
if self.clients:
- self.clients.pop(self.addr[0])
+ try:
+ self.clients.pop(self.addr[0])
+ except Exception as e:
+ logging.error(e)
logging.info("Client {} successfully removed!".format(self.copter_id))
@requires_connect
diff --git a/Server/server_gui.py b/Server/server_gui.py
index 94f9018..dcc652c 100644
--- a/Server/server_gui.py
+++ b/Server/server_gui.py
@@ -245,6 +245,8 @@ class Ui_MainWindow(object):
self.action_remove_row.setObjectName("action_remove_row")
self.action_send_calibrations = QtWidgets.QAction(MainWindow)
self.action_send_calibrations.setObjectName("action_send_calibrations")
+ self.action_reboot_all = QtWidgets.QAction(MainWindow)
+ self.action_reboot_all.setObjectName("action_reboot_all")
self.menuDeveloper_mode.addAction(self.action_send_any_file)
self.menuDeveloper_mode.addAction(self.actionSend_any_command)
self.menuOptions.addAction(self.action_send_animations)
@@ -261,11 +263,12 @@ class Ui_MainWindow(object):
self.menuDeveloper_mode_2.addAction(self.action_restart_clever)
self.menuDeveloper_mode_2.addAction(self.action_restart_clever_show)
self.menuDeveloper_mode_2.addAction(self.action_update_client_repo)
+ self.menuDeveloper_mode_2.addAction(self.action_reboot_all)
self.menuDrone.addAction(self.action_set_z_offset_to_ground)
self.menuDrone.addAction(self.action_reset_z_offset)
+ self.menuDrone.addAction(self.action_remove_row)
self.menuDrone.addSeparator()
self.menuDrone.addAction(self.menuDeveloper_mode_2.menuAction())
- self.menuDrone.addAction(self.action_remove_row)
self.menuMusic.addAction(self.action_select_music_file)
self.menuMusic.addAction(self.action_play_music)
self.menuMusic.addAction(self.action_stop_music)
@@ -331,3 +334,4 @@ class Ui_MainWindow(object):
self.action_stop_music.setText(_translate("MainWindow", "Stop music"))
self.action_remove_row.setText(_translate("MainWindow", "Remove from table"))
self.action_send_calibrations.setText(_translate("MainWindow", "Send camera calibrations"))
+ self.action_reboot_all.setText(_translate("MainWindow", "Reboot all"))
diff --git a/Server/server_gui.ui b/Server/server_gui.ui
index 60e9d8e..36569a1 100644
--- a/Server/server_gui.ui
+++ b/Server/server_gui.ui
@@ -418,12 +418,13 @@
+
+
-
start_delay_spin
diff --git a/Server/server_qt.py b/Server/server_qt.py
index d08f822..d690d82 100644
--- a/Server/server_qt.py
+++ b/Server/server_qt.py
@@ -152,6 +152,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.action_restart_clever.triggered.connect(self.restart_clever)
self.ui.action_restart_clever_show.triggered.connect(self.restart_clever_show)
self.ui.action_update_client_repo.triggered.connect(self.update_client_repo)
+ self.ui.action_reboot_all.triggered.connect(self.reboot_all_on_selected)
self.ui.action_set_start_to_current_position.triggered.connect(self.update_start_to_current_position)
self.ui.action_reset_start.triggered.connect(self.reset_start)
self.ui.action_set_z_offset_to_ground.triggered.connect(self.set_z_offset_to_ground)
@@ -439,7 +440,12 @@ class MainWindow(QtWidgets.QMainWindow):
@pyqtSlot()
def update_client_repo(self):
for copter in self.model.user_selected():
- copter.client.send_message("update_repo")
+ copter.client.send_message("update_repo")
+
+ @pyqtSlot()
+ def reboot_all_on_selected(self):
+ for copter in self.model.user_selected():
+ copter.client.send_message("reboot_all")
@pyqtSlot()
def update_start_to_current_position(self):
diff --git a/messaging_lib.py b/messaging_lib.py
index 2e9a9b8..357e7f1 100644
--- a/messaging_lib.py
+++ b/messaging_lib.py
@@ -1,4 +1,5 @@
import io
+import os
import sys
import json
import socket
@@ -382,6 +383,7 @@ class ConnectionManager(object):
logger.error("File {} can not be written due error: {}".format(filepath, error))
else:
logger.info("File {} successfully received ".format(filepath))
+ os.system("chown -R pi:pi /home/pi/clever-show")
def write(self):
with self._send_lock: