syntax="proto3";
package RemoNet;
enum CSMessage
{

  CS_NONE=0;
  CS_Sign=2000;
  CS_Req=2001;
  CS_Rep=2002;
  CS_CancelReq=2003;
  CS_Offer=2004;
  CS_Answer=2005;
  CS_Candidate=2006;
  CS_Leave=2007;
  CS_KeepAlive=2008;
  CS_Add=2009;
  CS_Robot=2010;
  CS_CloseVideo=2011;
  CS_MoveBegin=2012;
  CS_MoveEnd=2013;
  CS_State=2014;
  CS_SwitchDriver=2015;
  CS_MoveRet=2016;
  CS_SyncTime=2017;
  
};
enum SCMessage
{
  SC_NONE=0;
  SC_Sign=4000;
  SC_Req=4001;

  SC_Rep=4002;
  SC_Cancel=4003;
  SC_Offer=4004;
  SC_Answer=4005;
  SC_Candidate=4006;
  SC_Add =4007; 
  SC_Robot=4008; 
  SC_NotifyReq=4009;
  SC_NotifyRep=4010;
  SC_NotifyAnswer=4011;
  SC_NotifyOffer=4012;
  SC_NotifyCandidate=4013;
  SC_NotifyLeave=4014;
  SC_NotifyCancel=4015;
  SC_NotifyAdd=4016;
  SC_NotifyDel=4017;
  SC_NotifyCloseVideo=4018;
  SC_KickOff=4019;
  SC_MoveBegin=4020;
  SC_MoveEnd=4021;
  SC_State=4022;
  SC_SwitchDriver=4023;
  SC_MoveRet=4024;
  SC_NotifyState=4025;
  SC_SyncTime=4026;
  
  
};
enum CCMessage
{
   CC_None=0;
   CC_Text=8000;
   CC_CAN=8001;
   CC_IMU=8002;
   CC_ASKDATACHANNEL=8003;
   CC_Manipulation=8004;
   CC_Radar=8005;
   CC_Switch=8006;
   CC_Ping=8007;
   CC_SensorStop=8008;
   CC_StopACK=8009;
   CC_Lidar=8010;
   CC_CANMSG=8011;
   CC_STATE=8012;
   CC_NDTPOS=8013;
   
 
    
};
enum VideoDesc
{
	OK=0;
	Busy=1;
	Reject=2;
	NoFound=3;
	IsVideoing=4;

};
message SwitchDriver
{
int32 peer=1;
};
message NDTPos
{
  float x  =1;
  float y  =2;
  float z  =3;
  float rx =4;
  float ry =5;
  float rz =6;
  float rw =7;
};
message CSMoveBegin
{
int32 peer=1;
int32 area=2;
int32 no=3;
};
enum MoveDesc
{
   Move_OK=0;
   Move_Encode_Fail=1;
   Move_Unknow_Faile=2;
};
message MoveRet
{
   MoveDesc desc=1;
   int32 peer=2;
};
message CSMoveEnd
{
   int32 area=1;
   int32 no=2;
   int32 uid=3;
};
message SCMoveBegin
{
   int32 uid=1;
   int32 area=2;
   int32 no=3;
   float x=4;
   float y=5;
};
message SCMoveEnd
{
  int32 area=1;
  int32 no=2;
  int32 uid=3;
};
message CSAdd
{
   string serial=1;
   int32  type=2;
   string name=3;
   int32  car=4;
 
};
message SCAdd
{
  bool  ret=1;
  int32 uid=2;
  
  string name=3;
  int32 car=4;
};
message SCKickOff
{
};
enum UserState
{
   Offline=0;
   Idle=1;
   Remote=2;
   Automotive=3;
   AskRemote=4;
};
 
message CSState
{
    UserState state=1;
    int32 uid=2;
};
message SCState
{
 UserState state=1;
 int32 uid=2;
};
message Robot
{
   int32 rid=1;
   string name=2;
   int32  type=3;
   UserState state=4;
   int32  carType=5;
    
};
message CSRobot
{
};
message SCRobot
{
 repeated Robot robot=1;
};

message CSSign
{
  string account=1;
  string password=2;
 
  
};
message SCSign
{
  bool  ret=1;
  int32 uid=2;
  
  string name=3;
  
};
 

message CSReq
{
   int32 peer=1;
   
   int32 index=2;
   int32 egotype=3;
  
};
message SCReq
{
    VideoDesc desc=1;
    int32 peer=2;
    int32 egotype=3;
   
};
message CSRep
{
 
   VideoDesc desc=1;
   int32 peer=2;
   int32 index=3;
    int32 egotype=4;
};
message SCRep
{
  
   VideoDesc desc=1;
     int32 index=2;
	 int32 egotype=3;
   int32 peer=4;
   
};

message Offer
{
  int32 index=1;
  int32 peer=2;
  string type=3;
  string sdp=4;
  
};

message Answer
{
  int32 index=1;
  int32 peer=2;
  string type=3;
  string sdp=4;
  
};

message Candidate
{
   int32 index=1;
   int32 peer=2;
   string type=3;
   string candidate=4;
   int32 sdpMLineIndex =5;
   string sdpMid =6;
   int32 egotype=7;
};
message Leave
{
   int32 peer=1;
   int32 egotype=2;
};
 message Close
{
int32 peer=1;
int32 egotype=2;
int32 index=3;
};
 
message TestTextReq
{
  string text=1;
};
message SyncTime
{
  	int32 tm_sec =1;   // seconds after the minute - [0, 60] including leap second
    int32 tm_min =2;   // minutes after the hour - [0, 59]
    int32 tm_hour =3;  // hours since midnight - [0, 23]
    int32 tm_mday =4;  // day of the month - [1, 31]
    int32 tm_mon =5;   // months since January - [0, 11]
    int32 tm_year =6;  // years since 1900
	
	int32 tm_wday =7;  // days since Sunday - [0, 6]
    int32 tm_yday =8;  // days since January 1 - [0, 365]
    int32 tm_isdst =9; // daylight savings time flag
	bool  update_time=10;
};
message CCAskDataChannel
{
   

};

message IMuMessage
{

   float rx=1; 
   float ry=2;
  // float rz=3;
};


message CCPing
{
  int64 tick=1;
  double temp=2;
};
/*
message radar_info
{
 .. int32 index=1;
  int32 range=2;
 // int32 azimuth=3;
 // float verl=4;
 // int32 count=5;
 // int32 snr=6;
}
*/
 
message radar_node
{
    int32 id =1;
	int32 range=2;
};
message CCRadarMessage
{
   int32 radar0=1;
   int32 radar1=2;
   int32 radar2=3;
   int32 radar3=4;
   int32 radar4=5;
   int32 radar5=6;
   int32 radar6=7;
   int32 radar7=8;
};   
message CCSensor
{
   repeated radar_node node=1;
   int32 left_encode=2;
   int32 right_encode=3;
};

message CCSwitch
{
   bool front=1;
};
message State
{
   /*
   int32 work_pressure=1;//工作系统压力
   int32 brake_pressure=2; //制动系统压力
   
   int32 gearbox_oil_temp=3;//变速箱油温
   int32 gearbox_oil_pressure=4; //变速箱油压
   int32 engine_rpm=5;//发动机转速
   int32 speed=6;
  // int32 gear=7;
   int32 engine_pressure=8;
   int32 cold_water=9;
   int32 steer_angle=10;
   int32 left_lock=11;
   int32 right_lock=12;
   */

   ///////////////////////////////////////////////////////状态参数
   int32 engine_speed = 1;//发动机转速
   int32 travel_speed = 2;//行驶速度
   int32 fuel_level = 3;//燃油油位
   int32 engine_temperature = 4;//发动机水温
   int32 hydraulic_oil_temperature = 5;//液压油油温
   int32 main_pump_1_pressure = 6;//主泵1压力
   int32 main_pump_2_pressure = 7;//主泵2压力
   int32 hand_gear = 8;//手挡挡位----改为水箱水位
   int32 actual_gear = 9;//实际挡位----改为发动机机油压力
   float gripper_height = 10;//抓具高度
   float amplitude = 11;//幅度
   int32 boom_angle = 12;//动臂角度
   int32 stick_angle = 13;//斗杆角度
   ///////////////////////////////////////////////////////报警信息
   int32 idle_protection = 14;//怠速保护
   int32 front_toggle = 15;//前轮对中-----新增的
   int32 back_toggle = 16;//后轮对中-----新增的
   bytes error_Buff = 17;//报警信息-----由原来的15改为17

   int32 interlock = 18;//启动联锁
   int32 safety_switch = 19;//安全开关阀异常
   int32 arm_lift_pilot = 20;//大臂提升先导比例阀异常
   int32 arm_lowering_pilot = 21;//大臂下降先导比例阀异常
   int32 lever_lifting_pilot = 22;//斗杆提升先导比例阀异常
   int32 rod_lowering_pilot = 23;//斗杆下降先导比例阀异常
   int32 left_rotary_pilot = 24;//左回转先导比例阀异常
   int32 right_rotary_pilot = 25;//右回转先导比例阀异常
   int32 grab_open_pilot = 26;//抓斗开启先导比例阀异常
   int32 grab_close_pilot = 27;//抓斗闭合先导比例阀异常
   int32 safety_valves = 28;//安全开关阀
   
};
message LidarPoint
{
 optional double timestamp = 1; 
 optional uint32 seq = 2;
 optional string frame_id = 3;
 optional uint32 height=4;
 optional uint32 width=5;
 optional bool is_dense=6;
 optional bool is_left=7;
 repeated float data = 8;
};
message SensorStop
{
};
message StopAck
{
};
/*
message CCManipulation
{
  bytes sensor=1;
  bytes  car=2;
};
*/
message can_net_frame
{
   sint32 dlc =1;
   int32 canid =2;
   bytes data=3;
};
message CCCanMsg
{
    repeated can_net_frame frams=1;
};
 
message SCAddRobot
{
   Robot robot=1;
};
message SCDelRobot
{
   int32 peer=1;
   int32 egotype=2;
};