1/*
2 * Copyright (C) 2021-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef JSON_PAYLOAD_H
17#define JSON_PAYLOAD_H
18
19#include <stdint.h>
20#include "nstackx.h"
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#define NSTACKX_MAX_URI_BUFFER_LENGTH 64
27
28#define JSON_COAP_URI "coapUri"
29#define JSON_CAPABILITY_BITMAP "capabilityBitmap"
30#define JSON_DEVICE_ID "deviceId"
31#define JSON_DEVICE_NAME "devicename"
32#define JSON_DEVICE_WLAN_IP "wlanIp"
33#define JSON_DEVICE_TYPE "type"
34#define JSON_DEVICE_TYPE_EXTERN "typeEx"
35#define JSON_REQUEST_MODE "mode"
36#define JSON_DEVICE_HASH "deviceHash"
37#define JSON_SERVICE_DATA "serviceData"
38#define JSON_BUSINESS_TYPE "bType"
39#define JSON_BUSINESS_DATA "bData"
40#define JSON_EXTEND_SERVICE_DATA "extendServiceData"
41#define JSON_SEQUENCE_NUMBER "seqNo"
42#define JSON_NOTIFICATION "notify"
43
44#ifdef DFINDER_USE_MINI_NSTACKX
45#define COAP_DEVICE_DISCOVER_URI "device_discover"
46#endif
47
48struct DeviceInfo;
49
50char *PrepareServiceDiscover(const char *localIpStr, uint8_t isBroadcast, uint8_t businessType);
51int32_t ParseServiceDiscover(const uint8_t *buf, struct DeviceInfo *deviceInfo, char **remoteUrlPtr);
52char *PrepareServiceNotification(void);
53int32_t ParseServiceNotification(const uint8_t *buf, NSTACKX_NotificationConfig *config);
54
55#ifdef __cplusplus
56}
57#endif
58#endif /* #ifndef JSON_PAYLOAD_H */
59