Skip to main content
Jump to: navigation, search

Difference between revisions of "BaSyx / Documentation / VAB / TCP Mapping"

m
m
Line 73: Line 73:
  
 
Currently, the result will always be ''0x00'' with exceptions encoded in the returned string.
 
Currently, the result will always be ''0x00'' with exceptions encoded in the returned string.
If the property specified in the path does not exist, a ResourceNotFound Exception will be returned in the value field.
+
 
If another error occurs and the property can't be retrieved, a MalformedRequest Exception will be returned in the value field.
+
If the property specified in the path does not exist, a ResourceNotFound Exception will be returned.
 +
 
 +
If the parent element of the specified property is a list, a ResourceNotFound Exception will be returned.
 +
 
 +
If another error occurs and the property can't be retrieved, a MalformedRequest Exception will be returned.
  
 
== UPDATE ==
 
== UPDATE ==
Line 112: Line 116:
  
 
Currently, the result will always be ''0x00'' with exceptions encoded in the returned string.
 
Currently, the result will always be ''0x00'' with exceptions encoded in the returned string.
 +
  
 
== CREATE ==
 
== CREATE ==

Revision as of 08:29, 20 May 2020

See also HTTP/REST Mapping JSON Serialization

BaSyx defines a mapping of the VAB primitives to a TCP protocol, called BaSyx Native.

General Frame Format

Each BaSyx Native frame is divided into two fields. These fields define message size and message payload. Due to this, the receiver can create a appropriate sized buffer.

If a message is received with size > Message Length, an error is assumed and the message it is discarded.

Length Field
4 Byte, LSB first Payload Length
Variable, as defined in Payload Length Message payload

String Encoding

Strings are encoded in the following scheme:

Length Field
4 Byte, LSB first String Length
Variable, as defined in String Length String content, without null termination

Object Encoding

Collections/Maps are serialized to a string as defined in the JSON serialization and send as a string as defined above.

Primitive Mapping

For a detailed description of the primitives, see the VAB documentation.

RETRIEVE

Request

Length Field Value
1 Byte Command 0x01
<variable> Path to element as string

Response

Length Field
1 Byte Result
<variable> Value serialized as JSON

Currently, the result will always be 0x00 with exceptions encoded in the returned string.

If the property specified in the path does not exist, a ResourceNotFound Exception will be returned.

If the parent element of the specified property is a list, a ResourceNotFound Exception will be returned.

If another error occurs and the property can't be retrieved, a MalformedRequest Exception will be returned.

UPDATE

Request

Length Field Value
1 Byte Command 0x02
<variable> Path to element as string
<variable> Value serialized as JSON

Response

Length Field
1 Byte Result
<variable> Value serialized as JSON

Currently, the result will always be 0x00 with exceptions encoded in the returned string.


CREATE

Request

Length Field Value
1 Byte Command 0x03
<variable> Path to element as string
<variable> Value serialized as JSON

Response

Length Field
1 Byte Result
<variable> Value serialized as JSON

Currently, the result will always be 0x00 with exceptions encoded in the returned string.

DELETE

Request

Length Field Value
1 Byte Command 0x04
<variable> Path to element as string

Response

Length Field
1 Byte Result

Currently, the result will always be 0x00 with exceptions encoded in the returned string.

INVOKE

Request

Length Field Value
1 Byte Command 0x05
<variable> Path to operations as string
<variable> Return value serialized as JSON

Response

Length Field
1 Byte Result
<variable> Value serialized as JSON


Currently, the result will always be 0x00 with exceptions encoded in the returned string.

Back to the top