Files
2025-12-03 11:12:34 +08:00

204 lines
5.1 KiB
C

#ifndef __CAT1_COMMON_H__
#define __CAT1_COMMON_H__
#include "typedef.h"
#include "app_config.h"
// #include "ual_gnss_export.h"
// #include "aic_srv_tele_sms.h"
// #include "ual_tele_sms_export.h"
#if TCFG_CAT1_UNISOC_ENABLE
#define SMS_MAX_NUMBER UAL_TELE_SMS_NUMBER_MAX_LEN
#elif TCFG_CAT1_AICXTEK_ENABLE
#define SMS_MAX_NUMBER TS_SMS_NUM_MAX_LEN
#else
#define SMS_MAX_NUMBER 21
#endif
#if TCFG_CAT1_UNISOC_ENABLE
#define SMS_MAX_CONTENT UAL_TELE_SMS_CONTENT_MAX_LEN
#elif TCFG_CAT1_AICXTEK_ENABLE
#define SMS_MAX_CONTENT TS_SMS_PDU_MAX_LEN
#else
#define SMS_MAX_CONTENT 441
#endif
// 升级相关的枚举
enum : u8 {
// 升级任务的消息处理
CAT1_UPDATE_MSG_SUCC = 0,
CAT1_UPDATE_MSG_FAIL,
CAT1_UPDATE_MSG_TIMEOUT,
CAT1_UPDATE_MSG_DATA_TRANS_END,
CAT1_UPDATE_MSG_START,
CAT1_UPDATE_MSG_STARTING, // 5
CAT1_UPDATE_MSG_BT_DISCONNECT,
CAT1_GET_VERSION,
CAT1_UPDATE_MSG_DATA_TRANS,
CAT1_UPDATE_MSG_UPDATE_END,
};
// 模块电源状态
typedef enum cat1_power_state {
CAT1_POWER_STATE_POWEROFF = 0,
CAT1_POWER_STATE_POWERON,
CAT1_POWER_STATE_OTHER = 0xff,
} cat1_power_state_t;
struct s_wifi_info {
int rssi;
char mac_addr[20];
};
//gps相关结构体
struct s_gps_info {
float longitude;
float latitude;
float height;
int ttff_time;
int satellite_num;
// ual_gnss_satellite_info_t satellite_info[UAL_GNSS_SATELLITE_MAX_NUM];
};
//cat1状态结构体
struct s_cat1_status {
int lte_net_enable;
int is_flight_mode;
int lte_call_enable;
int lte_enable;
int lte_can_touch;
int flight_mode_can_touch;
int is_call_register;
};
//短信结构体
struct s_cat1_sms_info {
char number[SMS_MAX_NUMBER];
char content[SMS_MAX_CONTENT];
};
//短信发送结构体
struct input_content_t {
char content[SMS_MAX_CONTENT];
int index;
};
struct cat1_send_sms_info_t {
int input_index;
int offline_show_timer;
int sending_count;
int sending_show_timer;
int timeout_show_timer;
struct input_content_t input_content;
};
bool cat1_call_answer(void); //接听电话
bool cat1_call_hangup(void); //挂断电话
bool cat1_call_number(int number_len, char *number); //拨打电话
bool cat1_get_call_status(u8 *status); //获取通话状态
bool cat1_get_call_phone_num(char **phone_num); //获取电话号码
bool cat1_check_call_enable(void); //检查是否可以进行通话
//4G模块上电
bool cat1_ctrl_poweron(void);
bool cat1_ctrl_poweroff(void);
bool cat1_ctrl_is_poweron(void);
//设置飞行模式
void cat1_set_flight_mode(bool flag);
bool cat1_get_flight_mode(void);
//设置移动网络
int cat1_get_lte_net_onoff(void);
void cat1_set_lte_net_onoff(int flag);
//设置通话能力
int cat1_get_lte_call_onoff(void);
void cat1_set_lte_call_onoff(int flag);
//设置移动网络
int cat1_get_lte_onoff(void);
void cat1_set_lte_onoff(int flag);
char *cat1_get_operator(void); //获取运营商名称
char *cat1_get_smsc(void); //获取短信中心号码
int cat1_send_sms(int number_len, char *number, int content_len, char *content); //发送短信
void cat1_set_send_sms_number(char *number, int offset, int len);
char *cat1_get_send_sms_number(void);
void cat1_set_send_sms_content(char *content, int offset, int len);
char *cat1_get_send_sms_content(void);
void clear_send_sms(void);
void clear_send_sms_content(void);
int cat1_get_signal_level(void); //获取信号强度
//从工模中配置参数
int cat1_get_engineering_mode(void);
void cat1_set_engineering_mode(int flag);
//从设置菜单中配置参数
int cat1_get_set_mode(void);
void cat1_set_set_mode(int flag);
int cat1_get_call_register(void);
void cat1_set_call_register(int flag);
//4G模块是否可以上下电
int cat1_get_lte_can_touch(void);
void cat1_set_lte_can_touch(int flag);
//飞行模式是否可以设置
int cat1_get_flight_can_touch(void);
void cat1_set_flight_can_touch(int flag);
void cat1_init(void); //4G模块初始化
void cat1_close(void); //4G模块关闭
void cat1_audio_close(void);
int cat1_audio_open(void);
int app_cat1_audio_start(void);
int app_cat1_audio_stop(void);
int app_cat1_check_support(void);
bool cat1_call_use_modem_volume(void);
void cat1_call_set_modem_volume(int volume);
int cat1_call_get_modem_volume(void);
void cat1_call_input_mute(u8 mute);
int cat1_call_get_input_mute_status(void);
// 提供给cat1_update.c的接口
cat1_power_state_t cat1_module_get_power_state(void);
u8 cat1_module_get_vender_id(void);
u16 cat1_module_get_version_total_len(void);
u8 cat1_module_pasre_version(u8 *ver_buf);
int cat1_module_fota_start(u32 packet_size, u32 timeout);
int cat1_module_fota_end(void);
int cat1_module_fota_trans_data(u8 *data, u32 len);
u8 cat1_module_can_get_version(void);
int cat1_module_fota_close(void);
u16 cat1_module_get_update_end_timeout(void);
// 提供给其它模块的接口
void cat1_module_update_init(void);
u16 cat1_module_update_basic_info_get(u8 *buf, u16 len);
u16 cat1_module_update_get_update_result_info(u8 *buf, u16 len);
u8 cat1_module_update_start(u32 size);
void cat1_module_post_update_result(u8 type, int result);
u8 cat1_module_is_updating(void);
void cat1_module_update_task_del(u8 result);
#endif