2.1 KiB
Protocol
This document introduce the protocol used between Basalt Presenter and Basalt Trainer.
If there is no specific description, the endian of data is native endian, and the alignment also is native. Because all data are transmitted in local machine, so we use native layout.
Command Protocol
Before introducing command protocol, it would be better to the priniciple, that Presenter is the slave application, and Trainer is the master application.
Command protocol is tramsmitted by system named pipe.
The name of pipe is \\.\pipe\ed0e3f1f-d214-4880-9562-640bce15e72e on Windows
or /tmp/ed0e3f1f-d214-4880-9562-640bce15e72e on POSIX.
| Code | Direction | Comment |
|---|---|---|
0x61 |
Presenter<--Trainer | Handshake code (Are Presenter ready?) |
0x62 |
Presenter-->Trainer | Handshake code (Presenter is ready). |
0x01 |
Presenter-->Trainer | Data was ready. Please Trainer receive it. |
0x02 |
Presenter<--Trainer | Data has been received. Please go into next loop. |
0x71 |
Presenter-->Trainer | Actively Stop (Presenter request stop). |
0x71 |
Presenter<--Trainer | Stop (Trainer agree the stop request, or trainer actively stop). |
Handshake
At the beginning of execution, Trainer send handshake code to Presenter first and then Presenter send another handshake code to Trainer back. After this, both 2 applications start running.
When Trainer send handshake code, Trainer should attach some values following it to indicate some essential properties of data which instruct Representer how to generate data. There is a table introduce these properties:
| Data Type | Comment |
|---|---|
| u8 | The pixel kind of image |
| u32 | The width of image |
| u32 | The height of image |
For the all possible values of "pixel kind" in above table, there is also a table:
| Value | Comment |
|---|---|
0x01 |
Grayscale represented by one float32 |
0x02 |
Grayscale represented by one u8 |
0x03 |
RGB represented by three float32 |
0x04 |
RGB represented by three u8 |
Data Protocol
Pipe
For this kind deliver, it is tramsmitted by system named pipe.
The name of pipe is \\.\pipe\ebe2a39d-75de-4cf4-933f-c50284149d63 on Windows
or /tmp/ebe2a39d-75de-4cf4-933f-c50284149d63 on POSIX.