Пример #1
0
 def __processModeSelectionCommand(self, operation):
     new_module = self.actionDict[operation][self.ACTION_OPERATION_ID_INDEX]
     if new_module != self.status_dict["current_mode"]:
         cmd = [CommandType.INPUT
                ] + createCommand().setModule("nova").setOperation(
                    "set_mode").setModeArg(new_module).build()
         self.move_commands.append(cmd)
         self.status_dict["current_mode"] = new_module
Пример #2
0
    def __writeCoordinates(self, center_x, center_y):
        x = int(center_x * NovaConfig.FACE_DETECTION_COORDINATE_CORRECTION_X)
        y = int(center_y * NovaConfig.FACE_DETECTION_COORDINATE_CORRECTION_Y)

        cmd = createCommand().setModule("track_object").setOperation(
            "set_coordinates").setArgs([x, y]).build()

        self.serial_comm.writeCommand(cmd)
        self.commands_send += 1
Пример #3
0
 def __togglePIDcontrollerOnOff(self, module):
     if module in self.pid_index:
         asset = self.__determinePIDasset(module)
         print(
             f"Toggled PID controller {asset} for module {module} auto/manual"
         )
         cmd = [CommandType.INPUT] + createCommand().setModule(
             module).setAsset(asset).setOperation("toggle_auto").build()
         self.move_commands.append(cmd)
Пример #4
0
    def __processMoveCommand(self, move, positive_direction):
        degrees = NovaConfig.EXTERNAL_INPUT_STEPSIZE_DEGREES if positive_direction else -NovaConfig.EXTERNAL_INPUT_STEPSIZE_DEGREES

        asset = self.actionDict[move][self.ACTION_OPERATION_ID_INDEX]
        args = [degrees]
        cmd = [
            CommandType.INPUT
        ] + createCommand().setModule("external_input").setAsset(
            asset).setOperation("set_degree_steps").setArgs(args).build()
        self.move_commands.append(cmd)
Пример #5
0
    def __createCommandFromMouseMove(self, mouse_mode, axis, direction,
                                     degrees):
        parts_of_id = ['MOUSE', mouse_mode, axis, direction]
        mouse_event_id = '_'.join(parts_of_id)
        move = self.mouse_index[mouse_event_id]

        asset = self.actionDict[move][self.ACTION_OPERATION_ID_INDEX]
        args = [degrees]
        cmd = [
            CommandType.INPUT
        ] + createCommand().setModule("external_input").setAsset(
            asset).setOperation("set_degree_steps").setArgs(args).build()
        self.move_commands.append(cmd)
Пример #6
0
    def __calculateMouseWheelMove(self, flags):
        if flags < 0:
            direction = 'PLUS'
        else:
            direction = 'MINUS'

        degrees = NovaConfig.EXTERNAL_INPUT_STEPSIZE_DEGREES if direction == 'PLUS' else -NovaConfig.EXTERNAL_INPUT_STEPSIZE_DEGREES
        move = self.mouse_index['MOUSE_SCROLL_' + direction]
        asset = self.actionDict[move][self.ACTION_OPERATION_ID_INDEX]
        args = [degrees]
        cmd = [
            CommandType.INPUT
        ] + createCommand().setModule("external_input").setAsset(
            asset).setOperation("set_degree_steps").setArgs(args).build()
        self.move_commands.append(cmd)
Пример #7
0
 def __processTunePIDCommand(self, move):
     module = self.status_dict["current_mode"]
     if move == NovaMove.TUNE_CYCLE_PID_CONTROLLER_IN_MODULE:
         self.__togglePIDcontrollerToTune(module)
     elif move == NovaMove.TOGGLE_PID_MANUAL_AUTO:
         self.__togglePIDcontrollerOnOff(module)
     else:  # actual tuning of pid settings (up | down)
         asset = self.__determinePIDasset(module)
         pid_values = self.__determinePIDvalues(move, module, asset)
         args = list(
             int(x * 1000) for x in pid_values
         )  # nova command protocol allows only to send 'int', not 'decimal'
         cmd = [CommandType.INPUT
                ] + createCommand().setModule(module).setAsset(
                    asset).setOperation("set_tuning").setArgs(args).build()
         self.move_commands.append(cmd)