Class VABBaSyxTCPInterface<ModelProvider extends org.eclipse.basyx.vab.modelprovider.api.IModelProvider>
- java.lang.Object
-
- java.lang.Thread
-
- de.iip_ecosphere.platform.support.aas.basyx.basyx.VABBaSyxTCPInterface<ModelProvider>
-
- All Implemented Interfaces:
java.lang.Runnable
public class VABBaSyxTCPInterface<ModelProvider extends org.eclipse.basyx.vab.modelprovider.api.IModelProvider> extends java.lang.ThreadProvider class that enables access to an IModelProvider via native BaSyx protocol. Taken over from BaSyx to be able to run BaSyx with JDK 8.- Author:
- kuhn, pschorn
-
-
Field Summary
Fields Modifier and Type Field Description static byteBASYX_CREATEBaSyx create command.static byteBASYX_DELETEBaSyx delete command.static byteBASYX_GETBaSyx get command.static byteBASYX_INVOKEBaSyx invoke command.static byteBASYX_RESULT_OKBaSyx result 'OK' : 0x00.static byteBASYX_SETBaSyx set command.protected java.nio.channels.SocketChannelcommChannelSocket communication channel.private static org.slf4j.Loggerloggerprotected org.eclipse.basyx.vab.coder.json.provider.JSONProvider<ModelProvider>providerBackendReference to IModelProvider backend.
-
Constructor Summary
Constructors Constructor Description VABBaSyxTCPInterface(ModelProvider modelProviderBackend, java.nio.channels.SocketChannel channel)Constructor that accepts an already created server socket channel.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidprocessInputFrame(byte[] rxFrame)Process input frame.protected voidreadBytes(java.nio.ByteBuffer bytes, int expectedBytes)Read a number of bytes.voidrun()Thread main function.private voidsendResponseFrame(java.io.ByteArrayOutputStream byteArrayOutput)Sends a response to the client that carries the JSON response.private voidsendResponseFrame(java.io.ByteArrayOutputStream byteArrayOutput, int result)Sends a response to the client that carries the JSON response.-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
Field Detail
-
BASYX_GET
public static final byte BASYX_GET
BaSyx get command.- See Also:
- Constant Field Values
-
BASYX_SET
public static final byte BASYX_SET
BaSyx set command.- See Also:
- Constant Field Values
-
BASYX_CREATE
public static final byte BASYX_CREATE
BaSyx create command.- See Also:
- Constant Field Values
-
BASYX_DELETE
public static final byte BASYX_DELETE
BaSyx delete command.- See Also:
- Constant Field Values
-
BASYX_INVOKE
public static final byte BASYX_INVOKE
BaSyx invoke command.- See Also:
- Constant Field Values
-
BASYX_RESULT_OK
public static final byte BASYX_RESULT_OK
BaSyx result 'OK' : 0x00.- See Also:
- Constant Field Values
-
logger
private static org.slf4j.Logger logger
-
providerBackend
protected org.eclipse.basyx.vab.coder.json.provider.JSONProvider<ModelProvider extends org.eclipse.basyx.vab.modelprovider.api.IModelProvider> providerBackend
Reference to IModelProvider backend.
-
commChannel
protected java.nio.channels.SocketChannel commChannel
Socket communication channel.
-
-
Constructor Detail
-
VABBaSyxTCPInterface
public VABBaSyxTCPInterface(ModelProvider modelProviderBackend, java.nio.channels.SocketChannel channel)
Constructor that accepts an already created server socket channel.- Parameters:
modelProviderBackend- model provider backendchannel- channel
-
-
Method Detail
-
processInputFrame
public void processInputFrame(byte[] rxFrame) throws java.io.IOExceptionProcess input frame.- Parameters:
rxFrame- received frame- Throws:
java.io.IOException- if I/O operations fail
-
sendResponseFrame
private void sendResponseFrame(java.io.ByteArrayOutputStream byteArrayOutput) throws java.io.IOExceptionSends a response to the client that carries the JSON response.- Parameters:
byteArrayOutput- the output- Throws:
java.io.IOException- in case of I/O exceptions
-
sendResponseFrame
private void sendResponseFrame(java.io.ByteArrayOutputStream byteArrayOutput, int result) throws java.io.IOExceptionSends a response to the client that carries the JSON response.- Parameters:
byteArrayOutput- the outputresult- the result- Throws:
java.io.IOException- in case of I/O exceptions
-
readBytes
protected void readBytes(java.nio.ByteBuffer bytes, int expectedBytes) throws java.io.IOExceptionRead a number of bytes.- Parameters:
bytes- the buffer to read fromexpectedBytes- the expected bytes- Throws:
java.io.IOException- if the information cannot be read
-
run
public void run()
Thread main function.- Specified by:
runin interfacejava.lang.Runnable- Overrides:
runin classjava.lang.Thread
-
-