invoke() method for the Service
| Size in bits | Data Type | Content |
|---|---|---|
| 32 | int | MAGIC keyword[1]
The MAGIC keyword value is
0xDA666 |
| 64 | long | Service ID |
| 8 or 16[2]
Size depends on the value of the
charAs8Bits property |
char[3]
If
charAs8Bits is true, this is a C-type char on 8 bits, encoded on 1 byte, which is equivalent to a Java byte. A Java char would have been encoded on 2 bytes, so on 16 bits. Because of that, the regular encoding way in Java for a char value would be for example with Netty:
byte b = (byte)charValue; byteBuf.writeByte(b);If charAs8Bits is false, this is a Java-type char on 16 bits, encoded on 2 bytes. |
INVOKE keyword[4]
The INVOKE keyword value is
0x01 |
| 64 | long | Time stamp (See Time stamp) |
| 64 | long | Request ID (different from 0 if the invocation corresponds to a request) |
| N/A | N/A | Service content (see Service content) |
| Size in bits | Data Type | Content |
|---|---|---|
| 32 | int | MAGIC keyword[1]
The MAGIC keyword value is
0xDA666 |
| 64 | long | Service ID |
| 8 or 16[2]
Size depends on the value of the
charAs8Bits property |
char[3]
If
charAs8Bits is true, this is a C-type char on 8 bits, encoded on 1 byte, which is equivalent to a Java byte. A Java char would have been encoded on 2 bytes, so on 16 bits. Because of that, the regular encoding way in Java for a char value would be for example with Netty:
byte b = (byte)charValue; byteBuf.writeByte(b);If charAs8Bits is false, this is a Java-type char on 16 bits, encoded on 2 bytes. |
EXCEPTION keyword[5]
The EXCEPTION keyword value is
0x04 |
| 8 or 16[2]
Size depends on the value of the
charAs8Bits property |
char[3]
If
charAs8Bits is true, this is a C-type char on 8 bits, encoded on 1 byte, which is equivalent to a Java byte. A Java char would have been encoded on 2 bytes, so on 16 bits. Because of that, the regular encoding way in Java for a char value would be for example with Netty:
byte b = (byte)charValue; byteBuf.writeByte(b);If charAs8Bits is false, this is a Java-type char on 16 bits, encoded on 2 bytes. |
error type (see error types) |
| 64 | long | Time stamp (See Time stamp) |
| 64 | long | Request ID (different from 0 if the error corresponds to an invalid request) |
| Name | Value | Meaning |
|---|---|---|
| ERROR_NO_ERROR | 0x00 |
No error, should never be set to this value |
| ERROR_TIMEOUT | 0x01 |
Timeout error, normally not sent by the Network |
| ERROR_INVALID_REQUEST | 0x02 |
Invalid request error |
<publish name="position" > <data name="latitude" type="float" /> <data name="longitude" type="float" /> <data name="altitude" type="float" /> </publish>The order in which the datas will be sent will be:
| Data Type | Size in bits | Content |
|---|---|---|
| int enum |
32 | signed int value |
| short | 16 | signed short value |
| long | 64 | signed long value |
| byte | 8 | byte value |
| char | 8 or 16[2]
Size depends on the value of the
charAs8Bits property |
signed char value[3]
If
charAs8Bits is true, this is a C-type char on 8 bits, encoded on 1 byte, which is equivalent to a Java byte. A Java char would have been encoded on 2 bytes, so on 16 bits. Because of that, the regular encoding way in Java for a char value would be for example with Netty:
byte b = (byte)charValue; byteBuf.writeByte(b);If charAs8Bits is false, this is a Java-type char on 16 bits, encoded on 2 bytes. |
| float | 32 | IEEE float value |
| double | 64 | IEEE double value |
| boolean nil[6] nil elements will always have the 0x00 (false) value |
8 | 0x00 (false) or 0x01 (true) |
| string | 32 + {8+} or 32 + {16+}[2]
Size depends on the value of the
charAs8Bits property |
String length: int, characters: array of chars[7]
There is no \0 char for the end of the String
[3]
If
charAs8Bits is true, this is a C-type char on 8 bits, encoded on 1 byte, which is equivalent to a Java byte. A Java char would have been encoded on 2 bytes, so on 16 bits. Because of that, the regular encoding way in Java for a char value would be for example with Netty:
byte b = (byte)charValue; byteBuf.writeByte(b);If charAs8Bits is false, this is a Java-type char on 16 bits, encoded on 2 bytes. |
| Data Type | Size in bits | Content |
|---|---|---|
| int | 32 | array size |
| N/A | N/A | {value for each element in the array} |
| Data Type | Size in bits | Content |
|---|---|---|
| N/A | N/A | {value for each field in the structure} (in the order of their definition) |
| Data Type | Size in bits | Content |
|---|---|---|
| int | 32 | Union variant |
| N/A | N/A | value for the current member of the Union (corresponding to the variant) |
| Data Type | Size in bits | Content |
|---|---|---|
| int | 32 | Map size |
| N/A | N/A | {value for each key, value for each value} |
Time stamp value allows specifies the time stamp value for the Service (see Java modules service interface). 0xDA666charAs8Bits propertycharAs8Bits is true, this is a C-type char on 8 bits, encoded on 1 byte, which is equivalent to a Java byte. A Java char would have been encoded on 2 bytes, so on 16 bits. Because of that, the regular encoding way in Java for a char value would be for example with Netty:
byte b = (byte)charValue; byteBuf.writeByte(b);If
charAs8Bits is false, this is a Java-type char on 16 bits, encoded on 2 bytes.0x010x04nil elements will always have the 0x00 (false) valueCopyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence