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)
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)
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)
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)