100 lines
2.9 KiB
C
100 lines
2.9 KiB
C
/**
|
||
* @file cm_modem_info.h
|
||
* @brief Modem_info接口
|
||
* @copyright Copyright © 2021 China Mobile IOT. All rights reserved.
|
||
* @author By ZH
|
||
* @date 2022/11/18
|
||
*
|
||
* @defgroup modem modem
|
||
* @ingroup DS
|
||
* @{
|
||
*/
|
||
#ifndef __CM_MODEM_INFO_H__
|
||
#define __CM_MODEM_INFO_H__
|
||
|
||
/****************************************************************************
|
||
* Included Files
|
||
****************************************************************************/
|
||
|
||
#include <stdint.h>
|
||
#include<stdbool.h>
|
||
|
||
#ifdef __cplusplus
|
||
#define EXTERN extern "C"
|
||
extern "C"
|
||
{
|
||
#else
|
||
#define EXTERN extern
|
||
#endif
|
||
|
||
/** 无线信息 */
|
||
typedef struct
|
||
{
|
||
uint8_t rat; /**无线接入模式*/
|
||
uint16_t rsrp; /**信号接收功率 */
|
||
uint16_t rsrq; /**信号接收质量 */
|
||
uint16_t rssi; /**信号强度指示 */
|
||
uint16_t rxlev; /**信号接收电平 */
|
||
uint16_t tx_power; /**最近一次发射功率 */
|
||
uint32_t tx_time; /**上行累计发送时长 */
|
||
uint32_t rx_time; /**下行累计接收时长 */
|
||
uint32_t last_cellid; /**上一次SB1服务小区ID */
|
||
uint8_t last_ecl; /**上一次ECL值 */
|
||
uint16_t last_snr; /**上一次信噪比 */
|
||
uint32_t last_earfcn; /**上一次绝对射频频道编号 */
|
||
uint16_t last_pci; /**上一次小区物理ID */
|
||
} cm_radio_info_t;
|
||
|
||
|
||
/** 小区信息 */
|
||
typedef struct
|
||
{
|
||
bool primary_cell; /**是否为当前驻留小区 */
|
||
uint8_t mcc[8]; /**移动国家代码 */
|
||
uint8_t mnc[8]; /**移动网络代码 */
|
||
uint32_t earfcn; /**绝对射频频道编号 */
|
||
uint8_t earfcn_offset; /**绝对射频频偏 */
|
||
uint16_t tac; /**类型分配码 */
|
||
uint16_t pci; /**小区物理ID */
|
||
uint16_t rsrp; /**信号接收功率 */
|
||
uint16_t rsrq; /**信号接收质量 */
|
||
uint16_t rssi; /**信号强度指示 */
|
||
uint16_t snr; /**信噪比 */
|
||
uint32_t bandwidth; /**带宽 */
|
||
uint32_t cid; /**小区识别码 */
|
||
} cm_cell_info_t;
|
||
/**
|
||
* @brief 获取模组小区信息
|
||
*
|
||
* @param [out] cell_info[] 小区信息数组
|
||
* @param [in] cell_info_num 欲获取小区信息个数(暂时只支持当前小区信息,该参数无效)
|
||
*
|
||
* @return
|
||
* >= 0 - 实际获取到的小区信息个数 \n
|
||
* < 0 - 失败, 返回值为错误码
|
||
*
|
||
* @details More details
|
||
*/
|
||
int32_t cm_modem_info_cell(cm_cell_info_t cell_info[], uint16_t cell_info_num);
|
||
|
||
/**
|
||
* @brief 获取模组无线信息
|
||
*
|
||
* @param [out] radio_info 无线信息
|
||
*
|
||
* @return
|
||
* = 0 - 成功 \n
|
||
* < 0 - 失败, 返回值为错误码
|
||
*
|
||
* @details 该函数无法获取rat,需通过虚拟AT+COPS?获取
|
||
*/
|
||
int32_t cm_modem_info_radio(cm_radio_info_t *radio_info);
|
||
|
||
#undef EXTERN
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif /* __CM_MODEM_H__ */
|
||
|
||
/** @}*/ |