#include "errcode.h"
#include "platform_core.h"
-// 前向声明,避免重复定义
-typedef enum _4g_cmd CMD_4G_T;
-typedef struct ctl_pin_4g_s ctl_pin_4g_t;
-typedef struct time_ctl_funcs_s time_ctl_funcs_t;
-typedef errcode_t (*f_cat1_msg_callback)(int msg, void *msg_buf, uint16_t msglen);
+// 兼容cat1Service的类型定义
+typedef enum _4g_message {
+ MESSAGE_4G_POWERON,//无参数 (BOOTUP)
+ MESSAGE_4G_POWEROFF,//无参数
+ MESSAGE_4G_NETWORK_CONNECTED,//无参数
+ MESSAGE_4G_NETWORK_DISCONNECTED,//无参数
+ MESSAGE_4G_NETWORK_STAT_CHANGED,//含signal,sim,运营商,
+ MESSAGE_4G_CALL_COMMING,//带电话号
+ MESSAGE_4G_CALL_CONNECTED,//带电话号
+ MESSAGE_4G_CALL_DISCONNECTED,//带电话号
+ MESSAGE_4G_SMS_RECEIVED, //返回值为字符串
+ MESSAGE_4G_AT_RECEIVED, //返回值为字符串
+ MESSAGE_4G_TIME_SYNCED,//时间同步完成
+ MESSAGE_4G_VERSION_SYNCED,//版本同步完成
+ MESSAGE_4G_MAX,
+} MESSAGE_4G_T;
+
+typedef enum _4g_cmd {
+ CMD_4G_POWERON,//无参数
+ CMD_4G_POWEROFF,//无参数
+ CMD_4G_GET_SIGNAL,//无参数
+ CMD_4G_GET_VERSION,//无参数
+ CMD_4G_GET_TIME,//无参数
+ CMD_4G_MAKE_CALL,//需要输入参数 电话号
+ CMD_4G_ANSWER_CALL,//无参数
+ CMD_4G_HUNGUP_CALL,//无参数
+ CMD_4G_SEND_DTMF, //需要输入参数 DTMF NUM(单个数字) , 包括 0 ~ 9, * , #
+ CMD_4G_AT, //需要AT指令,要求结尾带\r\n
+ CMD_4G_MAX,
+} CMD_4G_T;
+
+// 控制引脚配置结构
+typedef struct {
+ uint8_t bat_pin; //控制Cat1 battery 的gpio,没有控制,设置为 PIN_NONE 即可
+ uint8_t bat_pin_en_value;
+ uint8_t pwr_pin; //控制cat1开机键的gpio
+ uint8_t pwr_pin_en_value;
+ uint8_t reset_pin; //控制cat1重置键的gpio
+ uint8_t reset_pin_en_value;
+ uint8_t ring_pin; //cat1唤醒蓝牙用的gpio
+ uint8_t ring_pin_en_value;
+ uint8_t wakemodem_pin; //蓝牙唤醒cat1用的gpio
+ uint8_t wakemodem_pin_en_value;
+} ctl_pin_4g_t;
+
+// 时间控制函数类型
+typedef uint16_t (*f_get_timezone)(void);
+typedef void (*f_set_timezone)(uint16_t timezone_quarters);
+typedef uint32_t (*f_sync_time_utc)(uint32_t timestamp, uint32_t timezone_quarters);
+
+// 时间控制函数结构
+typedef struct {
+ f_get_timezone get_timezone;
+ f_set_timezone set_timezone;
+ f_sync_time_utc sync_time_utc;
+} time_ctl_funcs_t;
+
+// 消息回调函数类型
+typedef errcode_t (*f_cat1_msg_callback)(MESSAGE_4G_T msg, void *msg_buf, uint16_t msglen);
/********************** 主要接口 **********************/
*/
errcode_t cat1_register_time_ctl_functions(time_ctl_funcs_t *funcs);
+/**
+ * @brief 获取Cat1时间
+ */
+void cat1_gettime(void);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */