meshtastic-protobuf/meshtastic/storeforward.proto

219 wiersze
4.0 KiB
Protocol Buffer

syntax = "proto3";
package meshtastic;
option csharp_namespace = "Meshtastic.Protobufs";
option go_package = "github.com/meshtastic/go/generated";
option java_outer_classname = "StoreAndForwardProtos";
option java_package = "com.geeksville.mesh";
option swift_prefix = "";
/*
* TODO: REPLACE
*/
message StoreAndForward {
/*
* 001 - 063 = From Router
* 064 - 127 = From Client
*/
enum RequestResponse {
/*
* Unset/unused
*/
UNSET = 0;
/*
* Router is an in error state.
*/
ROUTER_ERROR = 1;
/*
* Router heartbeat
*/
ROUTER_HEARTBEAT = 2;
/*
* Router has requested the client respond. This can work as a
* "are you there" message.
*/
ROUTER_PING = 3;
/*
* The response to a "Ping"
*/
ROUTER_PONG = 4;
/*
* Router is currently busy. Please try again later.
*/
ROUTER_BUSY = 5;
/*
* Router is responding to a request for history.
*/
ROUTER_HISTORY = 6;
/*
* Router is responding to a request for stats.
*/
ROUTER_STATS = 7;
/*
* Router sends a text message from its history that was a direct message.
*/
ROUTER_TEXT_DIRECT = 8;
/*
* Router sends a text message from its history that was a broadcast.
*/
ROUTER_TEXT_BROADCAST = 9;
/*
* Client is an in error state.
*/
CLIENT_ERROR = 64;
/*
* Client has requested a replay from the router.
*/
CLIENT_HISTORY = 65;
/*
* Client has requested stats from the router.
*/
CLIENT_STATS = 66;
/*
* Client has requested the router respond. This can work as a
* "are you there" message.
*/
CLIENT_PING = 67;
/*
* The response to a "Ping"
*/
CLIENT_PONG = 68;
/*
* Client has requested that the router abort processing the client's request
*/
CLIENT_ABORT = 106;
}
/*
* TODO: REPLACE
*/
message Statistics {
/*
* Number of messages we have ever seen
*/
uint32 messages_total = 1;
/*
* Number of messages we have currently saved our history.
*/
uint32 messages_saved = 2;
/*
* Maximum number of messages we will save
*/
uint32 messages_max = 3;
/*
* Router uptime in seconds
*/
uint32 up_time = 4;
/*
* Number of times any client sent a request to the S&F.
*/
uint32 requests = 5;
/*
* Number of times the history was requested.
*/
uint32 requests_history = 6;
/*
* Is the heartbeat enabled on the server?
*/
bool heartbeat = 7;
/*
* Maximum number of messages the server will return.
*/
uint32 return_max = 8;
/*
* Maximum history window in minutes the server will return messages from.
*/
uint32 return_window = 9;
}
/*
* TODO: REPLACE
*/
message History {
/*
* Number of that will be sent to the client
*/
uint32 history_messages = 1;
/*
* The window of messages that was used to filter the history client requested
*/
uint32 window = 2;
/*
* Index in the packet history of the last message sent in a previous request to the server.
* Will be sent to the client before sending the history and can be set in a subsequent request to avoid getting packets the server already sent to the client.
*/
uint32 last_request = 3;
}
/*
* TODO: REPLACE
*/
message Heartbeat {
/*
* Period in seconds that the heartbeat is sent out that will be sent to the client
*/
uint32 period = 1;
/*
* If set, this is not the primary Store & Forward router on the mesh
*/
uint32 secondary = 2;
}
/*
* TODO: REPLACE
*/
RequestResponse rr = 1;
/*
* TODO: REPLACE
*/
oneof variant {
/*
* TODO: REPLACE
*/
Statistics stats = 2;
/*
* TODO: REPLACE
*/
History history = 3;
/*
* TODO: REPLACE
*/
Heartbeat heartbeat = 4;
/*
* Text from history message.
*/
bytes text = 5;
}
}