panlinlin
2021-01-07 059a5a678ab21738c3fecb9e2bd1e2dc47220a4f
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -182,35 +182,24 @@
   /**
   * 云台指令码计算 
   *
    * @param leftRight  镜头左移右移 0:停止 1:左移 2:右移
    * @param upDown     镜头上移下移 0:停止 1:上移 2:下移
    * @param inOut      镜头放大缩小 0:停止 1:缩小 2:放大
    * @param moveSpeed  镜头移动速度 默认 0XFF (0-255)
    * @param zoomSpeed  镜头缩放速度 默认 0X1 (0-255)
    */
   /**
    * 云台指令码计算
    *
    * @param cmdCode 指令码
    * @param horizonSpeed   水平移动速度
    * @param verticalSpeed   垂直移动速度
    * @param zoomSpeed       缩放速度
    * @return
   * @param parameter1   数据1
   * @param parameter2   数据2
   * @param combineCode2   组合码2
    */
    public static String frontEndCmdString(int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed) {
    public static String frontEndCmdString(int cmdCode, int parameter1, int parameter2, int combineCode2) {
      StringBuilder builder = new StringBuilder("A50F01");
      String strTmp;
      strTmp = String.format("%02X", cmdCode);
      builder.append(strTmp, 0, 2);
      strTmp = String.format("%02X", horizonSpeed);
      strTmp = String.format("%02X", parameter1);
      builder.append(strTmp, 0, 2);
      strTmp = String.format("%02X", verticalSpeed);
      strTmp = String.format("%02X", parameter2);
      builder.append(strTmp, 0, 2);
      strTmp = String.format("%X", zoomSpeed);
      strTmp = String.format("%X", combineCode2);
      builder.append(strTmp, 0, 1).append("0");
      //计算校验码
      int checkCode = (0XA5 + 0X0F + 0X01 + cmdCode + horizonSpeed + verticalSpeed + (zoomSpeed & 0XF0)) % 0X100;
      int checkCode = (0XA5 + 0X0F + 0X01 + cmdCode + parameter1 + parameter2 + (combineCode2 & 0XF0)) % 0X100;
      strTmp = String.format("%02X", checkCode);
      builder.append(strTmp, 0, 2);
      return builder.toString();
@@ -259,14 +248,14 @@
    * @param device        控制设备
    * @param channelId      预览通道
    * @param cmdCode      指令码
     * @param horizonSpeed   水平移动速度
     * @param verticalSpeed   垂直移动速度
     * @param zoomSpeed       缩放速度
     * @param parameter1   数据1
     * @param parameter2   数据2
     * @param combineCode2   组合码2
    */
   @Override
   public boolean frontEndCmd(Device device, String channelId, int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed) {
   public boolean frontEndCmd(Device device, String channelId, int cmdCode, int parameter1, int parameter2, int combineCode2) {
      try {
         String cmdStr= frontEndCmdString(cmdCode, horizonSpeed, verticalSpeed, zoomSpeed);
         String cmdStr= frontEndCmdString(cmdCode, parameter1, parameter2, combineCode2);
         System.out.println("控制字符串:" + cmdStr);
         StringBuffer ptzXml = new StringBuffer(200);
         ptzXml.append("<?xml version=\"1.0\" ?>\r\n");