|
|
@@ -43,17 +43,26 @@ public class PtzController {
|
|
|
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
@Parameter(name = "cmdCode", description = "指令码(对应国标文档指令格式中的字节4)", required = true)
|
|
|
- @Parameter(name = "parameter1", description = "数据一(对应国标文档指令格式中的字节5)", required = true)
|
|
|
- @Parameter(name = "parameter2", description = "数据二(对应国标文档指令格式中的字节6)", required = true)
|
|
|
- @Parameter(name = "combindCode2", description = "组合码二(对应国标文档指令格式中的字节7:组合码2,高4位是数据3,低4位是地址的高4位)", required = true)
|
|
|
- @PostMapping("/common/{deviceId}/{channelId}")
|
|
|
- public void frontEndCommand(@PathVariable String deviceId,@PathVariable String channelId,int cmdCode, int parameter1, int parameter2, int combindCode2){
|
|
|
+ @Parameter(name = "parameter1", description = "数据一(对应国标文档指令格式中的字节5, 范围0-255)", required = true)
|
|
|
+ @Parameter(name = "parameter2", description = "数据二(对应国标文档指令格式中的字节6, 范围0-255)", required = true)
|
|
|
+ @Parameter(name = "combindCode2", description = "组合码二(对应国标文档指令格式中的字节7, 范围0-16)", required = true)
|
|
|
+ @GetMapping("/common/{deviceId}/{channelId}")
|
|
|
+ public void frontEndCommand(@PathVariable String deviceId,@PathVariable String channelId,Integer cmdCode, Integer parameter1, Integer parameter2, Integer combindCode2){
|
|
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
log.debug(String.format("设备云台控制 API调用,deviceId:%s ,channelId:%s ,cmdCode:%d parameter1:%d parameter2:%d",deviceId, channelId, cmdCode, parameter1, parameter2));
|
|
|
}
|
|
|
Device device = deviceService.getDeviceByDeviceId(deviceId);
|
|
|
|
|
|
+ if (parameter1 == null || parameter1 < 0 || parameter1 > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "parameter1 为 1-255的数字");
|
|
|
+ }
|
|
|
+ if (parameter2 == null || parameter2 < 0 || parameter2 > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "parameter1 为 1-255的数字");
|
|
|
+ }
|
|
|
+ if (combindCode2 == null || combindCode2 < 0 || combindCode2 > 16) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "parameter1 为 1-255的数字");
|
|
|
+ }
|
|
|
try {
|
|
|
cmder.frontEndCmd(device, channelId, cmdCode, parameter1, parameter2, combindCode2);
|
|
|
} catch (SipException | InvalidArgumentException | ParseException e) {
|
|
|
@@ -69,12 +78,27 @@ public class PtzController {
|
|
|
@Parameter(name = "horizonSpeed", description = "水平速度(0-255)", required = true)
|
|
|
@Parameter(name = "verticalSpeed", description = "垂直速度(0-255)", required = true)
|
|
|
@Parameter(name = "zoomSpeed", description = "缩放速度(0-16)", required = true)
|
|
|
- @PostMapping("/ptz/{deviceId}/{channelId}")
|
|
|
- public void ptz(@PathVariable String deviceId,@PathVariable String channelId, String command, int horizonSpeed, int verticalSpeed, int zoomSpeed){
|
|
|
+ @GetMapping("/ptz/{deviceId}/{channelId}")
|
|
|
+ public void ptz(@PathVariable String deviceId,@PathVariable String channelId, String command, Integer horizonSpeed, Integer verticalSpeed, Integer zoomSpeed){
|
|
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
log.debug(String.format("设备云台控制 API调用,deviceId:%s ,channelId:%s ,command:%s ,horizonSpeed:%d ,verticalSpeed:%d ,zoomSpeed:%d",deviceId, channelId, command, horizonSpeed, verticalSpeed, zoomSpeed));
|
|
|
}
|
|
|
+ if (horizonSpeed == null) {
|
|
|
+ horizonSpeed = 100;
|
|
|
+ }else if (horizonSpeed < 0 || horizonSpeed > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "horizonSpeed 为 1-255的数字");
|
|
|
+ }
|
|
|
+ if (verticalSpeed == null) {
|
|
|
+ verticalSpeed = 100;
|
|
|
+ }else if (verticalSpeed < 0 || verticalSpeed > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "verticalSpeed 为 1-255的数字");
|
|
|
+ }
|
|
|
+ if (zoomSpeed == null) {
|
|
|
+ zoomSpeed = 16;
|
|
|
+ }else if (zoomSpeed < 0 || zoomSpeed > 16) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "zoomSpeed 为 1-255的数字");
|
|
|
+ }
|
|
|
|
|
|
int cmdCode = 0;
|
|
|
switch (command){
|
|
|
@@ -125,8 +149,8 @@ public class PtzController {
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
@Parameter(name = "command", description = "控制指令,允许值: in, out, stop", required = true)
|
|
|
@Parameter(name = "speed", description = "光圈速度(0-255)", required = true)
|
|
|
- @PostMapping("/fi/iris/{deviceId}/{channelId}")
|
|
|
- public void iris(@PathVariable String deviceId,@PathVariable String channelId, String command, int speed){
|
|
|
+ @GetMapping("/fi/iris/{deviceId}/{channelId}")
|
|
|
+ public void iris(@PathVariable String deviceId,@PathVariable String channelId, String command, Integer speed){
|
|
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
log.debug("设备光圈控制 API调用,deviceId:{} ,channelId:{} ,command:{} ,speed:{} ",deviceId, channelId, command, speed);
|
|
|
@@ -135,10 +159,10 @@ public class PtzController {
|
|
|
int cmdCode = 0x40;
|
|
|
switch (command){
|
|
|
case "in":
|
|
|
- cmdCode = 0x48;
|
|
|
+ cmdCode = 0x44;
|
|
|
break;
|
|
|
case "out":
|
|
|
- cmdCode = 0x44;
|
|
|
+ cmdCode = 0x48;
|
|
|
break;
|
|
|
case "stop":
|
|
|
speed = 0;
|
|
|
@@ -154,13 +178,19 @@ public class PtzController {
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
@Parameter(name = "command", description = "控制指令,允许值: near, far, stop", required = true)
|
|
|
@Parameter(name = "speed", description = "聚焦速度(0-255)", required = true)
|
|
|
- @PostMapping("/fi/focus/{deviceId}/{channelId}")
|
|
|
- public void focus(@PathVariable String deviceId,@PathVariable String channelId, String command, int speed){
|
|
|
+ @GetMapping("/fi/focus/{deviceId}/{channelId}")
|
|
|
+ public void focus(@PathVariable String deviceId,@PathVariable String channelId, String command, Integer speed){
|
|
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
log.debug("设备聚焦控制 API调用,deviceId:{} ,channelId:{} ,command:{} ,speed:{} ",deviceId, channelId, command, speed);
|
|
|
}
|
|
|
|
|
|
+ if (speed == null) {
|
|
|
+ speed = 100;
|
|
|
+ }else if (speed < 0 || speed > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "verticalSpeed 为 1-255的数字");
|
|
|
+ }
|
|
|
+
|
|
|
int cmdCode = 0x40;
|
|
|
switch (command){
|
|
|
case "near":
|
|
|
@@ -221,7 +251,7 @@ public class PtzController {
|
|
|
@Operation(summary = "预置位指令-设置预置位", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
|
|
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
- @Parameter(name = "presetId", description = "预置位编号(0-255)", required = true)
|
|
|
+ @Parameter(name = "presetId", description = "预置位编号(1-255)", required = true)
|
|
|
@GetMapping("/preset/add/{deviceId}/{channelId}")
|
|
|
public void addPreset(@PathVariable String deviceId, @PathVariable String channelId, Integer presetId) {
|
|
|
if (presetId == null || presetId < 1 || presetId > 255) {
|
|
|
@@ -233,7 +263,7 @@ public class PtzController {
|
|
|
@Operation(summary = "预置位指令-调用预置位", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
|
|
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
- @Parameter(name = "presetId", description = "预置位编号(0-255)", required = true)
|
|
|
+ @Parameter(name = "presetId", description = "预置位编号(1-255)", required = true)
|
|
|
@GetMapping("/preset/call/{deviceId}/{channelId}")
|
|
|
public void callPreset(@PathVariable String deviceId, @PathVariable String channelId, Integer presetId) {
|
|
|
if (presetId == null || presetId < 1 || presetId > 255) {
|
|
|
@@ -245,7 +275,7 @@ public class PtzController {
|
|
|
@Operation(summary = "预置位指令-删除预置位", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
|
|
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
- @Parameter(name = "presetId", description = "预置位编号(0-255)", required = true)
|
|
|
+ @Parameter(name = "presetId", description = "预置位编号(1-255)", required = true)
|
|
|
@GetMapping("/preset/delete/{deviceId}/{channelId}")
|
|
|
public void deletePreset(@PathVariable String deviceId, @PathVariable String channelId, Integer presetId) {
|
|
|
if (presetId == null || presetId < 1 || presetId > 255) {
|
|
|
@@ -258,10 +288,10 @@ public class PtzController {
|
|
|
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
@Parameter(name = "cruiseId", description = "巡航组号(0-255)", required = true)
|
|
|
- @Parameter(name = "presetId", description = "预置位编号(0-255)", required = true)
|
|
|
+ @Parameter(name = "presetId", description = "预置位编号(1-255)", required = true)
|
|
|
@GetMapping("/cruise/point/add/{deviceId}/{channelId}")
|
|
|
public void addCruisePoint(@PathVariable String deviceId, @PathVariable String channelId, Integer cruiseId, Integer presetId) {
|
|
|
- if (presetId == null || cruiseId == null || presetId < 1 || presetId > 255 || cruiseId < 1 || cruiseId > 255) {
|
|
|
+ if (presetId == null || cruiseId == null || presetId < 1 || presetId > 255 || cruiseId < 0 || cruiseId > 255) {
|
|
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "编号必须为1-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0x84, cruiseId, presetId, 0);
|
|
|
@@ -274,8 +304,11 @@ public class PtzController {
|
|
|
@Parameter(name = "presetId", description = "预置位编号(0-255, 为0时删除整个巡航)", required = true)
|
|
|
@GetMapping("/cruise/point/delete/{deviceId}/{channelId}")
|
|
|
public void deleteCruisePoint(@PathVariable String deviceId, @PathVariable String channelId, Integer cruiseId, Integer presetId) {
|
|
|
- if (presetId == null || cruiseId == null || presetId < 0 || presetId > 255 || cruiseId < 1 || cruiseId > 255) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "编号必须为1-255之间的数字");
|
|
|
+ if (presetId == null || presetId < 0 || presetId > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "预置位编号必须为0-255之间的数字, 为0时删除整个巡航");
|
|
|
+ }
|
|
|
+ if (cruiseId == null || cruiseId < 0 || cruiseId > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "巡航组号必须为0-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0x85, cruiseId, presetId, 0);
|
|
|
}
|
|
|
@@ -287,14 +320,14 @@ public class PtzController {
|
|
|
@Parameter(name = "speed", description = "巡航速度(1-4095)", required = true)
|
|
|
@GetMapping("/cruise/speed/{deviceId}/{channelId}")
|
|
|
public void setCruiseSpeed(@PathVariable String deviceId, @PathVariable String channelId, Integer cruiseId, Integer speed) {
|
|
|
- if (cruiseId == null || cruiseId < 1 || cruiseId > 255) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "编号必须为1-255之间的数字");
|
|
|
+ if (cruiseId == null || cruiseId < 0 || cruiseId > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "巡航组号必须为0-255之间的数字");
|
|
|
}
|
|
|
if (speed == null || speed < 1 || speed > 4095) {
|
|
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "巡航速度必须为1-4095之间的数字");
|
|
|
}
|
|
|
- int parameter2 = speed >> 4;
|
|
|
- int combindCode2 = speed - parameter2 << 4 ;
|
|
|
+ int parameter2 = speed & 0xFF;
|
|
|
+ int combindCode2 = speed >> 8;
|
|
|
frontEndCommand(deviceId, channelId, 0x86, cruiseId, parameter2, combindCode2);
|
|
|
}
|
|
|
|
|
|
@@ -305,14 +338,14 @@ public class PtzController {
|
|
|
@Parameter(name = "time", description = "巡航停留时间(1-4095)", required = true)
|
|
|
@GetMapping("/cruise/time/{deviceId}/{channelId}")
|
|
|
public void setCruiseTime(@PathVariable String deviceId, @PathVariable String channelId, Integer cruiseId, Integer time) {
|
|
|
- if (cruiseId == null || cruiseId < 1 || cruiseId > 255) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "编号必须为1-255之间的数字");
|
|
|
+ if (cruiseId == null || cruiseId < 0 || cruiseId > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "巡航组号必须为0-255之间的数字");
|
|
|
}
|
|
|
if (time == null || time < 1 || time > 4095) {
|
|
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "巡航停留时间必须为1-4095之间的数字");
|
|
|
}
|
|
|
- int parameter2 = time >> 4;
|
|
|
- int combindCode2 = time - parameter2 << 4 ;
|
|
|
+ int parameter2 = time & 0xFF;
|
|
|
+ int combindCode2 = time >> 8;
|
|
|
frontEndCommand(deviceId, channelId, 0x87, cruiseId, parameter2, combindCode2);
|
|
|
}
|
|
|
|
|
|
@@ -322,8 +355,8 @@ public class PtzController {
|
|
|
@Parameter(name = "cruiseId", description = "巡航组号)", required = true)
|
|
|
@GetMapping("/cruise/start/{deviceId}/{channelId}")
|
|
|
public void startCruise(@PathVariable String deviceId, @PathVariable String channelId, Integer cruiseId) {
|
|
|
- if (cruiseId == null || cruiseId < 1 || cruiseId > 255) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "编号必须为1-255之间的数字");
|
|
|
+ if (cruiseId == null || cruiseId < 0 || cruiseId > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "巡航组号必须为0-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0x88, cruiseId, 0, 0);
|
|
|
}
|
|
|
@@ -334,8 +367,8 @@ public class PtzController {
|
|
|
@Parameter(name = "cruiseId", description = "巡航组号", required = true)
|
|
|
@GetMapping("/cruise/stop/{deviceId}/{channelId}")
|
|
|
public void stopCruise(@PathVariable String deviceId, @PathVariable String channelId, Integer cruiseId) {
|
|
|
- if (cruiseId == null || cruiseId < 1 || cruiseId > 255) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "编号必须为1-255之间的数字");
|
|
|
+ if (cruiseId == null || cruiseId < 0 || cruiseId > 255) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "巡航组号必须为0-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0, 0, 0, 0);
|
|
|
}
|
|
|
@@ -346,8 +379,8 @@ public class PtzController {
|
|
|
@Parameter(name = "scanId", description = "扫描组号(0-255)", required = true)
|
|
|
@GetMapping("/scan/start/{deviceId}/{channelId}")
|
|
|
public void startScan(@PathVariable String deviceId, @PathVariable String channelId, Integer scanId) {
|
|
|
- if (scanId == null || scanId < 1 || scanId > 255 ) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为1-255之间的数字");
|
|
|
+ if (scanId == null || scanId < 0 || scanId > 255 ) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为0-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0x89, scanId, 0, 0);
|
|
|
}
|
|
|
@@ -358,8 +391,8 @@ public class PtzController {
|
|
|
@Parameter(name = "scanId", description = "扫描组号(0-255)", required = true)
|
|
|
@GetMapping("/scan/stop/{deviceId}/{channelId}")
|
|
|
public void stopScan(@PathVariable String deviceId, @PathVariable String channelId, Integer scanId) {
|
|
|
- if (scanId == null || scanId < 1 || scanId > 255 ) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为1-255之间的数字");
|
|
|
+ if (scanId == null || scanId < 0 || scanId > 255 ) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为0-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0, 0, 0, 0);
|
|
|
}
|
|
|
@@ -370,8 +403,8 @@ public class PtzController {
|
|
|
@Parameter(name = "scanId", description = "扫描组号(0-255)", required = true)
|
|
|
@GetMapping("/scan/set/left/{deviceId}/{channelId}")
|
|
|
public void setScanLeft(@PathVariable String deviceId, @PathVariable String channelId, Integer scanId) {
|
|
|
- if (scanId == null || scanId < 1 || scanId > 255 ) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为1-255之间的数字");
|
|
|
+ if (scanId == null || scanId < 0 || scanId > 255 ) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为0-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0x89, scanId, 1, 0);
|
|
|
}
|
|
|
@@ -382,8 +415,8 @@ public class PtzController {
|
|
|
@Parameter(name = "scanId", description = "扫描组号(0-255)", required = true)
|
|
|
@GetMapping("/scan/set/right/{deviceId}/{channelId}")
|
|
|
public void setScanRight(@PathVariable String deviceId, @PathVariable String channelId, Integer scanId) {
|
|
|
- if (scanId == null || scanId < 1 || scanId > 255 ) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为1-255之间的数字");
|
|
|
+ if (scanId == null || scanId < 0 || scanId > 255 ) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为0-255之间的数字");
|
|
|
}
|
|
|
frontEndCommand(deviceId, channelId, 0x89, scanId, 2, 0);
|
|
|
}
|
|
|
@@ -393,17 +426,17 @@ public class PtzController {
|
|
|
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
@Parameter(name = "scanId", description = "扫描组号(0-255)", required = true)
|
|
|
- @Parameter(name = "speed", description = "自动扫描速度(1-16)", required = true)
|
|
|
+ @Parameter(name = "speed", description = "自动扫描速度(1-4095)", required = true)
|
|
|
@GetMapping("/scan/set/speed/{deviceId}/{channelId}")
|
|
|
public void setScanSpeed(@PathVariable String deviceId, @PathVariable String channelId, Integer scanId, Integer speed) {
|
|
|
- if (scanId == null || scanId < 1 || scanId > 255 ) {
|
|
|
- throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为1-255之间的数字");
|
|
|
+ if (scanId == null || scanId < 0 || scanId > 255 ) {
|
|
|
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "扫描组号必须为0-255之间的数字");
|
|
|
}
|
|
|
if (speed == null || speed < 1 || speed > 4095) {
|
|
|
throw new ControllerException(ErrorCode.ERROR100.getCode(), "自动扫描速度必须为1-4095之间的数字");
|
|
|
}
|
|
|
- int parameter2 = speed >> 4;
|
|
|
- int combindCode2 = speed - parameter2 << 4 ;
|
|
|
+ int parameter2 = speed & 0xFF;
|
|
|
+ int combindCode2 = speed >> 8;
|
|
|
frontEndCommand(deviceId, channelId, 0x8A, scanId, parameter2, combindCode2);
|
|
|
}
|
|
|
|
|
|
@@ -412,7 +445,7 @@ public class PtzController {
|
|
|
@Parameter(name = "deviceId", description = "设备国标编号", required = true)
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
@Parameter(name = "command", description = "控制指令,允许值: on, off", required = true)
|
|
|
- @PostMapping("/wiper/{deviceId}/{channelId}")
|
|
|
+ @GetMapping("/wiper/{deviceId}/{channelId}")
|
|
|
public void wiper(@PathVariable String deviceId,@PathVariable String channelId, String command){
|
|
|
|
|
|
if (log.isDebugEnabled()) {
|
|
|
@@ -438,7 +471,7 @@ public class PtzController {
|
|
|
@Parameter(name = "channelId", description = "通道国标编号", required = true)
|
|
|
@Parameter(name = "command", description = "控制指令,允许值: on, off", required = true)
|
|
|
@Parameter(name = "switchId", description = "开关编号", required = true)
|
|
|
- @PostMapping("/auxiliary/{deviceId}/{channelId}")
|
|
|
+ @GetMapping("/auxiliary/{deviceId}/{channelId}")
|
|
|
public void auxiliarySwitch(@PathVariable String deviceId,@PathVariable String channelId, String command, Integer switchId){
|
|
|
|
|
|
if (log.isDebugEnabled()) {
|