|  |  | 
 |  |  |                             @RequestParam(required = false)Integer speed){ | 
 |  |  |  | 
 |  |  |         if (logger.isDebugEnabled()) { | 
 |  |  |             logger.debug(String.format("模拟接口> 设备云台控制 API调用,deviceId:%s ,channelId:%s ,command:%d ,speed:%d ", | 
 |  |  |                     serial, code, command, speed)); | 
 |  |  |             logger.debug("模拟接口> 设备云台控制 API调用,deviceId:{} ,channelId:{} ,command:{} ,speed:{} ", | 
 |  |  |                     serial, code, command, speed); | 
 |  |  |         } | 
 |  |  |         if (channel == null) {channel = 0;} | 
 |  |  |         if (speed == null) {speed = 0;} | 
 |  |  |         Device device = storager.queryVideoDevice(serial); | 
 |  |  |         int leftRight = 0; | 
 |  |  |         int upDown = 0; | 
 |  |  |         int inOut = 0; | 
 |  |  |         switch (command) { | 
 |  |  |         if (device == null) { | 
 |  |  |             JSONObject result = new JSONObject(); | 
 |  |  |             result.put("error","device[ " + serial + " ]未找到"); | 
 |  |  |             return result; | 
 |  |  |         } | 
 |  |  |         int cmdCode = 0; | 
 |  |  |         switch (command){ | 
 |  |  |             case "left": | 
 |  |  |                 leftRight = 1; | 
 |  |  |                 cmdCode = 2; | 
 |  |  |                 break; | 
 |  |  |             case "right": | 
 |  |  |                 leftRight = 2; | 
 |  |  |                 cmdCode = 1; | 
 |  |  |                 break; | 
 |  |  |             case "up": | 
 |  |  |                 upDown = 1; | 
 |  |  |                 cmdCode = 8; | 
 |  |  |                 break; | 
 |  |  |             case "down": | 
 |  |  |                 upDown = 2; | 
 |  |  |                 cmdCode = 4; | 
 |  |  |                 break; | 
 |  |  |             case "upleft": | 
 |  |  |                 upDown = 1; | 
 |  |  |                 leftRight = 1; | 
 |  |  |                 cmdCode = 10; | 
 |  |  |                 break; | 
 |  |  |             case "upright": | 
 |  |  |                 upDown = 1; | 
 |  |  |                 leftRight = 2; | 
 |  |  |                 cmdCode = 9; | 
 |  |  |                 break; | 
 |  |  |             case "downleft": | 
 |  |  |                 upDown = 2; | 
 |  |  |                 leftRight = 1; | 
 |  |  |                 cmdCode = 6; | 
 |  |  |                 break; | 
 |  |  |             case "downright": | 
 |  |  |                 upDown = 2; | 
 |  |  |                 leftRight = 2; | 
 |  |  |                 cmdCode = 5; | 
 |  |  |                 break; | 
 |  |  |             case "zoomin": | 
 |  |  |                 inOut = 2; | 
 |  |  |                 cmdCode = 16; | 
 |  |  |                 break; | 
 |  |  |             case "zoomout": | 
 |  |  |                 inOut = 1; | 
 |  |  |                 cmdCode = 32; | 
 |  |  |                 break; | 
 |  |  |             case "stop": | 
 |  |  |                 cmdCode = 0; | 
 |  |  |                 break; | 
 |  |  |  | 
 |  |  |             default: | 
 |  |  |                 break; | 
 |  |  |         } | 
 |  |  |         // 默认值 50 | 
 |  |  |         cmder.ptzCmd(device, code, leftRight, upDown, inOut, speed==0 ? 129 : speed, 50); | 
 |  |  |         cmder.frontEndCmd(device, code, cmdCode, speed, speed, speed); | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  | } |