|  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 云台指令码计算 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @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 parameter1    数据1 | 
|---|
|  |  |  | * @param parameter2    数据2 | 
|---|
|  |  |  | * @param combineCode2    组合码2 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 云台指令码计算 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param cmdCode 指令码 | 
|---|
|  |  |  | * @param horizonSpeed    水平移动速度 | 
|---|
|  |  |  | * @param verticalSpeed    垂直移动速度 | 
|---|
|  |  |  | * @param zoomSpeed        缩放速度 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | 
|---|
|  |  |  | * @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"); | 
|---|