java.lang.Object
io.github.lunasaw.gb28181.common.entity.control.instruction.builder.PTZInstructionBuilder

public class PTZInstructionBuilder extends Object
PTZ指令构建器 - Builder设计模式实现 提供流式API构建各种PTZ控制指令
  • Constructor Details

    • PTZInstructionBuilder

      public PTZInstructionBuilder()
  • Method Details

    • create

      public static PTZInstructionBuilder create()
      创建构建器实例
    • address

      public PTZInstructionBuilder address(int address)
      设置设备地址
      Parameters:
      address - 设备地址 (0x000-0xFFF)
      Returns:
      this
    • addPTZControl

      public PTZInstructionBuilder addPTZControl(PTZControlEnum control)
      添加PTZ控制指令
      Parameters:
      control - PTZ控制类型
      Returns:
      this
    • addPTZControl

      添加PTZ控制指令 - 支持组合控制
      Parameters:
      pan - 水平方向控制
      tilt - 垂直方向控制
      zoom - 变倍控制
      Returns:
      this
    • addFIControl

      public PTZInstructionBuilder addFIControl(FIControlEnum control)
      添加FI控制指令
      Parameters:
      control - FI控制类型
      Returns:
      this
    • addFIControl

      添加FI控制指令 - 支持组合控制
      Parameters:
      iris - 光圈控制
      focus - 聚焦控制
      Returns:
      this
    • addPresetControl

      public PTZInstructionBuilder addPresetControl(PresetControlEnum control, int presetNumber)
      添加预置位控制指令
      Parameters:
      control - 预置位控制类型
      presetNumber - 预置位号 (1-255)
      Returns:
      this
    • addCruiseControl

      public PTZInstructionBuilder addCruiseControl(CruiseControlEnum control, int groupNumber)
      添加巡航控制指令
      Parameters:
      control - 巡航控制类型
      groupNumber - 巡航组号 (0-255)
      Returns:
      this
    • addCruiseControl

      public PTZInstructionBuilder addCruiseControl(CruiseControlEnum control, int groupNumber, int presetNumber)
      添加巡航控制指令 - 带预置位号
      Parameters:
      control - 巡航控制类型
      groupNumber - 巡航组号 (0-255)
      presetNumber - 预置位号 (1-255)
      Returns:
      this
    • addCruiseControl

      public PTZInstructionBuilder addCruiseControl(CruiseControlEnum control, int groupNumber, int presetNumber, int speedOrTime)
      添加巡航控制指令 - 带速度或时间数据
      Parameters:
      control - 巡航控制类型
      groupNumber - 巡航组号 (0-255)
      presetNumber - 预置位号 (1-255)
      speedOrTime - 速度或时间 (0-4095)
      Returns:
      this
    • addScanControl

      public PTZInstructionBuilder addScanControl(ScanControlEnum control, int groupNumber, ScanControlEnum.ScanOperationType operationType)
      添加扫描控制指令
      Parameters:
      control - 扫描控制类型
      groupNumber - 扫描组号 (0-255)
      operationType - 操作类型
      Returns:
      this
    • addScanSpeedControl

      public PTZInstructionBuilder addScanSpeedControl(int groupNumber, int speed)
      添加扫描速度控制指令
      Parameters:
      groupNumber - 扫描组号 (0-255)
      speed - 扫描速度 (0-4095)
      Returns:
      this
    • addAuxiliaryControl

      public PTZInstructionBuilder addAuxiliaryControl(AuxiliaryControlEnum control, int switchNumber)
      添加辅助开关控制指令
      Parameters:
      control - 辅助开关控制类型
      switchNumber - 开关编号 (0-255)
      Returns:
      this
    • horizontalSpeed

      public PTZInstructionBuilder horizontalSpeed(int speed)
      设置水平控制速度
      Parameters:
      speed - 水平速度 (0x00-0xFF)
      Returns:
      this
    • verticalSpeed

      public PTZInstructionBuilder verticalSpeed(int speed)
      设置垂直控制速度
      Parameters:
      speed - 垂直速度 (0x00-0xFF)
      Returns:
      this
    • zoomSpeed

      public PTZInstructionBuilder zoomSpeed(int speed)
      设置变倍控制速度
      Parameters:
      speed - 变倍速度 (0x0-0xF)
      Returns:
      this
    • focusSpeed

      public PTZInstructionBuilder focusSpeed(int speed)
      设置聚焦速度
      Parameters:
      speed - 聚焦速度 (0x00-0xFF)
      Returns:
      this
    • irisSpeed

      public PTZInstructionBuilder irisSpeed(int speed)
      设置光圈速度
      Parameters:
      speed - 光圈速度 (0x00-0xFF)
      Returns:
      this
    • build

      public PTZInstructionFormat build()
      构建PTZ指令
      Returns:
      PTZ指令格式对象
    • buildToHex

      public String buildToHex()
      构建并转换为十六进制字符串
      Returns:
      十六进制字符串
    • buildToBytes

      public byte[] buildToBytes()
      构建并转换为字节数组
      Returns:
      字节数组