Esempio n. 1
0
    def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)
        self.ui = Ui_MagnetometerCalibrationPanel()
        self.ui.setupUi(self)

        self._is_running = False
        self._amount_axis = 3
        self._axix_max = [0, 0, 0]
        self._axis_min = [0, 0, 0]

        self._axix_x = '0'
        self._axix_y = '1'
        self._axix_z = '2'

        self._is_connected = False

        self.ui.start.clicked.connect(self.start_magnetometer_calibration)
        self.ui.cancel.clicked.connect(self.cancel_magnetometer_calibration)

        vehicle_event_dispatcher.register(
            self._magnetometer_raw_data_updated,
            VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
        ui_event_dispatcher.register(
            self._connection_state_changed,
            UIEventDispatcher.CONNECTION_STATE_CHANGED_EVENT)
 def __init__(self, vehicle_model, protocol_handler):
     QtGui.QWidget.__init__(self)
     BasePanelController.__init__(self)
     
     self._vehicle_model = vehicle_model
     self._protocol_handler = protocol_handler
     
     self.ui = Ui_MagnetometerCalibrationPanel()
     self.ui.setupUi(self)
     
     self._is_running = False
     self._amount_axis = 3
     self._axix_max = [0, 0, 0] # x y z
     self._axis_min = [0, 0, 0] # x y z
     
     self._axix_x = '0'
     self._axix_y = '1'
     self._axix_z = '2'
     
     self._is_connected = False
     
     self.ui.start.clicked.connect(self.start_magnetometer_calibration)
     self.ui.cancel.clicked.connect(self.cancel_magnetometer_calibration)
     
     self._vehicle_model.register(self._magnetometer_raw_data_updated, VehicleModel.MAGNETOMETER_RAW_DATA_EVENT)
     self._vehicle_model.register(self._connection_state_changed, VehicleModel.CONNECTION_STATE_CHANGED_EVENT)
Esempio n. 3
0
    def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)
        self.ui = Ui_MagnetometerCalibrationPanel()
        self.ui.setupUi(self)

        self._min_mag_values = [0, 0, 0]
        self._max_mag_values = [0, 0, 0]

        self._axix_x = '0'
        self._axix_y = '1'
        self._axix_z = '2'

        self.ui.start_button.clicked.connect(self._start_button_pressed)
        self.ui.cancel_button.clicked.connect(self._cancel_button_pressed)

        vehicle_event_dispatcher.register(
            self._magnetometer_raw_data_updated,
            VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
        ui_event_dispatcher.register(self._protocol_handler_changed_event,
                                     UIEventDispatcher.PROTOCOL_HANDLER_EVENT)
 def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
     QtGui.QWidget.__init__(self)
     BasePanelController.__init__(self)
     self.ui = Ui_MagnetometerCalibrationPanel()
     self.ui.setupUi(self)
     
     self._min_mag_values = [0, 0, 0] 
     self._max_mag_values = [0, 0, 0] 
     
     self._axix_x = '0'
     self._axix_y = '1'
     self._axix_z = '2'
     
     self.ui.start_button.clicked.connect(self._start_button_pressed)
     self.ui.cancel_button.clicked.connect(self._cancel_button_pressed)
     
     vehicle_event_dispatcher.register(self._magnetometer_raw_data_updated, VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
     ui_event_dispatcher.register(self._protocol_handler_changed_event, UIEventDispatcher.PROTOCOL_HANDLER_EVENT)
 def __init__(self, vehicle_model, message_sender):
     QtGui.QWidget.__init__(self)
     BasePanelController.__init__(self)
     
     self.vehicle_model = vehicle_model
     self.message_sender = message_sender
     
     self.ui = Ui_MagnetometerCalibrationPanel()
     self.ui.setupUi(self)
     
     self.running = False
     self.amount_axis = 3
     self.axix_max = [0, 0, 0] # x y z
     self.axis_min = [0, 0, 0] # x y z
     
     self.axix_x = '0'
     self.axix_y = '1'
     self.axix_z = '2'
     
     self.ui.start.clicked.connect(self.start_magnetometer_calibration)
     self.ui.cancel.clicked.connect(self.cancel_magnetometer_calibration)
 def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
     QtGui.QWidget.__init__(self)
     BasePanelController.__init__(self)
     self.ui = Ui_MagnetometerCalibrationPanel()
     self.ui.setupUi(self)
     
     self._is_running = False
     self._amount_axis = 3
     self._axix_max = [0, 0, 0] 
     self._axis_min = [0, 0, 0] 
     
     self._axix_x = '0'
     self._axix_y = '1'
     self._axix_z = '2'
     
     self._is_connected = False
     
     self.ui.start.clicked.connect(self.start_magnetometer_calibration)
     self.ui.cancel.clicked.connect(self.cancel_magnetometer_calibration)
     
     vehicle_event_dispatcher.register(self._magnetometer_raw_data_updated, VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
     ui_event_dispatcher.register(self._connection_state_changed, UIEventDispatcher.CONNECTION_STATE_CHANGED_EVENT)
class MagnetometerCalibrationController(QtGui.QWidget, BasePanelController):

    def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)
        self.ui = Ui_MagnetometerCalibrationPanel()
        self.ui.setupUi(self)
        
        self._min_mag_values = [0, 0, 0] 
        self._max_mag_values = [0, 0, 0] 
        
        self._axix_x = '0'
        self._axix_y = '1'
        self._axix_z = '2'
        
        self.ui.start_button.clicked.connect(self._start_button_pressed)
        self.ui.cancel_button.clicked.connect(self._cancel_button_pressed)
        
        vehicle_event_dispatcher.register(self._magnetometer_raw_data_updated, VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
        ui_event_dispatcher.register(self._protocol_handler_changed_event, UIEventDispatcher.PROTOCOL_HANDLER_EVENT)
        

    def start(self):
        self._reset_progress_bars()

    def stop(self):
        self._cancel_button_pressed()
        
    def _protocol_handler_changed_event(self, event, protocol_handler):
        self._protocol_handler = protocol_handler;
        
    def _start_button_pressed(self):
        if self.ui.start_button.text() == 'Start':    
            self._protocol_handler.subscribe_raw_magnetometer()
            self.ui.cancel_button.setEnabled(True)
            self.ui.start_button.setText("Finish")
            self._min_mag_values = [0, 0, 0]
            self._max_mag_values = [0, 0, 0]
        else:
            self._protocol_handler.unsubscribe_command()
            self.ui.start_button.setText('Start')
            self._reset_progress_bars()
            self._send_mag_cal_values()
                
    def _cancel_button_pressed(self):
        self._protocol_handler.unsubscribe_command()
        self.ui.cancel_button.setEnabled(False)
        self.ui.start_button.setText("Start")
        self._reset_progress_bars()

    def _magnetometer_raw_data_updated(self, event, vector):
        self.ui.x_axis_progress_bar.setValue(int(vector.get_x()))
        self.ui.label_x.setText(vector.get_x())
        self._min_mag_values[0] = min(self._min_mag_values[0],vector.get_x())
        self._max_mag_values[0] = max(self._max_mag_values[0],vector.get_x())
        self.ui.y_axis_progress_bar.setValue(int(vector.get_y()))
        self.ui.label_y.setText(vector.get_y())
        self._min_mag_values[1] = min(self._min_mag_values[1],vector.get_y())
        self._max_mag_values[1] = max(self._max_mag_values[1],vector.get_y())
        self.ui.z_axis_progress_bar.setValue(int(vector.get_z()))
        self.ui.label_z.setText(vector.get_z())
        self._min_mag_values[2] = min(self._min_mag_values[2],vector.get_z())
        self._max_mag_values[2] = max(self._max_mag_values[2],vector.get_z())
        
    def _reset_progress_bars(self):
        self.ui.x_axis_progress_bar.setValue(0)
        self.ui.label_x.setText(str(0))
        self.ui.y_axis_progress_bar.setValue(0)
        self.ui.label_y.setText(str(0))
        self.ui.z_axis_progress_bar.setValue(0)
        self.ui.label_z.setText(str(0))
        
    def _send_mag_cal_values(self):
        self._protocol_handler.send_mag_calibration_values(self._min_mag_values,self._max_mag_values)
Esempio n. 8
0
class MagnetometerCalibrationController(QtGui.QWidget, BasePanelController):
    def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)
        self.ui = Ui_MagnetometerCalibrationPanel()
        self.ui.setupUi(self)

        self._is_running = False
        self._amount_axis = 3
        self._axix_max = [0, 0, 0]
        self._axis_min = [0, 0, 0]

        self._axix_x = '0'
        self._axix_y = '1'
        self._axix_z = '2'

        self._is_connected = False

        self.ui.start.clicked.connect(self.start_magnetometer_calibration)
        self.ui.cancel.clicked.connect(self.cancel_magnetometer_calibration)

        vehicle_event_dispatcher.register(
            self._magnetometer_raw_data_updated,
            VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
        ui_event_dispatcher.register(
            self._connection_state_changed,
            UIEventDispatcher.CONNECTION_STATE_CHANGED_EVENT)

    def start_magnetometer_calibration(self):
        if self._is_running:
            self.ui.start.setText("Start")
            self.cancel_magnetometer_calibration(
            )  #we can stop the calibration it's done
#            self.send_calibration_value()

        elif not self._is_running:
            if self._is_connected:
                self._protocol_handler.unsubscribe_command()
                self._protocol_handler.subscribe_raw_magnetometer()
                self._is_running = True

                self.ui.cancel.setEnabled(True)
                self.ui.next.setEnabled(False)

                self.ui.start.setText("Finish")

                self._axix_max = [0, 0, 0]
                self._axis_min = [0, 0, 0]

    def cancel_magnetometer_calibration(self):
        self._protocol_handler.unsubscribe_command()
        self._is_running = False
        self.ui.cancel.setEnabled(False)
        self.ui.next.setEnabled(True)
        self.ui.start.setText("Start")

#    def read_continuousData(self):
#        isConnected = self.comm.isConnected()
#        if isConnected and not self.commData.empty():
#            string = self.commData.get()
#            string_out = string.split(',')
#            if self._is_running:
#                for i in range(0, self._amount_axis):
#                    if int(string_out[i]) < self._axis_min[i]:
#                        self._axis_min[i] = int(string_out[i])
#                    if int(string_out[i]) > self._axix_max[i]:
#                        self._axix_max[i] = int(string_out[i])
#                    self.update_gui(i, int(string_out[i]))
#
#        self.ui.commLog.append(self.timeStamp() + " <- " + self.commData.get())
#        self.ui.commLog.ensureCursorVisible()

    def _connection_state_changed(self, event, is_connected):
        self._is_connected = is_connected

    def _magnetometer_raw_data_updated(self, event, vector):
        self.ui.x_axis_progress_bar.setValue(int(vector.get_x()))
        self.ui.label_x.setText(vector.get_x())
        self.ui.y_axis_progress_bar.setValue(int(vector.get_y()))
        self.ui.label_y.setText(vector.get_y())
        self.ui.z_axis_progress_bar.setValue(int(vector.get_z()))
        self.ui.label_z.setText(vector.get_z())

    def update_gui(self, axis, value):
        if axis == int(self._axix_x):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_x.setText(str(value))
        if axis == int(self._axix_y):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_y.setText(str(value))
        if axis == int(self._axix_z):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_z.setText(str(value))
class MagnetometerCalibrationController(QtGui.QWidget, BasePanelController):

    def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)
        self.ui = Ui_MagnetometerCalibrationPanel()
        self.ui.setupUi(self)
        
        self._is_running = False
        self._amount_axis = 3
        self._axix_max = [0, 0, 0] 
        self._axis_min = [0, 0, 0] 
        
        self._axix_x = '0'
        self._axix_y = '1'
        self._axix_z = '2'
        
        self._is_connected = False
        
        self.ui.start.clicked.connect(self.start_magnetometer_calibration)
        self.ui.cancel.clicked.connect(self.cancel_magnetometer_calibration)
        
        vehicle_event_dispatcher.register(self._magnetometer_raw_data_updated, VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
        ui_event_dispatcher.register(self._connection_state_changed, UIEventDispatcher.CONNECTION_STATE_CHANGED_EVENT)
        
    
    def start_magnetometer_calibration(self):
        if self._is_running:    
            self.ui.start.setText("Start")
            self.cancel_magnetometer_calibration() #we can stop the calibration it's done
#            self.send_calibration_value()
        
        elif not self._is_running:
            if self._is_connected:
                self._protocol_handler.unsubscribe_command()
                self._protocol_handler.subscribe_raw_magnetometer()
                self._is_running = True
                
                self.ui.cancel.setEnabled(True)
                self.ui.next.setEnabled(False)
                
                self.ui.start.setText("Finish")
                
                self._axix_max = [0, 0, 0]
                self._axis_min = [0, 0, 0]
                
    def cancel_magnetometer_calibration(self):
        self._protocol_handler.unsubscribe_command()
        self._is_running = False
        self.ui.cancel.setEnabled(False)
        self.ui.next.setEnabled(True)
        self.ui.start.setText("Start")
        
    
#    def read_continuousData(self):
#        isConnected = self.comm.isConnected()
#        if isConnected and not self.commData.empty():
#            string = self.commData.get()
#            string_out = string.split(',')
#            if self._is_running:
#                for i in range(0, self._amount_axis):
#                    if int(string_out[i]) < self._axis_min[i]:  
#                        self._axis_min[i] = int(string_out[i])
#                    if int(string_out[i]) > self._axix_max[i]:  
#                        self._axix_max[i] = int(string_out[i])
#                    self.update_gui(i, int(string_out[i]))
#                    
#        self.ui.commLog.append(self.timeStamp() + " <- " + self.commData.get())
#        self.ui.commLog.ensureCursorVisible() 

    def _connection_state_changed(self, event, is_connected):
        self._is_connected = is_connected

    def _magnetometer_raw_data_updated(self, event, vector):
        self.ui.x_axis_progress_bar.setValue(int(vector.get_x()))
        self.ui.label_x.setText(vector.get_x())
        self.ui.y_axis_progress_bar.setValue(int(vector.get_y()))
        self.ui.label_y.setText(vector.get_y())
        self.ui.z_axis_progress_bar.setValue(int(vector.get_z()))
        self.ui.label_z.setText(vector.get_z())
        
    def update_gui(self, axis, value):
        if axis == int(self._axix_x):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_x.setText(str(value))
        if axis == int(self._axix_y):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_y.setText(str(value))
        if axis == int(self._axix_z):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_z.setText(str(value))
            
    #def send_calibration_value(self):
        #self.comm.write("X");
        #command = "M "
        #commands here
            
        #self.comm.write(command)
class MagnetometerCalibrationController(QtGui.QWidget, BasePanelController):

    def __init__(self, vehicle_model, message_sender):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)
        
        self.vehicle_model = vehicle_model
        self.message_sender = message_sender
        
        self.ui = Ui_MagnetometerCalibrationPanel()
        self.ui.setupUi(self)
        
        self.running = False
        self.amount_axis = 3
        self.axix_max = [0, 0, 0] # x y z
        self.axis_min = [0, 0, 0] # x y z
        
        self.axix_x = '0'
        self.axix_y = '1'
        self.axix_z = '2'
        
        self.ui.start.clicked.connect(self.start_magnetometer_calibration)
        self.ui.cancel.clicked.connect(self.cancel_magnetometer_calibration)
    
    def start_magnetometer_calibration(self):
        if self.running:    
            self.ui.start.setText("Start")
            self.cancel_magnetometer_calibration() #we can stop the calibration it's done
            self.timer.stop()
            self.send_calibration_value()
        
        elif not self.running:
            if self.comm.isConnected() == True:
                self.comm.write("m")
                self.comm.write("j")
                self.timer = QtCore.QTimer()
                self.timer.timeout.connect(self.read_continuousData)
                self.timer.start(50)
                self.startCommThread()
                self.running = True
                
                self.ui.cancel.setEnabled(True)
                self.ui.next.setEnabled(False)
                
                self.ui.start.setText("Finish")
                
                self.axix_max = [0, 0, 0]
                self.axis_min = [0, 0, 0]
                
    def cancel_magnetometer_calibration(self):
        self.comm.write("x")
        self.timer.stop()
        self.comm.flushResponse()
        self.running = False
        self.ui.cancel.setEnabled(False)
        self.ui.next.setEnabled(True)
        self.ui.start.setText("Start")
    
    def read_continuousData(self):
        isConnected = self.comm.isConnected()
        if isConnected and not self.commData.empty():
            string = self.commData.get()
            string_out = string.split(',')
            if self.running:
                for i in range(0, self.amount_axis):
                    if int(string_out[i]) < self.axis_min[i]:  
                        self.axis_min[i] = int(string_out[i])
                    if int(string_out[i]) > self.axix_max[i]:  
                        self.axix_max[i] = int(string_out[i])
                    self.update_gui(i, int(string_out[i]))
                    
        self.ui.commLog.append(self.timeStamp() + " <- " + self.commData.get())
        self.ui.commLog.ensureCursorVisible()                      
       
    def update_gui(self, axis, value):
        if axis == int(self.axix_x):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_x.setText(str(value))
        if axis == int(self.axix_y):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_y.setText(str(value))
        if axis == int(self.axix_z):
            self.ui.x_axis_progress_bar.setValue(value)
            self.ui.label_z.setText(str(value))
            
    #def send_calibration_value(self):
        #self.comm.write("X");
        #command = "M "
        #commands here
            
        #self.comm.write(command)
Esempio n. 11
0
class MagnetometerCalibrationController(QtGui.QWidget, BasePanelController):
    def __init__(self, vehicle_event_dispatcher, ui_event_dispatcher):
        QtGui.QWidget.__init__(self)
        BasePanelController.__init__(self)
        self.ui = Ui_MagnetometerCalibrationPanel()
        self.ui.setupUi(self)

        self._min_mag_values = [0, 0, 0]
        self._max_mag_values = [0, 0, 0]

        self._axix_x = '0'
        self._axix_y = '1'
        self._axix_z = '2'

        self.ui.start_button.clicked.connect(self._start_button_pressed)
        self.ui.cancel_button.clicked.connect(self._cancel_button_pressed)

        vehicle_event_dispatcher.register(
            self._magnetometer_raw_data_updated,
            VehicleEventDispatcher.MAGNETOMETER_RAW_DATA_EVENT)
        ui_event_dispatcher.register(self._protocol_handler_changed_event,
                                     UIEventDispatcher.PROTOCOL_HANDLER_EVENT)

    def start(self):
        self._reset_progress_bars()

    def stop(self):
        self._cancel_button_pressed()

    def _protocol_handler_changed_event(self, event, protocol_handler):
        self._protocol_handler = protocol_handler

    def _start_button_pressed(self):
        if self.ui.start_button.text() == 'Start':
            self._protocol_handler.subscribe_raw_magnetometer()
            self.ui.cancel_button.setEnabled(True)
            self.ui.start_button.setText("Finish")
            self._min_mag_values = [0, 0, 0]
            self._max_mag_values = [0, 0, 0]
        else:
            self._protocol_handler.unsubscribe_command()
            self.ui.start_button.setText('Start')
            self._reset_progress_bars()
            self._send_mag_cal_values()

    def _cancel_button_pressed(self):
        self._protocol_handler.unsubscribe_command()
        self.ui.cancel_button.setEnabled(False)
        self.ui.start_button.setText("Start")
        self._reset_progress_bars()

    def _magnetometer_raw_data_updated(self, event, vector):
        self.ui.x_axis_progress_bar.setValue(int(vector.get_x()))
        self.ui.label_x.setText(vector.get_x())
        self._min_mag_values[0] = min(self._min_mag_values[0], vector.get_x())
        self._max_mag_values[0] = max(self._max_mag_values[0], vector.get_x())
        self.ui.y_axis_progress_bar.setValue(int(vector.get_y()))
        self.ui.label_y.setText(vector.get_y())
        self._min_mag_values[1] = min(self._min_mag_values[1], vector.get_y())
        self._max_mag_values[1] = max(self._max_mag_values[1], vector.get_y())
        self.ui.z_axis_progress_bar.setValue(int(vector.get_z()))
        self.ui.label_z.setText(vector.get_z())
        self._min_mag_values[2] = min(self._min_mag_values[2], vector.get_z())
        self._max_mag_values[2] = max(self._max_mag_values[2], vector.get_z())

    def _reset_progress_bars(self):
        self.ui.x_axis_progress_bar.setValue(0)
        self.ui.label_x.setText(str(0))
        self.ui.y_axis_progress_bar.setValue(0)
        self.ui.label_y.setText(str(0))
        self.ui.z_axis_progress_bar.setValue(0)
        self.ui.label_z.setText(str(0))

    def _send_mag_cal_values(self):
        self._protocol_handler.send_mag_calibration_values(
            self._min_mag_values, self._max_mag_values)