syntax = "proto3";

option go_package = "../protogo";

import "google/protobuf/timestamp.proto";

/**  卫星信息相关的接口  **/

// 后端返回：卫星列表-带所有信息//卫星列表-带根数//卫星列表-带基本信息//卫星列表-带工作参数
message RetSatelliteElement {
    string norad = 2;//卫星编号
    string code = 3;//国际编号
    string cnName = 4;//
    string enName = 5;//根数里的卫星名称？
    bool available = 6;//是否在管
    int32 priority = 7;//优先级
    int32 priorityBySite = 8;//指定站点内的优先级
    map<string, string> base = 9;//基本信息：country, type, 用途purpose,  发射时间launchDt, 发射地点launchPlace,  运载火箭carrierRocket, 设计年限ageLimit, 管理单位manager,  承制商contractor, 卫星平台platform, 载荷payload,	 推进器booster, 星载电源power, 质量mass,  备注remark, 中心编号codeCenter,
    repeated RetSiteLevel3Satellite details = 10;// 关于三级站的详细信息，是否在管，优先级，观测等级，天控器工作参数编号
    map<string, string> elements = 11;//当前根数： 星历时间dt, 本地更新时间updateDt, e, a, i, o, w, m, tle:string, 轨道周期period，source-卫星来源siteno，orbitType-GEO/LEO
    RetSatelliteWorkElement workParams = 12;// 用于宏参数设置列表使用
    bool off = 13;//
    google.protobuf.Timestamp createDt = 14;//
}

message RetSiteLevel3Satellite {
    string siteNo = 1;
    int32 priority = 2;
    bool available = 3;
    ObserveGrade observeGrade = 4;//观测等级observeGrade（1级2级3级分别对应任务的必控，重要，普通）,
    RetSatelliteWorkElement workParam = 5;// 工作参数
    string workParamConfigName = 6;
}
// 前端请求：卫星列表
// 请求IID：IID_Server_SatelliteList
// 返回IID：IID_Server_SatelliteList_respond
message SatelliteList {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 查询的站点编号
    enum satelliteSort {
        satelliteSort_default = 0;// 仅一些基本信息
        satelliteSort_forecast = 1;// 获取二级站下三级站在管卫星，或三级站下在管卫星,预报时使用
    }
    satelliteSort sort = 3;//
}
// 前端请求：卫星详情
// 请求IID：IID_Server_SatelliteDetail
// 返回IID：IID_Server_SatelliteDetail_respond
message SatelliteDetail {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 查询的站点编号，二级站
    string norad = 3;// 需要查询的卫星
}
// 前端请求：卫星根数添加或更新，也是卫星添加或更新
// 请求IID：IID_Server_SatelliteElementUpdate
// 返回IID：IID_Server_SatelliteElementUpdate_respond
message SatelliteElementUpdate {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 查询的站点编号
    string tle = 3;//根数 tle 允许多个
}

// 前端请求：卫星基本信息更新  目前弃用
// 请求IID：IID_Server_SatelliteBaseUpdate
// 返回IID：IID_Server_SatelliteBaseUpdate_respond
message SatelliteBaseUpdate {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;
    string norad = 3;//卫星编号
    string cnName = 4;// 卫星名称
    string code = 5;// 卫星码字
    string codeName = 6;//管理代号
    string country = 7; //国家
    string orbitType = 8;//轨道类型
    string purpose = 9;//用途、工作性质
    string remark = 10;//备注信息
    string enName = 11;

    //  string secretType = 4;// 保密等级
    //  google.protobuf.Timestamp launchDt = 9;//发射时间
    //  string launchPlace = 10;//发射地点
    //  string ageLimit = 11;//设计年限
    //  string carrierRocket = 12;//运载火箭
    //  string manager = 13;//管理单位
    //  string contractor = 14;//承制商
    //  string platform = 15;//卫星平台
    //  string payload = 16;//载荷
    //  string booster = 17;//推进器
    //  string power = 18;//星载电源
    //  string mass = 19;//卫星质量


    //  string codeCenter = 22;//中心编号
}

// 前端请求：卫星删除
// 请求IID：IID_Server_SatelliteDel
// 返回IID：IID_Server_SatelliteDel_respond
message SatelliteDel {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 查询的站点编号
    repeated string noradArray = 3;//待删除的卫星编号: json array
}

// 前端请求：卫星优先级列表 站点内所有卫星
// 请求IID：IID_Server_SatellitePriorityList
// 返回IID：IID_Server_SatellitePriorityList_respond
message SatellitePriorityList {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 查询的站点编号
}
// 前端请求：卫星优先级修改
// 请求IID：IID_Server_SatellitePriorityUpdate
// 返回IID：IID_Server_SatellitePriorityUpdate_respond
message SatellitePriorityUpdate {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 查询的站点编号
    repeated string noradArray = 3;//卫星编号排序
}

// 前端请求：卫星根数下载，一级站从网上下载，二级三级向上级站请求
// 请求IID：IID_Server_SatelliteElementLoad
// 返回IID：IID_Server_SatelliteElementLoad_respond
message SatelliteElementLoad {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;
    repeated string noradArray = 3; // 需要下载的卫星，没有默认全部
}

message RetSatelliteElementLoad {
    string CnMsg = 1;
    string EnMsg = 2;
}

// 前端请求：卫星根数自动下载参数设置
// 请求IID：IID_Server_SatelliteElementLoadAutoSet
// 返回IID：IID_Server_SatelliteElementLoadAutoSet_respond
message SatelliteElementLoadAutoSet {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 用于修改不同站点的tle下载下发参数
    string loadUrl = 3; // tle下载地址
    string loadHMS = 4;// 下载具体的时分秒 00:00:00 格式
    int32 loadFrequency = 6; // 隔几天
    bool tleStrategyStatus = 8;//tle策略是否启用
}

enum ObserveGrade {
    ObserveGradeDefault = 0;
    ObserveGrade1 = 1;
    ObserveGrade2 = 2;
    ObserveGrade3 = 3;
}

// 前端请求：修改卫星与天线的相关信息，包括卫星在管状态，观测等级，工作参数
// 请求IID：IID_Server_SatelliteDetailUpdate
// 返回IID：IID_Server_SatelliteDetailUpdate_respond
message SatelliteDetailUpdate {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string norad = 2;// 卫星
    string siteNo = 3;
    // 基本信息
    string cnName = 4;// 卫星名称
    string code = 5;// 卫星码字
    string codeName = 6;//管理代号
    string country = 7; //国家
    string orbitType = 8;//轨道类型
    string purpose = 9;//用途、工作性质
    string remark = 10;//备注信息
    string enName = 11;
    // 关联信息
    repeated DetailParams params = 12;
}
message DetailParams {
    string siteNo = 1;// 站点
    bool available = 2;// 是否在管 true-在管
    ObserveGrade grade = 3;// 观测等级
    int32 workConfig = 4;// 工作参数编号
}

// 后端返回：射频/解调参数
// 返回IID：IID_Server_SatelliteWorkList_respond
message RetSatelliteWorkElement {
    string norad = 1;
    int32 configId = 2;
    //  RetSatelliteElement satellite = 3;//卫星，server间交互不要传卫星
    string remark = 3;//说明
    string configName = 4;//射频/解调参数配置名
    string category = 5;// 暂时没用
    repeated WorkParam params = 6;//
    bool off = 7;//
    google.protobuf.Timestamp createDt = 8;//
}

// 前端请求：射频/解调参数列表
// 请求IID：IID_Server_SatelliteWorkParamList
// 返回IID：IID_Server_SatelliteWorkParamList_respond
message SatelliteWorkParamList {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 二级站
}
// 前端请求：射频/解调参数更新/添加
// 请求IID：IID_Server_SatelliteWorkParamUpdate
// 返回IID：IID_Server_SatelliteWorkParamUpdate_respond
message SatelliteWorkParamUpdate {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 二级站
    string norad = 3;
    int32 configId = 4;//参数 编号// 没有就是新增,自动生成，有则是修改
    string configName = 5;
    string remark = 6;
    repeated WorkParam params = 7;// key=siteno

}
message WorkParam {
    string siteNo = 1;// 三级站
  // 7.5米，5米一样配置
  //	ACU7.5米天线软件
    ParamsACU pACU = 2;
    //	X/S左旋下变频器_1
    ParamsFrequencyConverter p1FCXS1 = 3;// InputFrequency  参数不填
  //	X/S右旋下变频器_1
    ParamsFrequencyConverter p1FCXS2 = 4;// InputFrequency  参数不填
  //	S/720左旋下变频器_1
    ParamsFrequencyConverter p1FCS1 = 5;// 输入频率  0xxxx.xxx  02200.000-03000.00 Mhz
  //	S/720右旋下变频器_2
    ParamsFrequencyConverter p1FCS2 = 6;// 输入频率  0xxxx.xxx  02200.000-03000.00 Mhz
  //	L/720左旋下变频器_1
    ParamsFrequencyConverter p1FCL1 = 7;// 输入频率  0xxxx.xxx  01600.000-01800.00 Mhz
  //	L/720右旋下变频器_2
    ParamsFrequencyConverter p1FCL2 = 8;// 输入频率  0xxxx.xxx  01600.000-01800.00 Mhz
  //	X-解调器1
    ParamsHighSpeedDemodulator p1DX1 = 9;
    //	X/S右旋下变频器_3
    ParamsFrequencyConverter p1FCXS3 = 10;// InputFrequency  参数不填
  //	跟踪接收机
    ParamsTrackingReceiver p1TR1 = 11;


}
// 前端请求：射频/解调参数删除
// 请求IID：IID_Server_SatelliteWorkParamDel
// 返回IID：IID_Server_SatelliteWorkParamDel_respond
message SatelliteWorkParamDel {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;
    repeated NoradConfigId keyArray = 3;//待删除的射频/解调参数 IDs
}
message NoradConfigId {
    string norad = 1;
    int32 configId = 2;
}

// 前端请求：射频/解调参数列表
// 请求IID：IID_Server_SatelliteWorkParamListForChoose
// 返回IID：IID_Server_SatelliteWorkParamListForChoose_respond
message SatelliteWorkParamListForChoose {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 二级站
    repeated string noradArray = 3;
}

message ParamsACU {
    //  int32  XTrackerSigIntensity = 1  ;// X频段信号强度 范围0-512；（对应0-5V电压） 。 不是宏参数
    //  int32  YTrackerSigIntensity = 2  ;// y频段信号强度 范围0-512；（对应0-5V电压） 。 不是宏参数
    int32 XInitPhase = 1;// X频段初相位 范围0-255
    int32 XPolarizationType = 2;// X频段跟踪极化 0左旋，1右旋；
    int32 SPolarizationType = 3;// S频段跟踪极化 0左旋，1右旋；
    int32 XTrackerVoltageLimit = 4;// X频段跟踪门限 跟踪门限取值范围0-512（对应0-5V电压）
    int32 STrackerVoltageLimit = 5;// S频段跟踪门限 跟踪门限取值范围0-512（对应0-5V电压）
    int32 SUpPolarizationType = 6;// S频段上行极化 0为左旋，1为右旋。
    int32 XUpPolarizationType = 7;// X频段上行极化 0为左旋，1为右旋。
    int32 TrackingStatus = 8;// 跟踪方式 1 表示启动了自动进入跟踪。0 表示未启动
    int32 TrackingBand = 9;// 跟踪频段  1为X频段，0为S频段
}


message ParamsFrequencyConverter {
    double InputFrequency = 1;//  L型 输入频率  0xxxx.xxx  02200.000-03000.00 Mhz  X型
    double Attenuation = 2;// 衰减  范围0~40dB,步进1dB 、数据类型待定
    string RFSignalSwitch = 3;// 射频信号开关  ON:信号关闭  OFF:信号开启
    string ControlState = 4;//控制状态  ON:远控  OFF:本控  优先发这个指令。
}

message ParamsTrackingReceiver {
    double InputFrequency = 1;//  输入频率  0xxxx.xxx  02200.000-03000.00 Mhz
    int32 BandWidth = 2;//  带宽   1:50KHz  2:1MHz  3:2MHz   默认1
}

message ParamsHighSpeedDemodulator {
    string ControlMode = 1;//	控制模式	"0：remote；1：Local；说明：当远控开关为Local(本地设置参数)且本设备面板也为Local(本地设置)时，本机将不接收相关参数的远程控制"
    string Demodulation = 2;//	接收信号解调方式	0:BPSK;1:QPSK;2:OQPSK;3:UQPSK;4:8PSK；
    string CepstrumSate = 3;//	接收信号倒谱状态	0：不倒谱；1：倒谱；
    string SignalRate = 4;//	10000.000kb-450000.000kb
    string DifferentialDecoding = 5;//	差分译码	0：NRZ_L   (不差分)；1：NRZ_M  （针对 QPSK,I、Q 路分别差分）；2：NRZ_S （单路<I、Q 合成一路>差分）；3：NRZ_D （格雷差分）
    string FEC = 6;//	前向纠错	0：译码关；1：VTB_1/2  （1/2卷积译码）；2：VTB_3/4  （3/4卷积译码）；3：LDPC_7/8；4：TCM
    string DecodingChannels = 7;//	前向纠错译码路数	1：单路；2：双路
    string ConvolutionalDecodingState = 8;//	卷积译码状态	"0：1/2 卷积译码 G2 不反相，3/4 卷积译码IQ 不交替；1：1/2 卷积译码 G2 反相，3/4 卷积译码 IQ 交替；仅在前向纠错为卷积译码时能够设置"
    string RSDecoding = 9;//	RS译码状态	0：RS译码关; 1：RS（255，223）; 2：RS（255，239）
    string RSChannels = 10;//	RS译码路数	1：单路 ; 2：双路
    string RSDepth = 11;//	RS 译码交织深度	1：RS译码交织深度为1；2：RS译码交织深度为2；3：RS译码交织深度为3；4：RS译码交织深度为4；5：RS译码交织深度为5；6：RS译码交织深度为6；7：RS译码交织深度为7；8：RS译码交织深度为8；
    string Descrambling = 12;//	去扰状态	0：去扰关 ; 1：译码后去扰  ;2：译码前去扰
    string IPPacketSize = 13;//	IP包长设置	"0：1.25KB、1：5KB、2:  10KB、3:  15KB、4:  20KB、5:  25KB、6:  30KB、7:  35KB、8:  40KB、9:  45KB、A:  50KB、B:  55KB、C:  60KB
    string FrameDetect = 14;//	帧检测	0：帧检测关闭、1：帧检测打开
    string SYNCLength = 15;//	同步码长度	1：1 Byte、2：2 Byte、3：3 Byte、4：4 Byte、5：5 Byte、6：6 Byte、7：7 Byte、8：8 Byte
    string FrameLength = 16;//	帧长度	字节25～字节29（设置帧长度）：共5个字节，以当前需设置帧长度为01024字节为例，发送01024的ASCII码即可；范围：00016-08192 Byte
    string SYNC_I = 17;//	I路同步码型	共16个字节，发送ASCII码，同步码型不足8字节(对应ASCII码是16个字节)时，高位补零。以同步码型是000000001ACFFC1D为例，需发送的ASCII码是：0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x30 0x31 0x41 0x43 0x46 0x46 0x43 0x31 0x44；
    string SYNC_Q = 18;//	Q路同步码型	共16个字节，发送ASCII码，同步码型不足8字节(对应ASCII码是16个字节)时，高位补零。若RS、帧检测或LDPC只有1路时，Q路同步码型保留；
    string CRC_Switch = 19;//	CRC校验开关状态	0：关闭 ；1：打开
    string frequency = 20;//	频率	这个设置在宏参数里面要有的，手动设置界面就   khz
}


message ParamsUpFrequencyConverter {
    double InputFrequency = 1;//  输入频率  0xxxx.xxx  02200.000-03000.00 Mhz
    double Attenuation = 2;// 衰减  范围0~40dB,步进1dB 、数据类型待定
    string RFSignalSwitch = 3;// 射频信号开关  ON:信号关闭  OFF:信号开启
}


message ParamsSatelliteAnalogSource {

}

// 后端返回：射频/解调参数
// 返回IID：IID_Server_SatelliteWorkList_respond
message RetDiagnosisWorkElement {
    int32 configId = 1;
    string remark = 2;//说明
    string configName = 3;//射频/解调参数配置名
    string category = 4;// 暂时没用
    DiagnosisWorkParam workParams = 6;
    bool off = 7;//
    google.protobuf.Timestamp createDt = 8;//
}
message DiagnosisWorkParam {
    ParamsSatelliteAnalogSource pSAS = 1;
    ParamsUpFrequencyConverter pUFCX = 2;
    ParamsUpFrequencyConverter pUFCL = 3;
}
message DiagnosisWorkParamUpdate {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 二级站
    DiagnosisWorkParam workParams = 3;
    int32 configId = 4;//参数 编号// 没有就是新增,自动生成，有则是修改
    string configName = 5;
    string remark = 6;

}

message DiagnosisWorkParamList {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;// 二级站
}

// 前端请求：射频/解调参数删除
// 请求IID：IID_Server_DiagnosisWorkParamDel
// 返回IID：IID_Server_DiagnosisWorkParamDel_respond
message DiagnosisWorkParamDel {
    int32 token = 1; // 当前登录用户 token，暂定用户 id
    string siteNo = 2;
    repeated int32 configIdArray = 3;//待删除的射频/解调参数 IDs
}