// 同步模块
// 杭州秒寻科技有限公司
// 周涛
// 2024-3-17

#ifndef WMMSYNC_H
#define WMMSYNC_H

#include "sysdef.h"

#define ORDER_SYNC_FREQ_OFFSET 0X0502

#define ORDER_SYNC_CENTER_FREQ 0X0501
#define ORDER_SYNC_RSSI 0X0504
#define ORDER_SYNC_RX_SYNC_WORD 0X0505

#define ORDER_SYNC_TX_FLAG 0X0506
#define ORDER_SYNC_TX_CENTER_FREQ 0X0507
#define ORDER_SYNC_TX_SYNC_WORD 0X0508
#define ORDER_SYNC_TX_POWER 0X0503

#define ORDER_SYNC_BD_GPS_ENABLE 0X0509 // 北斗GPS使能

// 32字节，包括保留
typedef struct
{
    // 载波间隔，固定
    uint8 byCarrierGap; // 接收中心频率间隔

    // 接收部分
    uint8 byCarrierId;    // 接收中心频率ID
    uint8 byRxSyncWordId; // 接收同步ID
    int16 wRssi;          // 接收电平

    // 发射部分
    uint8 byTxFlag;       //  0:不发射，1：要发射
    uint8 byTxCarrierId;  // 发射中心频率ID
    uint8 byTxSyncWordId; // 发射同步字ID
    int8 byTxPower;       // 发射功率

    // 北斗gps使能
    uint8 byBdGpsEnabled; // 0:关闭，1：使能

    uint8 abyReserve[18]; // 4字节对齐考虑
} SAVE_SYNC_T;

/*********************************************************
函数定义声明
**********************************************************/
void wmm_sync_init();
void wmm_sync_set_param_with_default_data();
void wmm_sync_set_param_with_flash_data(uint8 *pbyData);
SAVE_SYNC_T *wmm_sync_query_param();
uint8 wmm_sync_query(uint16 wCommand, uint8 *pbyLtv);
uint8 wmm_sync_config(uint16 wCommand, uint8 *pbyLtv);

#endif
