diff options
-rw-r--r-- | protocol/udm.proto | 73 |
1 files changed, 57 insertions, 16 deletions
diff --git a/protocol/udm.proto b/protocol/udm.proto index c928882..0035489 100644 --- a/protocol/udm.proto +++ b/protocol/udm.proto @@ -19,6 +19,9 @@ */ +//TODO: write readable proto description + + enum MODULE_UI_ELEMENT_TYPE { UI_EMPTY = 0; //helper type to set empty element @@ -32,13 +35,26 @@ enum MODULE_UI_ELEMENT_TYPE { message module_ui_element_info { optional MODULE_UI_ELEMENT_TYPE type = 1 [default = UI_EMPTY]; repeated module_ui_element_info children = 2; - required string id = 3; //internal element id used to get element value - optional string name = 4 [default = "not set"]; + required string id = 3; //internal element id used to get element value (should be unique for every loaded module) + optional string name = 4 [default = "not set"]; //can be non unique +} + +message server_ui_element_data_reply { + required string id = 1; //should be unique for every loaded module + required string data = 2; +} + +message client_ui_element_data_request { + repeated string id = 1; //should be unique for for every loaded module } +//TODO: settings: +// children ? +// dependencies +// groups ? + message setting { - required string id = 1; - optional string name = 2 [default = "not set"]; + optional string name = 2 [default = "not set"]; //should be unique for every loaded module optional string default_value = 3 [default = "empty"]; optional string value = 4 [default = "empty"]; } @@ -47,20 +63,20 @@ message settings_info { repeated setting settings = 1; } +//settings_info may be unset here (server settings dependent), can be requested at any time + message module_info { - required string name = 1; + required string name = 1; //unique (used as module id) required string version = 2; optional string decription = 3 [default = "no description specified"]; + required settings_info settings = 4; //may be ampty + repeated module_ui_element_info ui = 5; //always complete here } -enum CLIENT_MSG_TYPE { - CLIENT_AUTH_REQUEST = 0; - CLIENT_DATA_TRANSFER_REQUEST = 1; -} message client_auth_info { @@ -68,30 +84,55 @@ message client_auth_info { required string password = 2; } -message client_data_transfer_info { - optional int64 data_size = 1; + +//TODO: datatransfer proto part +// it should be in separate connection +// it should be very simple +// it should have as smaal overhead as possible, better none at all +//vaviant 1: client: > request peace of data +// server: < reply "peace of data" size or error +// client: if no error and data size is sane start reading "data size" +// done, server can handle more commands now + +//message client_data_transfer_request { +//} + +//message server_data_transfer_reply { +//} + + +//TOOD: extended ui updates subscriptions proto part (ui data messages on timer, e.t.c.) + +//TODO: settings transfer proto part (read, write, notifications ?) + +enum CLIENT_MSG_TYPE { + CLIENT_AUTH_REQUEST = 0; + CLIENT_DATA_TRANSFER_REQUEST = 1; + CLIENT_UI_DATA_REQUEST = 2; } message client_msg { required CLIENT_MSG_TYPE type = 1; - optional string auth_token = 2; + optional string auth_token = 2; //this must be set in all message type's except CLIENT_AUTH_REQUEST optional client_auth_info auth_info = 3; - optional client_data_transfer_info data_transfer_info = 4; + optional client_ui_element_data_request ui_element_data_request = 4; } enum SERVER_MSG_TYPE { SERVER_AUTH_REPLY = 0; + SERVER_UI_DATA_REPLY = 1; } message server_auth_info { - required bool status = 1; - optional string auth_token = 2; - optional string error_description = 3; + required bool status = 1; //true == success, false == error + optional string auth_token = 2; //must be set if no error + optional string error_description = 3; //readable description must be set on error } message server_msg { required SERVER_MSG_TYPE type = 1; + optional server_ui_element_data_reply ui_element_data_reply = 2; } |