blob: cedf230b2b6debdd00478dc8fef7b17f79b0facd [file] [log] [blame]
liubin281ac462023-07-19 14:22:54 +08001#ifndef LYNQ_SMS_QPI_H
2#define LYNQ_SMS_QPI_H
3/*
4*
5* Data : 2022/11/29
6* Author : LuoJian
7*/
8
9#include "mbtk_type.h"
10
11#define TELEPHONE_NUM_MAX 16
12#define MSM_NUMBER_MAX 1024+1
13#define RES_NUM_MIN 128
14
15
16enum EnumDCS {
17 BIT7 = 0, // GSM ×Ö·û¼¯
18 BIT8 = 1, // ASCII×Ö·û¼¯
19 UCS2 = 2 // Unicode ×Ö·û¼¯
20};
21
22struct PDUUDH {
23 unsigned int count; // ÐÅÏ¢ÔªËØÊý¾Ý×Ö½ÚÊý
24 char IEI; // ÐÅÏ¢ÔªËØ±êʶ
25 char *IED; // ÐÅÏ¢ÔªËØÊý¾Ý
26};
27
28// Óû§Êý¾ÝÍ·
29struct UDHS {
30 int count;
31 struct PDUUDH *UDH;
32};
33
34struct SMS_Struct {
35 char *SCA; // ·þÎñÖÐÐĵØÖ·
36 char *OA; // ·¢ËÍ·½µØÖ·
37 char *SCTS; // ·þÎñÖÐÐÄʱ¼ä´Á
38 struct UDHS *UDH; // Óû§Êý¾ÝÍ·
39 char *UD; // Óû§Êý¾Ý
40
41 bool RP; // Ó¦´ð·¾¶
42 bool UDHI; // Óû§Êý¾ÝÍ·±êʶ
43 bool SRI; // ״̬±¨¸æÖ¸Ê¾
44 bool MMS; // ¸ü¶àÐÅÏ¢·¢ËÍ
45 int MTI; // ÐÅÏ¢ÀàÐÍָʾ
46
47 char PID; // PID ЭÒé±êʶ
48
49 enum EnumDCS DCS; // Êý¾Ý±àÂë·½°¸
50 bool TC; // Îı¾Ñ¹Ëõָʾ 0£º δѹËõ 1£ºÑ¹Ëõ
51 int MC; // ÏûÏ¢ÀàÐÍ -1£º ÎÞ 1£ºÒƶ¯Éè±¸ÌØ¶¨ÀàÐÍ 2£ºSIMÌØ¶¨ÀàÐÍ 3£ºÖÕ¶ËÉè±¸ÌØ¶¨ÀàÐÍ
52
53};
54
55extern struct SMS_Struct PDUDecoding(const char *data);
56#define DSC_to_msg(DSC) (DSC == 0 ? "Bit7" : (DSC == 1 ? "Bit8" : "UCS2"))
57
58
59
60int lynq_init_sms(int uToken);
61int lynq_deinit_sms(void);
62int lynq_delete_sms(int index);
63int lynq_wait_receive_new_sms(int *handle);
64int lynq_send_sms(char *telephony_num, int state, char *msg);
65int lynq_list_sms(int stat, int index, char *data);
66int lynq_query_sms_storage_status(void);
67
68void lynq_sms_state_change_cb(const void* data, int data_len);
69
70int lynq_get_smsc_address(char *serviceNumber);
71int lynq_set_smsc_address(const char* service_num);
72
73#endif