|
|
@ -9,6 +9,9 @@ import java.net.URI; |
|
|
|
import java.net.URISyntaxException; |
|
|
|
import java.nio.ByteBuffer; |
|
|
|
import java.nio.ByteOrder; |
|
|
|
import java.nio.CharBuffer; |
|
|
|
import java.nio.charset.Charset; |
|
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Timer; |
|
|
@ -53,7 +56,12 @@ public class DiConWebsocket implements DiDeviceConnection { |
|
|
|
@Override |
|
|
|
public void call(DiCommandRequest request) { |
|
|
|
this.requests.add(request); |
|
|
|
String cmd = DiByteBuffer.toHex(request.parameter); |
|
|
|
|
|
|
|
// build cmd from request.parameter |
|
|
|
Charset charset = StandardCharsets.UTF_8; |
|
|
|
CharBuffer charBuffer = charset.decode(request.parameter); |
|
|
|
String cmd = charBuffer.toString(); |
|
|
|
|
|
|
|
LOG.info("Command => {} : [{}]", request.parameterText, cmd); |
|
|
|
cmd = cmd.replace(" ",""); |
|
|
|
this.client.send(cmd); |
|
|
@ -88,7 +96,7 @@ public class DiConWebsocket implements DiDeviceConnection { |
|
|
|
} |
|
|
|
|
|
|
|
request.timeoutCount ++; |
|
|
|
if ( request.timeoutCount > 3 ) { |
|
|
|
if ( request.timeoutCount > 50 ) { |
|
|
|
synchronized ( request ) { |
|
|
|
request.timeoutTimer = null; |
|
|
|
request.errorCode = 8000; |
|
|
|