Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

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

(Exceptions)
Line 158: Line 158:
 
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.
 
=== Exceptions ===
 
=== Exceptions ===
 +
If one of the parent elements specified in the path does not exist, a ResourceNotFound exception will be returned.
 +
 
If the property already exists, a ResourceAlreadyExists exception will be returned.
 
If the property already exists, a ResourceAlreadyExists exception will be returned.
  
Line 231: Line 233:
  
 
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.
 +
===Exceptions===
 +
If invoke is called on an object that is not a function, a ProviderException will be returned.

Revision as of 10:10, 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.

Exceptions

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.

Exceptions

If the parent element of the property specified in the path is a list, a ResourceNotFound Exception is returned.

If another error occurs while trying to set the property, a MalformedRequest Exception is returned.

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.

Exceptions

If one of the parent elements specified in the path does not exist, a ResourceNotFound exception will be returned.

If the property already exists, a ResourceAlreadyExists exception will be returned.

If the new property could not be created, a MalformedRequest exception will be returned.

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.

Exceptions

If the property specified in the path does not exist, a PropertyNotFound exception is returned.

If the property could not be deleted, a MalformedRequest exception is returned.

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.

Exceptions

If invoke is called on an object that is not a function, a ProviderException will be returned.

Back to the top