Goby Underwater Autonomy Project
Series: 1.1, revision: 163, released on 2013-02-06 14:23:27 -0500
|
00001 import "goby/protobuf/option_extensions.proto"; 00002 import "goby/protobuf/app_base_config.proto"; 00003 00004 package goby.core.proto; 00005 00006 // Type of vehicle for a given node 00007 enum VehicleType { AUV = 1; 00008 USV = 2; 00009 SHIP = 3; 00010 GLIDER = 4; 00011 TARGET = 5; 00012 BUOY = 6; 00013 OTHER = 7; } 00014 00015 // defines information and connections 00016 // to a node (vehicle, ship, etc.) 00017 // a node is defined by a single gobyd and collection 00018 // of connected processes 00019 message Platform 00020 { 00021 message SerialInfo 00022 { 00023 required string port = 1 [(example)="/dev/ttyUSB1"]; 00024 required uint32 baud = 2 [(example)="19200"]; 00025 } 00026 message AcousticModemInfo 00027 { 00028 required uint32 mm_id = 1 [(description)="Micro-Modem id ($CCCFQ,SRC)", 00029 (example)="1"]; 00030 required SerialInfo mm_serial = 2; 00031 optional bool has_coproc = 3 [default=true, 00032 (description)="can handle high-rate PSK"]; 00033 } 00034 message EthernetInfo 00035 { 00036 required string ipv4_addr = 1 [(example)="192.168.1.1"]; 00037 required uint32 ipv4_port = 2 [(example)="10023"]; 00038 } 00039 00040 required string name = 1 [(description)="unique name of the node", 00041 (example)="AUV-23"]; 00042 optional VehicleType type = 2 [(description)="type of the node", default=AUV]; 00043 00044 optional AcousticModemInfo acomms = 3 [(description)="acoustic connectivity"]; 00045 optional EthernetInfo ether = 4 [(description)="ethernet connectivity"]; 00046 optional SerialInfo serial = 5 [(description)="serial connectivity "]; 00047 } 00048 00049 message LogConfig 00050 { 00051 enum SQLBackend 00052 { 00053 SQLITE = 1; 00054 } 00055 optional SQLBackend backend = 1 [default=SQLITE]; 00056 00057 message SQLiteInfo 00058 { 00059 // %1% gets expanded into platform name 00060 // %2% gets expanded to iso date-time stamp 00061 optional string path = 2 [default="./%1%_%2%_goby.db"]; 00062 } 00063 // only needed if backend == SQLITE 00064 optional SQLiteInfo sqlite = 2; 00065 } 00066 00067 // latitude and longitude can be troublesome to use, so often 00068 // we want to define a local datum for doing a planar approximation 00069 // in X,Y,Z coordinates (meters) of where vehicles are. 00070 // This datum is the 0,0,0 point of the X,Y,Z grid 00071 message LocalCartesianDatum 00072 { 00073 required double lat = 1; // decimal degrees 00074 required double lon = 2; // decimal degrees 00075 optional double depth = 3 [default=0]; // meters 00076 } 00077 00078 message Config 00079 { 00080 optional AppBaseConfig base = 1 [(description)="params shared with all goby applications"]; 00081 optional Platform self = 2 [(description)="this platform"]; 00082 repeated Platform other = 3 [(description)="the known world of platforms"]; 00083 optional LogConfig log = 4 [(description)="SQL log configuration"]; 00084 00085 optional LocalCartesianDatum origin = 5 [(description)="Convenient origin for local cartesian coordinate transformations"]; 00086 } 00087