syntax = "proto3"; package payload; enum Status // This must match precisely the Status list from // status_definitions.h { OK = 0; BUSY = 1; UNREACHABLE = 2; INVALID_ARGUMENT = 3; UNAVAILABLE = 4; GENERIC_ERROR = 5; } enum ServerStatus { REQUEST_ACCEPTED = 0; REQUEST_UNKNOWN = 1; } message ImagerInfo { string name = 10; } message CardImageVersion { string kernelversion = 10; string sdversion = 20; string ubootversion = 30; } message SensorsInfo { ImagerInfo image_sensors = 30; // Information abouth available depth sensors } // TO DO: move this to a common file to be shared with USB message DriverConfiguration { string depthBits = 10; string abBits = 20; string confBits = 30; string pixelFormat = 40; int32 driverWidth = 50; int32 driverHeigth = 60; int32 pixelFromatIndex = 70; } // TO DO: move this to a common file to be shared with USB message DepthSensorModeDetails { string mode = 10; repeated string frame_content = 20; uint32 mode_number = 30; int32 pixel_format_index = 40; int32 frame_width_in_bytes = 50; int32 frame_height_in_bytes = 60; int32 base_resolution_width = 70; int32 base_resolution_height = 80; int32 metadata_size = 90; int32 is_pcm = 100; int32 number_of_phases = 110; int32 number_of_frequencies = 120; repeated DriverConfiguration driver_configuration = 130; } message ClientRequest { string func_name = 10; // Name of an API function repeated int32 func_int32_param = 20; // List of function parameters of type int32 repeated float func_float_param = 30; // List of function parameters of type float repeated bytes func_bytes_param = 40; // List of function parameters of type byte-array repeated string func_strings_param = 45; // List of function parameters of type string bool expect_reply = 50; // Whether a response with data is expected or not DepthSensorModeDetails mode_details = 60; // Frame type information } message ServerResponse { string device_handle = 10; // The handle of the device Status status = 20; // Status of operation requested by the client request repeated int32 int32_payload = 30; // List of structures of type int32 for // transporting data back to client repeated float float_payload = 40; // List of structures of type float for // transporting data back to client repeated bytes bytes_payload = 50; // List of structures of type byte-array // for transporting data back to client repeated string strings_payload = 55; // List of strings for transporting data back to client ServerStatus server_status = 60; // Status reported by server regarding the client request DepthSensorModeDetails depth_sensor_mode_details = 70; // List of supported frame types SensorsInfo sensors_info = 80; // List of information about existing devices // on the same platform as the server string message = 90; // Additional message (if any) CardImageVersion card_image_version = 100; bool interrupt_occured = 110; // Whether an interrupt occured since last // interaction with the server }