125 lines
4.1 KiB
C
125 lines
4.1 KiB
C
|
/*
|
|||
|
This example code is in the Public Domain (or CC0 licensed, at your option.)
|
|||
|
|
|||
|
Unless required by applicable law or agreed to in writing, this
|
|||
|
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|||
|
CONDITIONS OF ANY KIND, either express or implied.
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
#include <stdio.h>
|
|||
|
#include <stdlib.h>
|
|||
|
#include <string.h>
|
|||
|
|
|||
|
//EventID values
|
|||
|
typedef enum {
|
|||
|
EventIDNotificationAdded = 0,
|
|||
|
EventIDNotificationModified = 1,
|
|||
|
EventIDNotificationRemoved = 2,
|
|||
|
//Reserved EventID values = 3–255
|
|||
|
} esp_EventID;
|
|||
|
|
|||
|
//EventFlags
|
|||
|
typedef enum {
|
|||
|
EventFlagSilent = (1 << 0),
|
|||
|
EventFlagImportant = (1 << 1),
|
|||
|
EventFlagPreExisting = (1 << 2),
|
|||
|
EventFlagPositiveAction = (1 << 3),
|
|||
|
EventFlagNegativeAction = (1 << 4),
|
|||
|
//Reserved EventFlags = (1 << 5)–(1 << 7
|
|||
|
}esp_EventFlags;
|
|||
|
|
|||
|
// CategoryID values
|
|||
|
typedef enum {
|
|||
|
CategoryIDOther = 0,
|
|||
|
CategoryIDIncomingCall = 1,
|
|||
|
CategoryIDMissedCall = 2,
|
|||
|
CategoryIDVoicemail = 3,
|
|||
|
CategoryIDSocial = 4,
|
|||
|
CategoryIDSchedule = 5,
|
|||
|
CategoryIDEmail = 6,
|
|||
|
CategoryIDNews = 7,
|
|||
|
CategoryIDHealthAndFitness = 8,
|
|||
|
CategoryIDBusinessAndFinance = 9,
|
|||
|
CategoryIDLocation = 10,
|
|||
|
CategoryIDEntertainment = 11,
|
|||
|
//Reserved CategoryID values = 12–255
|
|||
|
} esp_CategoryID;
|
|||
|
|
|||
|
//CommandID values
|
|||
|
typedef enum {
|
|||
|
CommandIDGetNotificationAttributes = 0,
|
|||
|
CommandIDGetAppAttributes = 1,
|
|||
|
CommandIDPerformNotificationAction = 2,
|
|||
|
//Reserved CommandID values = 3–255
|
|||
|
} esp_CommandID;
|
|||
|
|
|||
|
//NotificationAttributeID
|
|||
|
typedef enum {
|
|||
|
NotificationAttributeIDAppIdentifier = 0,
|
|||
|
NotificationAttributeIDTitle = 1, //(Needs to be followed by a 2-bytes max length parameter)
|
|||
|
NotificationAttributeIDSubtitle = 2, //(Needs to be followed by a 2-bytes max length parameter)
|
|||
|
NotificationAttributeIDMessage = 3, //(Needs to be followed by a 2-bytes max length parameter)
|
|||
|
NotificationAttributeIDMessageSize = 4,
|
|||
|
NotificationAttributeIDDate = 5,
|
|||
|
NotificationAttributeIDPositiveActionLabel = 6,
|
|||
|
NotificationAttributeIDNegativeActionLabel = 7,
|
|||
|
//Reserved NotificationAttributeID values = 8–255
|
|||
|
} esp_NotificationAttributeID;
|
|||
|
|
|||
|
/*
|
|||
|
Note: The format of the NotificationAttributeIDMessageSize constant is a string that represents the integral value
|
|||
|
of the message size. The format of the NotificationAttributeIDDate constant is a string that uses the Unicode Technical
|
|||
|
Standard (UTS) #35 date format pattern yyyyMMdd'T'HHmmSS. The format of all the other constants in Table 3-5 are UTF-8
|
|||
|
strings.
|
|||
|
*/
|
|||
|
|
|||
|
//ActionID values
|
|||
|
typedef enum {
|
|||
|
ActionIDPositive = 0,
|
|||
|
ActionIDNegative = 1,
|
|||
|
//Reserved ActionID values = 2–255
|
|||
|
} esp_ActionID;
|
|||
|
|
|||
|
//AppAttributeID Values
|
|||
|
typedef enum {
|
|||
|
AppAttributeIDDisplayName = 0,
|
|||
|
//Reserved AppAttributeID values = 1–255
|
|||
|
} esp_AppAttributeID;
|
|||
|
|
|||
|
typedef struct {
|
|||
|
uint8_t noti_attribute_id;
|
|||
|
uint16_t attribute_len;
|
|||
|
} esp_noti_attr_list_t;
|
|||
|
|
|||
|
typedef enum {
|
|||
|
Unknown_command = (0xA0), //The commandID was not recognized by the NP.
|
|||
|
Invalid_command = (0xA1), //The command was improperly formatted.
|
|||
|
Invalid_parameter = (0xA2), // One of the parameters (for example, the NotificationUID) does not refer to an existing object on the NP.
|
|||
|
Action_failed = (0xA3), //The action was not performed
|
|||
|
} esp_error_code;
|
|||
|
|
|||
|
typedef enum {
|
|||
|
attr_appidentifier_index = 0, //The commandID was not recognized by the NP.
|
|||
|
attr_title_index,
|
|||
|
attr_subtitle_index,
|
|||
|
attr_message_index,
|
|||
|
attr_messagesize_index,
|
|||
|
attr_date_index,
|
|||
|
attr_positiveactionlabel_index,
|
|||
|
attr_negativeactionlabel_index,
|
|||
|
} esp_attr_index;
|
|||
|
|
|||
|
#define ESP_NOTIFICATIONUID_LEN 4
|
|||
|
|
|||
|
|
|||
|
char *EventID_to_String(uint8_t EventID);
|
|||
|
char *CategoryID_to_String(uint8_t CategoryID);
|
|||
|
void esp_receive_apple_notification_source(uint8_t *message, uint16_t message_len);
|
|||
|
void esp_receive_apple_data_source(uint8_t *message, uint16_t message_len);
|
|||
|
char *Errcode_to_String(uint16_t status);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|