ESPectre SDK 2.8.0-280-gac7af68
Wi-Fi CSI motion sensing for ESP32 firmware
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
16namespace espectre {
17
18struct EspectreCommand;
19
20inline constexpr const char *ESPECTRE_DIRECT_WEBSOCKET_ENDPOINT = "/espectre/v1/ws";
21inline constexpr const char *ESPECTRE_DIRECT_WEBSOCKET_SUBPROTOCOL = "espectre.v1";
22inline constexpr unsigned ESPECTRE_DIRECT_ENVELOPE_VERSION = 1U;
23inline constexpr size_t ESPECTRE_DIRECT_MAX_FRAME_SIZE = 4096U;
24inline constexpr size_t ESPECTRE_DIRECT_MAX_REQUEST_ID_SIZE = 64U;
25inline constexpr size_t ESPECTRE_DIRECT_MAX_METHOD_SIZE = 64U;
26
28 std::string id;
29 std::string method;
30 /** Validated JSON object containing method parameters. */
31 std::string params{"{}"};
32};
33
34bool parse_direct_websocket_request(const std::string &payload,
36 std::string *error = nullptr);
38 EspectreCommand *command,
39 std::string *error = nullptr);
40
41std::string direct_websocket_success_response(const std::string &id, const std::string &result_json = "{}");
42std::string direct_websocket_error_response(const std::string &id,
43 const char *code,
44 const char *message);
45std::string direct_websocket_event(const char *event, const std::string &data_json);
46
47} // namespace espectre
constexpr unsigned ESPECTRE_DIRECT_ENVELOPE_VERSION
bool parse_direct_websocket_request(const std::string &payload, DirectWebSocketRequest *request, std::string *error=nullptr)
std::string direct_websocket_success_response(const std::string &id, const std::string &result_json="{}")
constexpr size_t ESPECTRE_DIRECT_MAX_FRAME_SIZE
constexpr size_t ESPECTRE_DIRECT_MAX_METHOD_SIZE
constexpr const char * ESPECTRE_DIRECT_WEBSOCKET_ENDPOINT
std::string direct_websocket_error_response(const std::string &id, const char *code, const char *message)
constexpr size_t ESPECTRE_DIRECT_MAX_REQUEST_ID_SIZE
bool direct_websocket_request_to_command(const DirectWebSocketRequest &request, EspectreCommand *command, std::string *error=nullptr)
std::string direct_websocket_event(const char *event, const std::string &data_json)
constexpr const char * ESPECTRE_DIRECT_WEBSOCKET_SUBPROTOCOL
std::string params
Validated JSON object containing method parameters.
A parsed control command.