ESPectre SDK
2.8.0-280-gac7af68
Wi-Fi CSI motion sensing for ESP32 firmware
Toggle main menu visibility
Loading...
Searching...
No Matches
direct_websocket_protocol.h
Go to the documentation of this file.
1
/*
2
* ESPectre - Direct WebSocket Protocol
3
*
4
* Versioned request, response, error, and event envelopes for the local
5
* Direct WebSocket transport.
6
*
7
* Author: Francesco Pace <francesco.pace@gmail.com>
8
* SPDX-License-Identifier: GPL-3.0-only
9
* Commercial licensing available under separate agreement; see LICENSING.md.
10
*/
11
#pragma once
12
13
#include <cstddef>
14
#include <string>
15
16
namespace
espectre
{
17
18
struct
EspectreCommand
;
19
20
inline
constexpr
const
char
*
ESPECTRE_DIRECT_WEBSOCKET_ENDPOINT
=
"/espectre/v1/ws"
;
21
inline
constexpr
const
char
*
ESPECTRE_DIRECT_WEBSOCKET_SUBPROTOCOL
=
"espectre.v1"
;
22
inline
constexpr
unsigned
ESPECTRE_DIRECT_ENVELOPE_VERSION
= 1U;
23
inline
constexpr
size_t
ESPECTRE_DIRECT_MAX_FRAME_SIZE
= 4096U;
24
inline
constexpr
size_t
ESPECTRE_DIRECT_MAX_REQUEST_ID_SIZE
= 64U;
25
inline
constexpr
size_t
ESPECTRE_DIRECT_MAX_METHOD_SIZE
= 64U;
26
27
struct
DirectWebSocketRequest
{
28
std::string
id
;
29
std::string
method
;
30
/** Validated JSON object containing method parameters. */
31
std::string
params
{
"{}"
};
32
};
33
34
bool
parse_direct_websocket_request
(
const
std::string &payload,
35
DirectWebSocketRequest
*request,
36
std::string *error =
nullptr
);
37
bool
direct_websocket_request_to_command
(
const
DirectWebSocketRequest
&request,
38
EspectreCommand
*command,
39
std::string *error =
nullptr
);
40
41
std::string
direct_websocket_success_response
(
const
std::string &
id
,
const
std::string &result_json =
"{}"
);
42
std::string
direct_websocket_error_response
(
const
std::string &
id
,
43
const
char
*code,
44
const
char
*message);
45
std::string
direct_websocket_event
(
const
char
*event,
const
std::string &data_json);
46
47
}
// namespace espectre
espectre
Definition
espectre_sdk_version.h:62
espectre::ESPECTRE_DIRECT_ENVELOPE_VERSION
constexpr unsigned ESPECTRE_DIRECT_ENVELOPE_VERSION
Definition
direct_websocket_protocol.h:22
espectre::parse_direct_websocket_request
bool parse_direct_websocket_request(const std::string &payload, DirectWebSocketRequest *request, std::string *error=nullptr)
espectre::direct_websocket_success_response
std::string direct_websocket_success_response(const std::string &id, const std::string &result_json="{}")
espectre::ESPECTRE_DIRECT_MAX_FRAME_SIZE
constexpr size_t ESPECTRE_DIRECT_MAX_FRAME_SIZE
Definition
direct_websocket_protocol.h:23
espectre::ESPECTRE_DIRECT_MAX_METHOD_SIZE
constexpr size_t ESPECTRE_DIRECT_MAX_METHOD_SIZE
Definition
direct_websocket_protocol.h:25
espectre::ESPECTRE_DIRECT_WEBSOCKET_ENDPOINT
constexpr const char * ESPECTRE_DIRECT_WEBSOCKET_ENDPOINT
Definition
direct_websocket_protocol.h:20
espectre::direct_websocket_error_response
std::string direct_websocket_error_response(const std::string &id, const char *code, const char *message)
espectre::ESPECTRE_DIRECT_MAX_REQUEST_ID_SIZE
constexpr size_t ESPECTRE_DIRECT_MAX_REQUEST_ID_SIZE
Definition
direct_websocket_protocol.h:24
espectre::direct_websocket_request_to_command
bool direct_websocket_request_to_command(const DirectWebSocketRequest &request, EspectreCommand *command, std::string *error=nullptr)
espectre::direct_websocket_event
std::string direct_websocket_event(const char *event, const std::string &data_json)
espectre::ESPECTRE_DIRECT_WEBSOCKET_SUBPROTOCOL
constexpr const char * ESPECTRE_DIRECT_WEBSOCKET_SUBPROTOCOL
Definition
direct_websocket_protocol.h:21
espectre::DirectWebSocketRequest
Definition
direct_websocket_protocol.h:27
espectre::DirectWebSocketRequest::id
std::string id
Definition
direct_websocket_protocol.h:28
espectre::DirectWebSocketRequest::params
std::string params
Validated JSON object containing method parameters.
Definition
direct_websocket_protocol.h:31
espectre::DirectWebSocketRequest::method
std::string method
Definition
direct_websocket_protocol.h:29
espectre::EspectreCommand
A parsed control command.
Definition
espectre_protocol.h:160
src
cpp
runtime
direct_websocket_protocol.h
Generated by
1.17.0