Create home
commit
92bcdb3ede
1 changed files with 181 additions and 0 deletions
181
home.md
Normal file
181
home.md
Normal file
|
@ -0,0 +1,181 @@
|
||||||
|
This is how the Bluetooth protocol works:
|
||||||
|
Please note:
|
||||||
|
Some design choices, like sending one reply/request per set and parameter, may seem strange. This decision was made because it is not possible to send large amounts of data at once via BluetoothLE.
|
||||||
|
# Format definition
|
||||||
|
## Request
|
||||||
|
A request looks like this:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"header":<command>,
|
||||||
|
"data":"<command data>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`<command>` is the command (see below).
|
||||||
|
`<data>` is some additional data required for the command (see below).
|
||||||
|
|
||||||
|
## Reply
|
||||||
|
A reply will look like this:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status":"<status code>",
|
||||||
|
"header":<command>,
|
||||||
|
"body":"<data>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`<command>` is the command the reply is answering to.
|
||||||
|
`<status code>` is the return code of the request, similar to an HTTP status code (see below).
|
||||||
|
`<data>` is additional data the command returned (see below).
|
||||||
|
|
||||||
|
# Status codes
|
||||||
|
```cpp
|
||||||
|
enum OmobiDisplayStatusCode
|
||||||
|
{
|
||||||
|
Success = 200,
|
||||||
|
BadRequestError = 400,
|
||||||
|
Unauthorized = 401,
|
||||||
|
InternalError = 500,
|
||||||
|
DisplayControllerError = 501
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
# Text set parameters
|
||||||
|
```cpp
|
||||||
|
enum DisplayTextSetParameter
|
||||||
|
{
|
||||||
|
TextParameter = 0,
|
||||||
|
ActiveParameter,
|
||||||
|
RuntimeParameter,
|
||||||
|
ColorParameter,
|
||||||
|
AlignmentParameter,
|
||||||
|
ScrollParameter,
|
||||||
|
ScrollSpeedParameter,
|
||||||
|
ScrollCountParameter,
|
||||||
|
IndexParameter,
|
||||||
|
DisplayTextSetParameterCount /*!< Just for helping purposes */
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
# Display controller error
|
||||||
|
```cpp
|
||||||
|
enum GetSetTextSetParameterExitCode
|
||||||
|
{
|
||||||
|
Success,
|
||||||
|
InvalidParameterError,
|
||||||
|
ParameterNotWritableError,
|
||||||
|
ValueOutOfRangeError,
|
||||||
|
IndexOutOfRangeError,
|
||||||
|
ValueIsNullptrError,
|
||||||
|
InternalError
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
# Commands
|
||||||
|
## General commands
|
||||||
|
### `0` - Authenticate
|
||||||
|
Command to initially authenticate with the display.
|
||||||
|
This is requited in order to execute any other command (except keep alive).
|
||||||
|
#### Request data
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"secret": "<display secret>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`<display secret>` is the secret of the display. It is `sha256(<display address><display code>)` in hex representation. The default for `<display code>` is `1234`.
|
||||||
|
The `<display code>` can be changed using command `22`.
|
||||||
|
#### Reply data
|
||||||
|
`null`
|
||||||
|
|
||||||
|
### `1` - Keep alive
|
||||||
|
This command has to be sent at leas every 10 seconds! Otherwise, the client will be disconnected from the display.
|
||||||
|
#### Request data
|
||||||
|
`null`
|
||||||
|
#### Reply data
|
||||||
|
`null`
|
||||||
|
|
||||||
|
## Getter commands
|
||||||
|
### `10` - Get all text sets
|
||||||
|
Command to get all text sets stored on the display.
|
||||||
|
#### Specialties
|
||||||
|
Before this command will be directly replied to, there will potentially be a lot of replies with the header `11`, one for each parameter of each existing text set. See `11` for more Information.
|
||||||
|
#### Request data
|
||||||
|
`null`
|
||||||
|
#### Reply data
|
||||||
|
`null`
|
||||||
|
|
||||||
|
### `11` - Get a parameter of a text set
|
||||||
|
Command to get a specific parameter of a single text set.
|
||||||
|
#### Specialties
|
||||||
|
This command can not be used for requests. It is only used to reply to a `10` command!
|
||||||
|
#### Request data
|
||||||
|
`null`
|
||||||
|
#### Reply data
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"index":<text set index>,
|
||||||
|
"parameter":<parameter>,
|
||||||
|
"value":"<parameter value>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### `12`- Get display brightness
|
||||||
|
Command to get the current brightness of the display.
|
||||||
|
#### Request data
|
||||||
|
`null`
|
||||||
|
#### Reply data
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"displayBrightness":<display brightness>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`<display brightness>` is between 0 and 255
|
||||||
|
|
||||||
|
## Setter commands
|
||||||
|
### `20` - Set text set parameter
|
||||||
|
Command to set a single parameter of a single set. To create a new text set, just edit its index.
|
||||||
|
#### Request data
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"index":<text set index>,
|
||||||
|
"parameter":<text set parameter>,
|
||||||
|
"value":<value>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
#### Reply data
|
||||||
|
`null`
|
||||||
|
|
||||||
|
### `21` - Set display brightness
|
||||||
|
Command to set the current brightness of the display
|
||||||
|
#### Request data
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"displayBrightness":<display brightness>
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`<display brightness>` is between 0 and 255
|
||||||
|
#### Reply data
|
||||||
|
`null`
|
||||||
|
|
||||||
|
### `22` - Set display code
|
||||||
|
Command to modify the code of the display that is used for authentication (see `0`).
|
||||||
|
#### Request data
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"displayCode":"<display code>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
#### Reply data
|
||||||
|
`null`
|
||||||
|
|
||||||
|
### `23` - Set display name
|
||||||
|
Command to modify the name of the display
|
||||||
|
#### Specialties
|
||||||
|
This command requires the display (and some clients) to be rebooted in order to take effect.
|
||||||
|
#### Request data
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"displayName":"<display name"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
#### Reply data
|
||||||
|
`null`
|
Loading…
Reference in a new issue