by 朱德兴

/*
 * b429.h
 *
 *  Created on: Dec 16, 2022
 *      Author: root
 */

#ifndef MODULES_B429_H_
#define MODULES_B429_H_

#include <stdint.h>

// 1 握手
typedef struct {
  uint32_t Spare;
} cmd_Handshake_st;

// 2 握手应答
typedef struct {
  uint32_t Spare;
} cmd_HandshakeResp_st;

// 3自检控制
typedef struct {
  uint32_t Spare;
} Get_SelfCheck_st;

// 4自检应答
typedef struct {
  uint32_t sn; //-编号
  uint32_t result; //-自检结果
} mod_start_st
typedef struct {
  uint32_t TCMresult1; //-整机自检结果
  mod_start_st Unit[4]; //-4个单元自检结果
  uint32_t SelfCheckstart1
  ; //-自检状态
  mod_start_st Module[12]; //-12个模块自检结果
  uint32_t TCMResult2; //-自检结果
  uint32_t InterfaceModuleResult; //-对外接口模块结果
  uint32_t IntegratedModuleResult
  ; //-网专模块结果
  uint32_t UTRAN_Result; //-接入网模块结果
  uint32_t F_SelectResult; //-选频模块结果
  uint32_t RF_Result; //-射频接口模块结果
  uint32_t Secrecy_Result; //-保密模块结果
  uint32_t PA_Result; //功放模块结果;
  uint32_t WF_Result; // 滤波模块结果;
  uint32_t PrognosticResult; //- 预后选器结果
  uint32_t Tone_Result; //-天调模块结果
  uint32_t SelfCheckstart2; //-自检状态
} SelfCheckResp_info_st;

SelfCheckResp_info_st st_SelfCheckRespReport;

// 5本机地址加载
typedef struct {
  uint32_t Addr; //-地址
  uint32_t Area; //-区号
} Address_Info_st;

Address_Info_st SET_LocalAddress_st
// 6本机地址查询
typedef struct {
  uint32_t Spare;
} Get_QueryLocalAddress_st;

// 7 本机地址上报
Address_Info_st st_LocalAddressReport;

// 8 信道频率加载
typedef struct {
  uint32_t total; //-信道总数:1~256
  uint32_t CF_count; //-信道包数M:1~256,表示此包为第M个信道
  uint32_t CF_N_sn; //-信道序号:1~1000
  uint32_t CF_N_f; //-信道N频率:20000~299999,单位100Hz
  uint32_t CF_type; //-信道N种类:0-USB,1-LSB,2-AME
} ChannelFrequency_Info_st

ChannelFrequency_Info_st st_Set_ChannelFrequency;

// 9 信道频率查询
typedef struct {
  uint32_t GetType; //-查询类型:0-当前信道,1-全部信道。
  uint32_t CFnum; //-查询信道:0~255
} Get_ChannelFrequency_st

// 10 信道频率上报
ChannelFrequency_Info_st st_ChannelFrequencyReport;

// 11波道参数加载
//----------定频
typedef struct {
  uint32_t bandwidth; //-带宽:0-3k;1-6k;2-12k;3-24k;默认0。
  uint32_t speed; //-速率:0-600
  uint32_t Denoise; //-降噪:0-降噪关;1-降噪开
  uint32_t f_sn; //-频率序号:1~1000,预置频率表中频点的序号
  uint32_t Frequency; //-频率:2.0000MHz~29.9999MHz(单位:100Hz)
  uint32_t WorkType; //-工作种类:0-USB,1-LSB,2-AME,3-UCW(预留);默认0
  uint32_t Addr; //-呼叫地址 地址:1~1999
  uint32_t Area; //-呼叫地址 区号 区号:34~39
} Fixed_f_Info_st;

//------------接入网
typedef struct {
  uint32_t speed; //- 速率:0-600,1-1200默认0
  uint32_t DownNum; //-下传频率个数:1~8默认1
  uint32_t UpNum; //-上传频率个数:1~8默认5
} UTRAN_Info_st;

//------自适应、组网
typedef struct {
  uint32_t Addr; //-呼叫地址 地址:1~1999
  uint32_t Area; //-呼叫地址 区号 区号:34~39
  uint32_t speed; //-速率:速率:业务类型为声码话:0-600@3k;1-1200@6k;2-1200@12k;
//- 3-自适应;默认3
//-业务类型为SJL:0-600@3k;1-880@3k;2-880@6k,3-2320@6k;
//-4-1600@12k,5-3040@12k;6-自适应;默认6
} Q_ALE_Info_st;

typedef struct {
  uint32_t WaveSN; //-波道号:0-255
  uint32_t WorkMode; //-工作模式:0-定频;1-快速自适应;2-组网;3-短综网
  uint32_t Service; //-业务类型:0-模拟话;1-声码话;2-SJL;3-语音短信(预留)
  uint32_t CipherFlag; //-明/密 0-明;1-密。
  uint32_t KeyFlag; //-密钥分区:0-1区;1-2区
  uint32_t type; //-指令类型 :0-设置,1-加载,设置时HF不存参数
  Fixed_f_Info_st st_Fixed_f;
  UTRAN_Info_st st_UTRAN;
  Q_ALE_Info_st st_Q_ALE;
} WaveParameter_Info_st;

WaveParameter_Info_st st_Set_WaveParameter;
// 12 波道参数查询
typedef struct {
  uint32_t WPnum; //-波道号:0-255
  uint32_t GetType; //-0-查询当前波道,1-查询指定波道,2-查询所有波
} Get_WaveParameter_st;

// 13 波道参数上报
WaveParameter_Info_st st_WaveParameterReport;

// 14 波道频率集加载
typedef struct {
  uint32_t WPnum
  ; //-波道号:0-255
  uint32_t f_total
  ; //-频率总数:1~256,表示当前波道所包含的频率总数。
  uint32_t f_M_sn; //-频率包号M:1~256,表示此包频率为当前波道的第M个频率
  uint32_t f_N_sn; //-频率N序号,序号1-1000
} WaveCollect_st;

typedef struct {
  uint32_t type
  ; //-指令类型:0-设置,1-加载,设置时HF不存参数。
  WaveCollect_st st_WaveCollect;
} WaveCollect_info_st;
WaveCollect_info_st st_Set_WaveCollect;

// 15 波道频率集上报
WaveCollect_st st_WaveCollect_Report;

// 16 加载控制
typedef struct {
  uint32_t ControlType; //-加载控制:0-开始加载,1-加载结束
} ControlLoading_st;
ControlLoading_st st_Set_ControlLoading

// 17 加载上报
typedef struct {
  uint32_t State; //-加载状态:0-正在加载,1-正在写入,2-烧写失败,3 写入成功
} Get_LoadingState_st;
Get_LoadingState_st st_LoadingState_Report;

// 18 时间日期设置
typedef struct {
  uint32_t yy; //-年:0~99(2000年起)
  uint32_t mm; //-月:1~12
  uint32_t dd; //-日:1~31
  uint32_t hh; //-时:0~23
  uint32_t mi; //-分:0~59
  uint32_t ss; //-秒:0~59
} time_info_st;
time_info_st st_Set_time;

// 19 时间日期上报
time_info_st st_time_Report;

// 20 经纬度设置
typedef struct {
  uint32_t longitude; //-经度:0~180000000。
  uint32_t longitudeType; //-符号:0-东经;1-西经
  uint32_t Latitude; //-纬度:0~90000000
  uint32_t LatitudeType; //-符号:0-北纬;1-南纬
} LongitudeLatitude_info_st;
LongitudeLatitude_info_st st_Set_LongitudeLatitude;

// 21 降噪设置
typedef struct {
  uint32_t DenoiseType; //-降噪设置:0-关闭,1-打开。
} Denoise_info_st;
Denoise_info_st st_Set_Denoise;

// 22 降噪设置
Denoise_info_st st_Denoise_Report;

// 23 软件版本查询
typedef struct {
  uint32_t Spare;
} cmd_SoftwareVersion_st;

// 24 软件版本上报
typedef struct {
  uint32_t VersionZ; //-软件版本:V X.YZ,分接收激励单元和功放天调单元
  uint32_t VersionY; //-软件版本:V X.YZ,分接收激励单元和功放天调单元
  uint32_t VersionX; //-软件版本:V X.YZ,分接收激励单元和功放天调单元
  uint32_t ManufactorSN; //-厂家编号:0~31
} RecvVersion_info_st;
RecvVersion_info_st st_RecvVersion_Report;

// 25 静默设置
typedef struct {
  uint32_t SilenceType; //静默设置:0-是,1-否
} SilenceType_info_st;
SilenceType_info_st st_Set_SilenceType;

// 26静默上报
SilenceType_info_st st_SilenceType_Report;

// 27工作参数设置
typedef struct {
  uint32_t WorkMode; //-工作模式:0-定频;1-快速自适应;2-组网;3-短综网。
  uint32_t WorkOrder; //-工作指令:当前处于快速自适应及组网模式 0-无操作;1-扫描;
//-2-单呼;3-组呼(预留)。
//-当前处于短综网模式 0-无操作;1-申请入网(预留)。
  uint32_t WPnum;                //-波道号:0~255;
  uint32_t speed;                //-速率:业务类型为声码话:0-600@3k;1-1200@6k;2-1200@12k;
//- 3-自适应;默认3
//-业务类型为SJL:0-600@3k;1-880@3k;2-880@6k,3-2320@6k;
//-4-1600@12k,5-3040@12k;6-自适应;默认6。
  uint32_t Service;                //-业务类型:0-模拟话;1-声码话;2-SJL;3-语音短信(预留)
  uint32_t CipherFlag; //明/密:0-明;1-密;
  uint32_t KeyFlag;                //-密钥分区:0-1区;1-2区;
  uint32_t bandwidth;                //-带宽:0-3k;1-6k;2-12k;3-24k;默认0
  uint32_t frequency;                //-频率:2.0000MHz~29.9999MHz(单位:100Hz)。
  uint32_t WorkType;                //-工作种类:0-USB,1-LSB,2-AME,3-UCW(预留);默认0。
  uint32_t Addr;                //-呼叫地址 地址:1~1999
  uint32_t Area;                //-呼叫地址 区号 区号:34~39

} WorkParameter_info_st;
WorkParameter_info_st st_Set_WorkParameter;

// 28工作状态上报
typedef struct {
  uint32_t WorkMode;                //-工作模式:0-定频;1-快速自适应;2-组网;3-短综网。
  uint32_t Service;                //-业务类型:0-模拟话;1-声码话;2-SJL;
  uint32_t State;         //-工作状态:当前处于快速自适应及组网模式 0-无;1-扫描;2-呼叫;//-3-主呼建链,4-被呼建链。
//-当前处于短综网模式 0-无;1-正在入网,2-入网成功,3-入网失败。
  uint32_t VoiceFalg; //-数话状态:0-无;1-话音优先;
  uint32_t speed; //-速率:业务类型为声码话:0-600@3k;1-1200@6k;2-1200@12k;
//-3-自适应;默认3
//-业务类型为SJL:0-600@3k;1-880@3k;2-880@6k,3-2320@6k;
//-4-1600@12k,5-3040@12k;6-自适应;默认6。
  uint32_t Addr; //-呼叫地址 地址:1~1999
  uint32_t Area; //-呼叫地址 区号 区号:34~39
  uint32_t WPnum; //-波道号:0~255;
  uint32_t CipherFlag; //明/密:0-明;1-密;
  uint32_t KeyFlag; //-密钥分区:0-1区;1-2区;
  uint32_t bandwidth; //-带宽:0-3k;1-6k;2-12k;3-24k;默认0
  uint32_t frequency; //-频率:2.0000MHz~29.9999MHz(单位:100Hz)。
  uint32_t WorkType; //-工作种类:0-USB,1-LSB,2-AME,3-UCW(预留);默认0。
} WorkState_info_st;
WorkState_info_st st_WorkState_Report;

// 29语音短信提示
typedef struct {
  uint32_t State
//-当前状态: 0-进入语音短信;1-正在发送语音短信;2-发送成功;
//-3-发送失败;
} VoiceMessage_info_st;
VoiceMessage_info_st st_VoiceMessage_Report;

// 30 收发状态上报
typedef struct {
  uint32_t State; //-收发状态:0-发,1-收,2-发保护状态。
  uint32_t Ratio; //-信噪比值:0~23,0x1F-清屏。
  uint32_t Sign; //-信噪比正负号:0-正,1-负。
  uint32_t level; //-模拟话接收电平:-127~+127,bit25表示正负号。
  uint32_t Quality; //-信道质量:0-优,1-良,2-差。
} TransceivingStatus_info_st;
TransceivingStatus_info_st st_TransceivingStatus_Report;

// 31 惯导信息
typedef struct {
  uint32_t yy; //-年  xxxx
  uint32_t mm; //-月:1~12
  uint32_t dd; //-日:1~31
  uint32_t hh; //-时:0~23
  uint32_t mi; //-分:0~59
  uint32_t ss; //-秒:0~59
  LongitudeLatitude_info_st st_LongitudeLatitude;
} INSInformation_info_st;
INSInformation_info_st st_INSInformation;
#endif /* MODULES_B429_H_ */