syntax = "proto3"; package handyplug; /* [ { "Ok": { "Id": 1 } } ] */ message Ok { uint32 Id = 1; } /* [ { "Error": { "Id": 1, "ErrorMessage": "Server received invalid JSON.", "ErrorCode": 3 } } ] */ message Error { uint32 Id = 1; string ErrorMessage = 2; int32 ErrorCode = 3; } /* [ { "Ping": { "Id": 1 } } ] */ message Ping { uint32 Id = 1; } /* [ { "RequestServerInfo": { "Id": 1, "ClientName": "Test Client", "MessageVersion": 1 } } ] */ message RequestServerInfo { uint32 Id = 1; string ClientName = 2; uint32 MessageVersion = 3; } /* [ { "ServerInfo": { "Id": 1, "ServerName": "Test Server", "MessageVersion": 1, "MaxPingTime": 100 } } ] */ message ServerInfo { uint32 Id = 1; string ServerName = 2; uint32 MessageVersion = 3; uint32 MaxPingTime = 4; } /* [ { "LinearCmd": { "Id": 1, "DeviceIndex": 0, "Vectors": [ { "Index": 0, "Duration": 500, "Position": 0.3 }, { "Index": 1, "Duration": 1000, "Position": 0.8 } ] } } ] */ message LinearCmd { uint32 Id = 1; uint32 DeviceIndex = 2; message Vector { uint32 Index = 1; uint32 Duration = 2; double Position = 3; } repeated Vector Vectors = 3; } message Message { oneof Message { /* Status Messages */ Ok Ok = 100; Error Error = 101; Ping Ping = 102; /* Handshake Messages */ RequestServerInfo RequestServerInfo = 200; ServerInfo ServerInfo = 201; /* Generic Device Messages */ LinearCmd LinearCmd = 403; } } message Payload { repeated Message Messages = 1; }