From 2472a18445121f6aacd132c750d9ebb010532c75 Mon Sep 17 00:00:00 2001 From: xuchongyu Date: Mon, 24 Apr 2023 14:46:00 +0800 Subject: [PATCH 1/5] add UAV softbus client --- .../devicemanager/devicemanager | Bin 0 -> 436352 bytes UAV_softbus_client/hichain/hichain_main | Bin 0 -> 18896 bytes UAV_softbus_client/hichain/hichain_main.c | 639 +++++++++++++++++ UAV_softbus_client/hichain/hichain_main_OH | Bin 0 -> 11096 bytes UAV_softbus_client/softbus_sample/build.sh | 4 + .../include/discovery_service.h | 150 ++++ .../softbus_sample/include/session.h | 434 ++++++++++++ .../include/softbus_bus_center.h | 649 ++++++++++++++++++ .../softbus_sample/include/softbus_common.h | 386 +++++++++++ .../softbus_sample/include/softbus_errcode.h | 206 ++++++ .../softbus_sample/include/vehicle.h | 61 ++ .../softbus_sample/prepare_env.sh | 12 + .../softbus_sample/softbus_client_main.cpp | 318 +++++++++ .../softbus_trans_permission.json | 171 +++++ UAV_softbus_client/softbus_sample/vehicle.cpp | 254 +++++++ 15 files changed, 3284 insertions(+) create mode 100644 UAV_softbus_client/devicemanager/devicemanager create mode 100644 UAV_softbus_client/hichain/hichain_main create mode 100644 UAV_softbus_client/hichain/hichain_main.c create mode 100644 UAV_softbus_client/hichain/hichain_main_OH create mode 100644 UAV_softbus_client/softbus_sample/build.sh create mode 100644 UAV_softbus_client/softbus_sample/include/discovery_service.h create mode 100644 UAV_softbus_client/softbus_sample/include/session.h create mode 100644 UAV_softbus_client/softbus_sample/include/softbus_bus_center.h create mode 100644 UAV_softbus_client/softbus_sample/include/softbus_common.h create mode 100644 UAV_softbus_client/softbus_sample/include/softbus_errcode.h create mode 100644 UAV_softbus_client/softbus_sample/include/vehicle.h create mode 100644 UAV_softbus_client/softbus_sample/prepare_env.sh create mode 100644 UAV_softbus_client/softbus_sample/softbus_client_main.cpp create mode 100644 UAV_softbus_client/softbus_sample/softbus_trans_permission.json create mode 100644 UAV_softbus_client/softbus_sample/vehicle.cpp diff --git a/UAV_softbus_client/devicemanager/devicemanager b/UAV_softbus_client/devicemanager/devicemanager new file mode 100644 index 0000000000000000000000000000000000000000..2dcd4e05b4cb5bdc794bce93f637d87325e88161 GIT binary patch literal 436352 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 l{!2Za} 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 LYm=zuP164X2>!o! literal 0 HcmV?d00001 diff --git a/UAV_softbus_client/hichain/hichain_main.c b/UAV_softbus_client/hichain/hichain_main.c new file mode 100644 index 0000000..acc0a12 --- /dev/null +++ b/UAV_softbus_client/hichain/hichain_main.c @@ -0,0 +1,639 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#define APP_ID "hichain_test" +#define SESSION_NAME "com.huawei.devicegroupmanage.test" +#define DEFAULT_CAPABILITY "osdCapability" +#define PUBLISH_ID 100 + +#define DEFAULT_GROUP_NAME "dsoftbus" +#define DEFAULT_PIN_CODE "123456" +#define MAX_UDID_LEN 65 +#define MAX_GROUP_LEN 65 +#define ERR_RET -1 + +#define FIELD_ETH_IP "ETH_IP" +#define FIELD_ETH_PORT "ETH_PORT" +#define FIELD_WLAN_IP "WIFI_IP" +#define FIELD_WLAN_PORT "WIFI_PORT" + +enum { + DEVICE_DISCOVERY = 0, + DEVICE_JOINING, + DEVICE_ONLINE, +}DeviceStatus; + +char *g_deviceStatus[] = { + "discovery", + "joining", + "online", +}; + +typedef struct DeviceList { + struct DeviceList *next; + DeviceInfo device; + int status; + int64_t requestId; +} DeviceList; +DeviceList *g_deviceListHead = NULL; + +static const DeviceGroupManager *g_hichainGmInstance = NULL; +static char g_udid[MAX_UDID_LEN]; +static char g_groupId[MAX_GROUP_LEN]; +static int64_t g_requestId = 1; + +static const char *GetStringFromJson(const cJSON *obj, const char *key) +{ + cJSON *item; + + if (obj == NULL || key == NULL) + return NULL; + + item = cJSON_GetObjectItemCaseSensitive(obj, key); + if (item != NULL && cJSON_IsString(item)) { + return cJSON_GetStringValue(item); + } else { + int len = cJSON_GetArraySize(obj); + for (int i = 0; i < len; i++) { + item = cJSON_GetArrayItem(obj, i); + if (cJSON_IsObject(item)) { + const char *value = GetStringFromJson(item, key); + if (value != NULL) + return value; + } + } + } + return NULL; +} + +static int HichainSaveGroupID(const char *param) +{ + cJSON *msg = cJSON_Parse(param); + const char *value = NULL; + + if (msg == NULL) { + printf("HichainSaveGroupID: cJSON_Parse fail\n"); + return ERR_RET; + } + + value = GetStringFromJson(msg, FIELD_GROUP_ID); + if (value == NULL) { + printf("HichainSaveGroupID:GetStringFromJson fail\n"); + cJSON_Delete(msg); + return ERR_RET; + } + + memcpy_s(g_groupId, MAX_GROUP_LEN, value, strlen(value)); + printf("HichainSaveGroupID:groupID=%s\n", g_groupId); + + cJSON_Delete(msg); + return 0; +} + +static void HiChainGmOnFinish(int64_t requestId, int operationCode, const char *returnData) +{ + if (operationCode == GROUP_CREATE && returnData != NULL) { + printf("create new group finish:requestId=%lld, returnData=%s\n", requestId, returnData); + HichainSaveGroupID(returnData); + } else if (operationCode == MEMBER_JOIN) { + DeviceList *node = g_deviceListHead; + + printf("member join finish:requestId=%lld, returnData=%s\n", requestId, returnData); + while (node) { + if (node->requestId != requestId) { + node = node->next; + continue; + } + node->status = DEVICE_ONLINE; + break; + } + } else { + printf("CB:requestId=%lld, operationCode=%d, returnData=%s\n", requestId, operationCode, returnData); + } +} + +static void HiChainGmOnError(int64_t requestId, int operationCode, int errorCode, const char *errorReturn) +{ + DeviceList *node = g_deviceListHead; + + printf("CB:requestId=%lld, operationCode=%d, errorCode=%d, errorReturn=%s\n", requestId, operationCode, errorCode, errorReturn); + while (node) { + if (node->requestId != requestId) { + node = node->next; + continue; + } + node->status = DEVICE_DISCOVERY; + break; + } +} + +static char *HiChainGmOnRuest(int64_t requestId, int operationCode, const char *reqParams) +{ + cJSON *msg = cJSON_CreateObject(); + char *param = NULL; + + printf("CB:requestId=%lld, operationCode=%d, reqParams=%s", requestId, operationCode, reqParams); + + if (operationCode != MEMBER_JOIN) { + return NULL; + } + + if (msg == NULL) { + printf("HiChainGmOnRuest: cJSON_CreateObject fail\n"); + } + + if (cJSON_AddNumberToObject(msg, FIELD_CONFIRMATION, REQUEST_ACCEPTED) == NULL || + cJSON_AddStringToObject(msg, FIELD_PIN_CODE, DEFAULT_PIN_CODE) == NULL || + cJSON_AddStringToObject(msg, FIELD_DEVICE_ID, g_udid) == NULL) { + printf("HiChainGmOnRuest: cJSON_AddToObject fail\n"); + cJSON_Delete(msg); + return NULL; + } + + param = cJSON_PrintUnformatted(msg); + cJSON_Delete(msg); + return param; +} + +static const DeviceAuthCallback g_groupManagerCallback = { + .onRequest = HiChainGmOnRuest, + .onError = HiChainGmOnError, + .onFinish = HiChainGmOnFinish, +}; + +static int HichainGmRegCallback(void) +{ + return g_hichainGmInstance->regCallback(APP_ID, &g_groupManagerCallback); +} + +static void HichainGmUnRegCallback(void) +{ + g_hichainGmInstance->unRegCallback(APP_ID); +} + +static int HichainGmGetGroupInfo(char **groupVec, uint32_t *num) +{ + cJSON *msg = cJSON_CreateObject(); + char *param = NULL; + int ret = ERR_RET; + + if (msg == NULL) { + printf("HichainGmGetGroupInfo: cJSON_CreateObject fail\n"); + return ret; + } + + if (cJSON_AddNumberToObject(msg, FIELD_GROUP_TYPE, PEER_TO_PEER_GROUP) == NULL || + cJSON_AddStringToObject(msg, FIELD_GROUP_NAME, DEFAULT_GROUP_NAME) == NULL || + cJSON_AddNumberToObject(msg, FIELD_GROUP_VISIBILITY, GROUP_VISIBILITY_PUBLIC) == NULL) { + printf("HichainGmGetGroupInfo: cJSON_AddToObject fail\n"); + goto err_cJSON_Delete; + } + param = cJSON_PrintUnformatted(msg); + if (param == NULL) { + printf("HichainGmGetGroupInfo: cJSON_PrintUnformatted fail\n"); + goto err_cJSON_Delete; + } + + ret = g_hichainGmInstance->getGroupInfo(ANY_OS_ACCOUNT, APP_ID, param, groupVec, num); + if (ret != 0) { + printf("getGroupInfo fail:%d", ret); + goto err_getGroupInfo; + } + +err_getGroupInfo: + cJSON_free(param); +err_cJSON_Delete: + cJSON_Delete(msg); + return ret; +} + +static void HichainGmDestroyGroupInfo(char **groupVec) +{ + g_hichainGmInstance->destroyInfo(groupVec); +} + +static int HichainGmCreatGroup(void) +{ + cJSON *msg = cJSON_CreateObject(); + char *param = NULL; + int ret = ERR_RET; + + if (msg == NULL) + return ret; + + if (cJSON_AddNumberToObject(msg, FIELD_GROUP_TYPE, PEER_TO_PEER_GROUP) == NULL || + cJSON_AddStringToObject(msg, FIELD_DEVICE_ID, g_udid) == NULL || + cJSON_AddStringToObject(msg, FIELD_GROUP_NAME, DEFAULT_GROUP_NAME) == NULL || + cJSON_AddNumberToObject(msg, FIELD_USER_TYPE, 0) == NULL || + cJSON_AddNumberToObject(msg, FIELD_GROUP_VISIBILITY, GROUP_VISIBILITY_PUBLIC) == NULL || + cJSON_AddNumberToObject(msg, FIELD_EXPIRE_TIME, EXPIRE_TIME_MAX) == NULL) { + printf("HichainGmCreatGroup: cJSON_AddToObject fail\n"); + cJSON_Delete(msg); + return ret; + } + param = cJSON_PrintUnformatted(msg); + if (param == NULL) { + printf("HichainGmCreatGroup: cJSON_PrintUnformatted fail\n"); + cJSON_Delete(msg); + return ret; + } + + ret = g_hichainGmInstance->createGroup(ANY_OS_ACCOUNT, g_requestId++, APP_ID, param); + + cJSON_free(param); + cJSON_Delete(msg); + return ret; +} + +static bool HichainIsDeviceInGroup(const char *groupId, const char *devId) +{ + return g_hichainGmInstance->isDeviceInGroup(ANY_OS_ACCOUNT, APP_ID, groupId, devId); +} + +static int HichainGmAddMemberToGroup(DeviceInfo *device, const char *groupId) +{ + cJSON *msg = cJSON_CreateObject(); + cJSON *addr = NULL; + char *param = NULL; + int ret = ERR_RET; + + if (msg == NULL) { + printf("HichainGmAddMemberToGroup: cJSON_CreateObject1 fail\n"); + return ret; + } + + addr = cJSON_CreateObject(); + if (addr == NULL) { + printf("HichainGmAddMemberToGroup: cJSON_CreateObject2 fail\n"); + goto err_cJSON_CreateObject; + } + + for (unsigned int i = 0; i < device->addrNum; i++) { + if (device->addr[i].type == CONNECTION_ADDR_ETH) { + if (cJSON_AddStringToObject(addr, FIELD_ETH_IP, device->addr[i].info.ip.ip) == NULL || + cJSON_AddNumberToObject(addr, FIELD_ETH_PORT, device->addr[i].info.ip.port) == NULL) { + printf("HichainGmAddMemberToGroup: cJSON_AddToObject1 fail\n"); + goto err_cJSON_AddToObject; + } + } else if (device->addr[i].type == CONNECTION_ADDR_WLAN) { + if (cJSON_AddStringToObject(addr, FIELD_WLAN_IP, device->addr[i].info.ip.ip) == NULL || + cJSON_AddNumberToObject(addr, FIELD_WLAN_PORT, device->addr[i].info.ip.port) == NULL) { + printf("HichainGmAddMemberToGroup: cJSON_AddToObject2 fail\n"); + goto err_cJSON_AddToObject; + } + } else { + printf("unsupport connection type:%d\n", device->addr[i].type); + goto err_cJSON_AddToObject; + } + } + + param = cJSON_PrintUnformatted(addr); + if (param == NULL) { + printf("HichainGmAddMemberToGroup: cJSON_PrintUnformatted1 fail\n"); + goto err_cJSON_AddToObject; + } + + if (cJSON_AddStringToObject(msg, FIELD_GROUP_ID, groupId) == NULL || + cJSON_AddNumberToObject(msg, FIELD_GROUP_TYPE, PEER_TO_PEER_GROUP) == NULL || + cJSON_AddStringToObject(msg, FIELD_PIN_CODE, DEFAULT_PIN_CODE) == NULL || + cJSON_AddStringToObject(msg, FIELD_DEVICE_ID, g_udid) == NULL || + cJSON_AddStringToObject(msg, FIELD_GROUP_NAME, DEFAULT_GROUP_NAME) == NULL || + cJSON_AddBoolToObject(msg, FIELD_IS_ADMIN, false) == NULL || + cJSON_AddStringToObject(msg, FIELD_CONNECT_PARAMS, param) == NULL) { + printf("HichainGmAddMemberToGroup: cJSON_AddToObject4 fail\n"); + goto err_cJSON_AddToObject1; + } + + cJSON_free(param); + param = cJSON_PrintUnformatted(msg); + if (param == NULL) { + printf("HichainGmAddMemberToGroup: cJSON_PrintUnformatted fail\n"); + goto err_cJSON_CreateObject; + } + + ret = g_hichainGmInstance->addMemberToGroup(ANY_OS_ACCOUNT, g_requestId++, APP_ID, param); + if (ret != 0) { + printf("addMemberToGroup fail:%d\n", ret); + } + +err_cJSON_AddToObject1: + cJSON_free(param); +err_cJSON_AddToObject: + cJSON_Delete(addr); +err_cJSON_CreateObject: + cJSON_Delete(msg); + return ret; +} + +static int HichainInit(void) +{ + char *groupVec = NULL; + uint32_t num; + int ret; + + ret = InitDeviceAuthService(); + if (ret != 0) { + printf("InitDeviceAuthService fail:%d\n", ret); + return ret; + } + + g_hichainGmInstance = GetGmInstance(); + if (g_hichainGmInstance == NULL) { + printf("GetGmInstance fail\n"); + ret = ERR_RET; + goto err_GetGmInstance; + } + + ret = HichainGmRegCallback(); + if (ret != 0) { + printf("HichainGmregCallback fail.:%d\n", ret); + goto err_HichainGmRegCallback; + } + + ret = HichainGmGetGroupInfo(&groupVec, &num); + if (ret != 0) { + printf("HichainGmGetGroupInfo fail:%d\n", ret); + goto err_HichainGmGetGroupInfo; + } + + if (num == 0) { + ret = HichainGmCreatGroup(); + if (ret) { + printf("HichainGmCreatGroup fail:%d\n", ret); + goto err_HichainGmCreatGroup; + } + } else { + printf("HichainGmGetGroupInfo:num=%u\n", num); + HichainSaveGroupID(groupVec); + HichainGmDestroyGroupInfo(&groupVec); + } + + return 0; + +err_HichainGmCreatGroup: +err_HichainGmGetGroupInfo: + HichainGmUnRegCallback(); +err_HichainGmRegCallback: +err_GetGmInstance: + DestroyDeviceAuthService(); + return ret; +} + +static void CheckDeviceStatus(void) +{ + DeviceList *node = g_deviceListHead; + char *groupVec = NULL; + uint32_t num; + int ret; + + ret = HichainGmGetGroupInfo(&groupVec, &num); + if (ret != 0 || num == 0) { + printf("HichainGmGetGroupInfo fail\n"); + return; + } + + ret = HichainSaveGroupID(groupVec); + if (ret != 0) + goto err_HichainSaveGroupID; + + while (node) { + if (HichainIsDeviceInGroup(g_groupId, node->device.devId)) { + node->status = DEVICE_ONLINE; + } + node = node->next; + } + +err_HichainSaveGroupID: + HichainGmDestroyGroupInfo(&groupVec); +} + +static bool CheckDeviceExist(const DeviceInfo *device) +{ + DeviceList *node = g_deviceListHead; + + while (node) { + if (strcmp(device->devId, node->device.devId) == 0) { + return true; + } + node = node->next; + } + return false; +} + +static void SaveDeviceInfo(const DeviceInfo *device) +{ + DeviceList *node = malloc(sizeof(DeviceList)); + + if (node == NULL) { + printf("SaveDeviceInfo: malloc fail\n"); + return; + } + + node->device = *device; + node->requestId = ERR_RET; + node->status = DEVICE_DISCOVERY; + if (g_deviceListHead == NULL) { + node->next = NULL; + } else { + node->next = g_deviceListHead; + } + g_deviceListHead = node; +} + +static DeviceList *GetDeviceInfo(int idx) +{ + DeviceList *node = g_deviceListHead; + while (node) { + if (--idx == 0) { + return node; + } + node = node->next; + } + return NULL; +} + +static void FreeDeviceInfo() +{ + while (g_deviceListHead) { + DeviceList *node = g_deviceListHead->next; + free(g_deviceListHead); + g_deviceListHead = node; + } +} + +static void ListDevice(void) +{ + DeviceList *node = g_deviceListHead; + int input, num = 0; + + if (node == NULL) { + printf("Get no device!\n"); + return; + } + + CheckDeviceStatus(); + while (node) { + printf("\n%d: devName=%s\n", ++num, node->device.devName); + printf("\tdevId=%s\n", node->device.devId); + printf("\tstatus=%s\n", g_deviceStatus[node->status]); + node = node->next; + } + + printf("Input num to auth:"); + scanf_s("%d", &input); + if (input <= 0 || input >num) { + printf("error input num\n"); + return; + } + + node = GetDeviceInfo(input); + if (node == NULL) { + printf("GetDeviceInfo fail\n"); + return; + } + + if (node->status == DEVICE_DISCOVERY) { + node->requestId = g_requestId; + node->status = DEVICE_JOINING; + int ret = HichainGmAddMemberToGroup(&node->device, g_groupId); + if (ret) { + printf("HichainGmAddMemberToGroup fail:%d\n", ret); + node->requestId = ERR_RET; + node->status = DEVICE_DISCOVERY; + return; + } + } +} + +static void PublishSuccess(int publishId) +{ + printf("CB: publish %d done\n", publishId); +} + +static void PublishFailed(int publishId, PublishFailReason reason) +{ + printf("CB: publish %d failed, reason=%d\n", publishId, (int)reason); +} + +static int PublishServiceInterface(void) +{ + PublishInfo info = { + .publishId = PUBLISH_ID, + .mode = DISCOVER_MODE_PASSIVE, + .medium = COAP, + .freq = LOW, + .capability = DEFAULT_CAPABILITY, + .capabilityData = NULL, + .dataLen = 0, + }; + IPublishCallback cb = { + .OnPublishSuccess = PublishSuccess, + .OnPublishFail = PublishFailed, + }; + return PublishService(APP_ID, &info, &cb); +} + +static void DeviceFound(const DeviceInfo *device) +{ + printf("CB: devName=%s", device->devName); + + if (CheckDeviceExist(device)) { + printf("device:%s udid:%s is already in List\n", device->devName, device->devId); + return; + } + SaveDeviceInfo(device); +} + +static void DiscoverySuccess(int subscribeId) +{ + printf("CB: discover subscribeId=%d\n", subscribeId); +} + +static void DiscoveryFailed(int subscribeId, DiscoveryFailReason reason) +{ + printf("CB: discover subscribeId=%d fail, reason=%d\n", subscribeId, (int)reason); +} + +static int DiscoveryInterface() +{ + SubscribeInfo info = { + .subscribeId = PUBLISH_ID, + .mode = DISCOVER_MODE_ACTIVE, + .medium = COAP, + .freq = LOW, + .isSameAccount = false, + .isWakeRemote = false, + .capability = DEFAULT_CAPABILITY, + .capabilityData = NULL, + .dataLen = 0, + }; + IDiscoveryCallback cb = { + .OnDeviceFound = DeviceFound, + .OnDiscoverFailed = DiscoveryFailed, + .OnDiscoverySuccess = DiscoverySuccess, + }; + return StartDiscovery(APP_ID, &info, &cb); +} + +int main() +{ + int ret; + bool loop = true; + + ret = GetDevUdid(g_udid, MAX_UDID_LEN); + if (ret) { + printf("GetDevUdid fail:%d\n", ret); + return ret; + } + + ret = HichainInit(); + if (ret) { + printf("HichainInit fail\n"); + return ret; + } + + ret = PublishServiceInterface(); + if (ret) { + printf("PublishService fail, ret=%d\n", ret); + goto err_PublishServiceInterface; + } + + ret = DiscoveryInterface(); + if (ret != 0) { + printf("DiscoveryInterface fail\n"); + goto err_DiscoveryInterface; + } + + while (loop) { + printf("\nInput l to list device; Input s to stop:"); + while (true) { + char c = getchar(); + if (c == 'l') { + ListDevice(); + continue; + } else if (c == 's') { + loop = false; + break; + } else if (c == '\n') { + break; + } else { + continue; + } + } + } + + StopDiscovery(APP_ID, PUBLISH_ID); + FreeDeviceInfo(); +err_DiscoveryInterface: + UnPublishService(APP_ID, PUBLISH_ID); +err_PublishServiceInterface: + HichainGmUnRegCallback(); + return ret; + +} diff --git a/UAV_softbus_client/hichain/hichain_main_OH b/UAV_softbus_client/hichain/hichain_main_OH new file mode 100644 index 0000000000000000000000000000000000000000..8121cb8880ece46a843d937348b2925d6a64ae29 GIT binary patch literal 11096 zcmd5?dw5jUwO=!tKnO7zX+$cIJ3NA8lp$EOfKU?{PG%^Q2oY&Ndy`4#gc+Qd^T349 zmhiau(h8bdYGbdMw6zwgt&@xNiw`cj^>MLPJF%^DEy@5!m^^Sm+s4P&xxcl~Ig`l| zuKsy9th4r7d+oK?UVH7ecjla}D_2VfgMqY?M^<7gJ)3AD@W@;|jFi8SEL4QHX*89_ zfyHeaw4noo2|R{8z*C?#m<*bM+rSn8lr8BmVLSl0lUZpOJlMc?#7h*&&uQ-hziWj8 zQ;b9mY?s!*r;MoQHU*}D-3QRxAxfol0Cok=f@a`$wqb35)UDUwP&8_PE!vZ?R|7P` zH%dGAzZLC3pDAK|a9QRRI6{NVK{GI)0ZpO(6Nofu0gpjzpYQWF&iA?J`C}2^JXhFn ziv(>8(9Zs0nHopUy3aTnd@k&NtxQ6NeWMkoZ`26jS%8%}v<3BV>F7uf&HcCN=zDW$ zp5wk8n<U(ZABsPwD92>*!-T`duCUfsQujIDp4D>*$#}`Z^uGKu0gq(Q9<{9Xk3h z9et0E-lwB~qoZHc(SOp>gF5;jI=YmDUoAZU>vXhTN8hfaH|glGj^3i9x9R9|jA`Lu zMVW-nS^->|rAtJ7UIQMReHEa2}QjRFIRGf==A0bU;%ay220~BOApI_nq z%Z2kqp{R|0AT?gJaBk(od!K#wWdP@+iGbWv3StHzCnU%MdOQH>hLF;T>g!#ytI=B@ z3*7Auxa*rjq54p`0&FCmrusXUEToIH+utKs>dUW)}|I0Gh9CJ78#^l4$B+8 zk*FN5Zw|ZsGQ^sL;9raziH3bL^s(}$JL{V~ch)z%yuLAvjWJi)O@7(m6l$%Hs1-ub zCVvQm7cqGOHLY4#v!>oI`{bys61A>yM5c8-3A;Da6x=L_Td6kI=<`NA>*VleZxgo$ zL!*ti1$52Ta?~zwzRm4*Q*&6B$?x*{f=#OaDz|%iFzBlb)--OCo1z5aYQHmpi3Olp zF$lbM(XcnLalOkI)0je4wq5D%jLQBMu86!&4n(|B?`E0oGG-iX#rQC^Di+P!tn_q7 z6vgU5&WLJ-(prl#qqkuh!hTmYD!Wyw6=B&Gl~qY67V}ctF*ikhc6N$h@YlrrjdEDW z$2_aTVOQ%qj)?5k1dC@zktSE58Ed&wjy8E*VG6N*%@m47BZOFs1e>Fcu}FQB&npL_ zwkTc;R@t3pHL(V9XW+g0DDDo7<0^hi#XTxc zs5q(OcUAnUiVN&Y{~{HeRs5-n`QT*zCKdBtgz4v0+^gajR9pnPEAnt2F*YG@FwRGA zWQ-)@z{ci%>jrMy`R{E>l|F_|DqgiDMCC^jXT- zLR85Z6Sgx(l6EkLt*aR$;nXrlLaSqpWWIqh66+m|XA(6qMzV4 z`6y%fa6e-lCQmR%VvRGt0(V@-NY*b;H*AYPNo{Z)mAT2`MNE4G>s*`V>Toa?a@v<< z_q`Mj`d3AQ0gK3Ts${hv?TRS2=n~7t_v{zwg6*hnL`B-=cHbf^`%~x_+$Cl1LfXid z)wPD?v3W{2h)58k=jU0qf~Q>VuL-P;AyH}4xd}#5-4qN2kR6eXUH%9aIs@4A7M~>= zv>*>hEy|X@$)fNh%#R=^FH!7ux+xg&c>^-t?v$MMwKZ$&G;de?G5Ilb)ojRd%Jqs3 zqO-I1^SkDnulBv@l8w4`slz+g6JJ}gd`Vcoi=E-)(9$8ivp;!d@lvie{l8&WdEZ}B6?430@P+91rc4$-1wOg5Tu3Zw2?TF`#8WxR( z19n%`g+U8x!S!ERc*Bk4&YqtaJv2t$fz@vI@|lCll3Pvdq%881vWO*yqm;2XVsZI! z7`a<5-hgE_BB5|}hF@S|7bvsDHiFCed>%DH1Uh?-vIn~}fV)Yvt4UURHHlNu5|Hn< z2w@9fZX%w~EL&I}n9!)P7hP4w%1uF7 z71&4~CA-u|5mA)8tSiIeVEBuzs?4I<;1kqZF*&iw@S-IURJY>H(RC0}H6|J4Y%Rq| zxh3Qc%XMCO+Z(BJ`*Bs|G^oU}QzSR#&ZLNEr+cX-*56x{Zo!Cqg)4-Ms?Qs3#V*mJ zF=r*T2(?6Fjgh9Xw^8QZrz{I^x9p;O6)+O%WbBPkjK}iPu`4+03LzmfYIZVX zl6fHJUse{&S$y1rSK!*%i0iKCYa847Ql7|h^+Lr9+3_ybMejUyli(ta3!8=G=?g}> zI#TX|CN_%GuEopf0xPzO=Jno)S6!pRGIwtFDx?Xx7Drxb)78f?LA$T=sJn3%b?kUr(<5~vUt}?OX8MO zZXwrsroqzLZ>;D%a|dHf=NS`C>^ITWe%z$`3)H%a+D;XrUI2bk@6>)X?ddl_zuCO6 zzsRx&&~>t?cV9pC?&+r_oi-)+^k1JxgA;k|U5C#mF!n2eqd7LLrcR7;f08HxUFOq- zKaFt>9H>0N_nR=5LMt}m$}D8env818G1$-m2%XDhdV!DP zF1#NwFO{y@7N0k4y!Vm#aYu_iF+y#}M#%h@WBT{2X13TVJuqC+y+eA_@ePToq2bCT zSxVa}eNOOSSNX}|iX^xG!P#mr`F=q|sQa}wuQ|VCH+ov_6;gY(2ReSQ%KmP6O7dll zMd{|Nd9-~4)Nh7MIt-rwayUIL_FdJKer@=O==Iy- z=^boi!BvJM8>AWW!$Zb<4e^2_htH<(r}S@!%@4T_9uks!hf6ysz3-Ef4)PfMrTceP z$DKv9Vlb**Z(Zvp3FZ~}>a;OtX5 zd%=+tz3-dp$KbZwxi6*L!2M<-bB-qdFo(Mt+?vFR;U7%2N zD*XHDko8nV)JBF_?^3azL2zcA$@^iz(K-Chdt2<|+x<0u$5wcHLc0%b1>$*G`<<(O zYkZD-?BB5$|ER@Y*#2s2qI*2n>zSdvm{(|M@pKEYZ|KdD z4W{)Y7PA9X^AKAy(D#n;z&{VY?I?Ymqx$us(hh^Q_%HjH7acF|T;?h3HZ0nd;1NIW zdqc=J3_Wn>kErcFvk7}}Irig(R3_7OHj`P8`m?AXz~6ukgPBaaKa(+@$z&qn)eL7c z#|AQ)>(FKgTnXM9&~ya@Q@a^|9nR4*5a&7A?3(&XGMkL{H z(MG@ojQwTEO29XxZRfk0%!PUQtr7H2@YiFUcK{EAcRTQW@On}IGyFl;tsh?doNHZdL^GoiLNu}%8(NRc7`M`V3<#N1w&$p7n4 z?ygBw;kYF83(p%0JHEPorQ`M6N3NgtKizrPRHmP4+wJ_td7IIJ9Yg60gB)ef-MP}=&Pu-k>F4{lU@h)T-X+%NfkEV? zB@ZS!iYdK&kn>VP@OCG8)t?zeR9d|WV|&mUTJ`owX*=(AZg~v4)+N>rO}X|?r()?| za8@Nepgh|C2d6603{JDk`QG5sgKp4nmEJzM>tG{jn#FT{YOwZTJt*UknTifhIcP+j zwhi)lo1x3teruwnW85QeVDFRX)@lFd#m=XfQe@8Spmt-2p`GKu2XSAO*e=yNZWUR) zU~p;j>tcS>#LQUd`oT%bC4x6e@Fpg25Y&Z%yySdQ8z=b1ohC>-2J`W>4?crDa`T7R z{dx&B=l^wgGyCkV0eG+iHV|2gI}r<}sqa-d@;h7X>(B5y7k9pN#_Vv5(`EJGB2Ptk zzK7Cl25FvETGlYqXI0zQ408U@SM$HA-vBFK?x!PvID!3eI+NK4XhJM{PGvGd#Oz|g zJNVJw2-C+d=!%ntCk0se%NKC~@fEahW09vmR+a%AhPCz_;dve|m?K+v;@dW0!5wINd zt9vJt`Q+_P#(WLYUGP&9ywD*^KQPeSZGz^HMvis!OdlBd(waP}YG%3g9h~h; zRmW3o!IA;8gbph<45c_0LWlE(MemCCauFY)!wt}XE5-}pce~~AZTirT_zbBC-rV$b zbN38Kxinj%2RWkRsR}7Cj`O`T^Y`Bz$t%CI?@OW;XNzZ&Ly>tTb$j=l$T@E!=Xfez zl?5w`6P%wv?8_7LpDp1$oLesJ+?8UU(emGjO|H?AN3O^dq(Xu_Y8s7?4JPp`>~%YFD$&S_W~7tYHz5nywFiJT7NEE zH&o6`87dE-ospS;GPll0xhXlXpWeIwlwsh$Q}2H8pZ%O`atpnLw%_eO^~wj&i8hVy z)zMGs=>0nSVIAGBqj&1)79H)=(G5DfPDeX*^imyNp`+*M=qWn7NJo>7{_w(B|D4s) z$8~fdvx>@I=V|o@72+}bo4zsI;5lBI(mbSUag}mb@W0VZPn4!RJsH29tsfO zS}DWbup3~&J(7zXfLBQ3y*AT5W`2&AnYgzu0I=Kv0Kfm%O0H}bWcmOn0R{;CD+C$u zQ}M4<{DO+#1m<_i{M*7OIObUvuR}z+9M3cw_&t0NfZr>#+{cjPI==_A;GGFnkQE*A zw=qpwiFZ!G+!wEBC<#8lzcvH%8H0%~bON3J`j1So9e;G=KgIFj_uc$05Wll$9$x2& z_j~;QooRj-&fgf|cZ2M=2dL6R@GJAR?-7`Hu~Gq<|8KzW6Bic~{R;2Gp27s#|6HoR ziida|P6qrLKr61dRV=1)h2yIV3=@pSRAMk2E;mjxl^U*~EAyrpzHGS4ILk2CKsNle z9Ibcp8(XsRuisj|YV9pHxy9>lAzM^#iIQz&5RX7GD%*mdV8rHi}P zutKsmMj~Wm9eC-C-(X|-&6;fPR=g7rlTG%hp9gr{pz!`z4u{Z+R}DftZ>M`6mH?!+v2oj&%kL>bzIDX!;JK z&ijMqcrP$CKvAw7%lZM#V>#YS47``L!eevk0N}N#kmEhfzb*V3Qnh5CiX9t!VmAg28gv1L`2du$vXAh1(cn zDrSAT-|2xAMbq~*D3)irAtWaTt&Ih>`W)0*j@OC5N#ySn=Ws$%i)O-F(3%|QmeQGH z=fQ1U9tUW0oPR8rkh>*EPUIlSh1giNaIA1)UF>^aC-Ge*Y}9NAD_duikuroFe*^L8 zCFJgf4C`cl`ysa4ATch>mIE|>{Eft?kmLNU70uR4 zFf=(n6ZpG@E=>qnlS}2uiSIlihu8MmqS?0r9Imr{3FOQKIDiscoveryCallback. + * + */ +#define CONNECT_ADDR_LEN 46 + +/** + * @brief Enumerates error codes for service publishing failures. + * + * The error codes are returned to the caller through IPublishCallback. + * + */ +typedef enum { + /* Unsupported medium */ + PUBLISH_FAIL_REASON_NOT_SUPPORT_MEDIUM = 1, + /* internal error */ + PUBLISH_FAIL_REASON_INTERNAL = 2, + /* Unknown reason */ + PUBLISH_FAIL_REASON_UNKNOWN = 0xFF +} PublishFailReason; + +/** + * @brief Defines the callbacks for successful and failed service publishing. + * + */ +typedef struct { + /** Callback for successful publishing */ + void (*OnPublishSuccess)(int publishId); + /** Callback for failed publishing */ + void (*OnPublishFail)(int publishId, PublishFailReason reason); +} IPublishCallback; + +/** + * @brief Enumerates error codes for service subscription failures. + * + * The error codes are returned to the caller through IDiscoveryCallback. + * + */ +typedef enum { + /* Unsupported medium */ + DISCOVERY_FAIL_REASON_NOT_SUPPORT_MEDIUM = 1, + /* internal error */ + DISCOVERY_FAIL_REASON_INTERNAL = 2, + /* Unknown error */ + DISCOVERY_FAIL_REASON_UNKNOWN = 0xFF +} DiscoveryFailReason; + +/** + * @brief Defines a callback for service subscription. + * + * Three types of callbacks are available. + * + */ +typedef struct { + /** Callback that is invoked when a device is found */ + void (*OnDeviceFound)(const DeviceInfo *device); + /** Callback for a subscription failure */ + void (*OnDiscoverFailed)(int subscribeId, DiscoveryFailReason failReason); + /** Callback for a subscription success */ + void (*OnDiscoverySuccess)(int subscribeId); +} IDiscoveryCallback; + +/** + * @brief Publishes a specified service. + * + * Peer devices in the same LAN as the device that publishes this service can discover this service as needed. + * The service is identified by publicId and pkgName. + * + * @param pkgName Indicates the pointer to the service package name, which can contain a maximum of 64 bytes. + * @param info Indicates the pointer to the service publishing information. For details, see {@link PublishInfo}. + * @param cb Indicates the pointer to the service publishing callback {@link IPublishCallback}. + * @return Returns SOFTBUS_INVALID_PARAM if any parameter is null or invalid. + * @return Returns SOFTBUS_DISCOVER_NOT_INIT if the Intelligent Soft Bus client fails to be initialized. + * @return Returns SOFTBUS_LOCK_ERR if the mutex fails to be locked. + * @return Returns SOFTBUS_OK if the service is successfully published. + */ +int PublishService(const char *pkgName, const PublishInfo *info, const IPublishCallback *cb); + +/** + * @brief Unpublishes a specified service. + * + * @param pkgName Indicates the pointer to the service package name, which can contain a maximum of 64 bytes. + * @param publishId Indicates the service ID. + * @return Returns SOFTBUS_INVALID_PARAM if pkgName is invalid. + * @return Returns SOFTBUS_DISCOVER_NOT_INIT if the Intelligent Soft Bus client fails to be initialized. + * @return Returns SOFTBUS_OK if the service is successfully unpublished. + */ +int UnPublishService(const char *pkgName, int publishId); + +/** + * @brief Subscribes to a specified service. + * + * Information about the device that publishes the service will be reported to the device that subscribes to + * the service. + * The service is identified by subscribeId and pkgName. + * + * @param pkgName Indicates the pointer to the service package name, which can contain a maximum of 64 bytes. + * @param info Indicates the pointer to the service subscription information. For details, see {@link SubscribeInfo}. + * @param cb Indicates the service subscription callback {@link IDiscoveryCallback}. + * @return Returns SOFTBUS_INVALID_PARAM if any parameter is null or invalid. + * @return Returns SOFTBUS_DISCOVER_NOT_INIT if the Intelligent Soft Bus client fails to be initialized. + * @return Returns SOFTBUS_LOCK_ERR if the mutex fails to be locked. + * @return Returns SOFTBUS_OK if the service subscription is successful. + */ +int StartDiscovery(const char *pkgName, const SubscribeInfo *info, const IDiscoveryCallback *cb); + +/** + * @brief Unsubscribes from a specified service. + * + * @param pkgName Indicates the pointer to the service package name, which can contain a maximum of 64 bytes. + * @param subscribeId Indicates the service ID. + * @return Returns SOFTBUS_INVALID_PARAM if pkgName is invalid. + * @return Returns SOFTBUS_DISCOVER_NOT_INIT if the Intelligent Soft Bus client fails to be initialized. + * @return Returns SOFTBUS_OK if the service unsubscription is successful. + */ +int StopDiscovery(const char *pkgName, int subscribeId); + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#endif /* DISCOVERY_SERVICE_H */ diff --git a/UAV_softbus_client/softbus_sample/include/session.h b/UAV_softbus_client/softbus_sample/include/session.h new file mode 100644 index 0000000..a590c04 --- /dev/null +++ b/UAV_softbus_client/softbus_sample/include/session.h @@ -0,0 +1,434 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @addtogroup Softbus + * @{ + * + * @brief Provides high-speed, secure communication between devices. + * + * This module implements unified distributed communication capability management between + * nearby devices, and provides link-independent device discovery and transmission interfaces + * to support service publishing and data transmission. + * + * @since 1.0 + * @version 1.0 +*/ + +/** + * @file session.h + * + * @brief Declares unified data transmission interfaces. + * + * This file provides data transmission capabilities, including creating and removing a session server, + * opening and closing sessions, receiving data, and querying basic session information. \n + * After multiple nearby devices are discovered and networked, these interfaces can be used to + * transmit data across devices. \n + * + * @since 1.0 + * @version 1.0 + */ +#ifndef SESSION_H +#define SESSION_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @brief business type of session + * + * @since 1.0 + * @version 1.0 + */ +typedef enum { + TYPE_MESSAGE = 1, + TYPE_BYTES, + TYPE_FILE, + TYPE_STREAM, + TYPE_BUTT, +} SessionType; + +typedef enum { + INVALID = -1, + /* + * Send any segment of a frame each time. + */ + RAW_STREAM, + /* + * Send a whole video frame each time. + */ + COMMON_VIDEO_STREAM, + /* + * Send a whole audio frame each time. + */ + COMMON_AUDIO_STREAM, + /* + * Slice frame mode. + */ + VIDEO_SLICE_STREAM, +} StreamType; + +typedef enum { + LINK_TYPE_WIFI_WLAN_5G = 1, + LINK_TYPE_WIFI_WLAN_2G = 2, + LINK_TYPE_WIFI_P2P = 3, + LINK_TYPE_BR = 4, + LINK_TYPE_MAX = 4, +} LinkType; + +/** + * @brief session attribute. + * + * control the attribute of session. + * + * @since 1.0 + * @version 1.0 + */ +typedef struct { + /** @brief dataType{@link SessionType} */ + int dataType; + int linkTypeNum; + LinkType linkType[LINK_TYPE_MAX]; + union { + struct StreamAttr { + int streamType; + } streamAttr; + } attr; +} SessionAttribute; + +typedef struct { + char *buf; + int bufLen; +} StreamData; + +typedef struct { + int type; + int64_t value; +} TV; + +typedef struct { + int frameType; + int64_t timeStamp; + int seqNum; + int seqSubNum; + int level; + int bitMap; + int tvCount; + TV *tvList; +} StreamFrameInfo; + +typedef enum { + QOS_IMPROVE = 0, + QOS_RECOVER = 1 +} QosQuality; + +typedef enum { + TRANS_STREAM_QUALITY_EVENT = 1, + TRANS_CHANNEL_QUALITY_EVENT, + TRANS_CAN_DELAY_EVENT, + TRANS_CANT_DELAY_EVENT, + QOS_EVENT_MAX +} QosEvent; + +typedef enum { + WIFI_CHANNEL_QUALITY = 1, + FRAME_REALTIME_STATUS = 2, + BANDWIDTH_ESTIMATE_VALUE = 3, + JITTER_DETECTION_VALUE = 4, + STREAM_TRAFFIC_STASTICS = 5, +} TransEnumEventType; + +typedef struct { + int32_t channel; + int32_t score; +} WifiChannelQuality; + +typedef struct { + int32_t streamId; + int32_t seqNum; + int32_t level; + int32_t transStatus; + int32_t interval; +} FrameStatus; + +typedef struct { + uint32_t trend; + uint32_t rate; /* kbps */ +} BandwidthDetection; + +typedef struct { + int32_t jitterLevel; + uint32_t bufferTime; /* ms */ +} JitterEstimation; + +typedef struct { + uint64_t statisticsGotTime; /* time point that stream traficc statistics are obtained (ms) */ + uint64_t periodRecvBits; + uint32_t pktNum; + uint32_t periodRecvPkts; + uint32_t periodRecvPktLoss; + uint32_t periodRecvRate; /* kbps */ + uint64_t periodRecvRateBps; /* bps */ + uint32_t periodRtt; /* ms */ + uint32_t periodRecvPktLossHighPrecision; /* for example when lost rate is 1.10%, then 110 will returned */ + uint32_t periodSendLostPkts; + uint32_t periodSendPkts; + uint32_t periodSendPktLossHighPrecision; /* for example when lost rate is 1.10%, then 110 will returned */ + uint64_t periodSendBits; + uint64_t periodSendRateBps; /* bps */ +} StreamStatistics; + +typedef struct { + TransEnumEventType type; + union { + WifiChannelQuality wifiChannelInfo; + FrameStatus frameStatusInfo; + BandwidthDetection bandwidthInfo; + JitterEstimation jitterInfo; + StreamStatistics appStatistics; + } info; +} QosTv; + +/** + * @brief Defines session callbacks. + * + * When a session is opened or closed, or there is data to process, the related callback is invoked. + * + * @since 1.0 + * @version 1.0 + */ +typedef struct { + /** + * @brief Called when a session is opened. + * + * This function can be used to verify the session or initialize resources related to the session. + * + * @param sessionId Indicates the session ID. + * @param result 0 if the session is opened successfully, returns an error code otherwise. + * @return Returns 0 if the session connection is accepted; returns a non-zero value + * otherwise (you do not need to call {@link CloseSession} to close the session). + * @since 1.0 + * @version 1.0 + */ + int (*OnSessionOpened)(int sessionId, int result); + + /** + * @brief Called when a session is closed. + * + * This function can be used to release resources related to the session. + * You do not need to call {@link CloseSession}. + * + * @param sessionId Indicates the session ID. + * @since 1.0 + * @version 1.0 + */ + void (*OnSessionClosed)(int sessionId); + + /** + * @brief Called when data is received. + * + * This function is used to notify that data is received. + * + * @param sessionId Indicates the session ID. + * @param data Indicates the pointer to the data received. + * @param dataLen Indicates the length of the data received. + * @since 1.0 + * @version 1.0 + */ + void (*OnBytesReceived)(int sessionId, const void *data, unsigned int dataLen); + + /** + * @brief Called when message is received. + * + * This function is used to notify that message is received. + * + * @param sessionId Indicates the session ID. + * @param data Indicates the pointer to the message data received. + * @param dataLen Indicates the length of the message received. + * @since 1.0 + * @version 1.0 + */ + void (*OnMessageReceived)(int sessionId, const void *data, unsigned int dataLen); + + void (*OnStreamReceived)(int sessionId, const StreamData *data, const StreamData *ext, + const StreamFrameInfo *param); + + /** + * @brief Called when QoS information is retrieved. + * + * This function is used to notify that QoS information is retrieved. + * + * @param sessionId Indicates the session ID. + * @param eventId Indicates the type of QoS information, e.g., channel quality and stream quality + * @param tvCount Indicates the number of structure returned in the fourth parameters, i.e., tvList. + * @param tvList Indicates the detailed information of data transmission. + * @since 1.0 + * @version 1.0 + */ + void (*OnQosEvent)(int sessionId, int eventId, int tvCount, const QosTv *tvList); +} ISessionListener; + +typedef struct { + int (*OnReceiveFileStarted)(int sessionId, const char *files, int fileCnt); + int (*OnReceiveFileProcess)(int sessionId, const char *firstFile, uint64_t bytesUpload, uint64_t bytesTotal); + void (*OnReceiveFileFinished)(int sessionId, const char *files, int fileCnt); + void (*OnFileTransError)(int sessionId); +} IFileReceiveListener; + +typedef struct { + int (*OnSendFileProcess)(int sessionId, uint64_t bytesUpload, uint64_t bytesTotal); + int (*OnSendFileFinished)(int sessionId, const char *firstFile); + void (*OnFileTransError)(int sessionId); +} IFileSendListener; + +/** + * @brief Creates a session server based on a package name and session name. + * + * A maximum of 18 session servers can be created. + * + * @param pkgName Indicates the pointer to the package name, which can be used to check whether the + * session server is in this package. The value cannot be empty and can contain a maximum of 64 characters. + * @param sessionName Indicates the pointer to the session name, which is the unique ID of the session server. + * The value cannot be empty and can contain a maximum of 64 characters. + * @param listener Indicates the pointer to the session callback structure, which cannot be empty. + * @return Returns 0 if the operation is successful; returns -1 otherwise. + * @see RemoveSessionServer + * @since 1.0 + * @version 1.0 + */ +int CreateSessionServer(const char *pkgName, const char *sessionName, const ISessionListener *listener); + +/** + * @brief Removes a session server based on a package name and session name. + * + * @param pkgName Indicates the pointer to the name of the registered package, which can be used to check + * whether the session server is in this package. The value cannot be empty and can contain a maximum of 64 characters. + * @param sessionName Indicates the pointer to the session name. The value cannot be empty and can contain + * a maximum of 64 characters. + * @return Returns 0 if the operation is successful, returns -1 otherwise. + * @see CreateSessionServer + * @since 1.0 + * @version 1.0 + */ +int RemoveSessionServer(const char *pkgName, const char *sessionName); + +/** + * @brief Initiate a session open request, which is an asynchronous process. + * + * The session connection is opened based on the service name to trigger the first packet interaction process. + * According to the {@link OnSessionOpened} Notify the user whether the session is successfully opened. + * Data can be transmitted only after the session is successfully opened. + * + * @param mySessionName local session name. + * @param peerSessionName remote session name. + * @param peerDeviceId remote device id. + * @param groupId group id. + * @param attr session attribute {@link SessionAttribute}. + * @return return sessionId if the session is opened successfully, returns an error code otherwise. + * @since 1.0 + * @version 1.0 + */ +int OpenSession(const char *mySessionName, const char *peerSessionName, const char *peerDeviceId, + const char *groupId, const SessionAttribute* attr); + +/** + * @brief Closes a connected session based on a session ID. + * + * @param sessionId Indicates the session ID. + * @return no return value. + * @since 1.0 + * @version 1.0 + */ +void CloseSession(int sessionId); + +/** + * @brief Sends data based on a session ID. + * + * @param sessionId Indicates the session ID. + * @param data Indicates the pointer to the data to send, which cannot be NULL. + * @param len Indicates the length of the data to send. The maximum length cannot exceed 984 characters. + * @return Returns 0 if the function is called successfully; returns -1 otherwise. + * @since 1.0 + * @version 1.0 + */ +int SendBytes(int sessionId, const void *data, unsigned int len); + +/** + * @brief Sends message based on a session ID. + * + * @param sessionId Indicates the session ID. + * @param data Indicates the pointer to the message data to send, which cannot be NULL. + * @param len Indicates the length of the message to send. + * @return Returns 0 if the function is called successfully, returns an error code otherwise. + * @since 1.0 + * @version 1.0 + */ +int SendMessage(int sessionId, const void *data, unsigned int len); + +int SendStream(int sessionId, const StreamData *data, const StreamData *ext, const StreamFrameInfo *param); + +/** + * @brief Obtains the session name registered by the local device based on the session ID. + * + * @param sessionId Indicates the session ID. + * @param sessionName Indicates the pointer to the buffer for storing the session name. + * @param len Indicates the length of the buffer. + * @return Returns 0 if the operation is successful; returns -1 otherwise. + * @since 1.0 + * @version 1.0 + */ +int GetMySessionName(int sessionId, char *sessionName, unsigned int len); + +/** + * @brief Obtains the session name registered by the peer device based on the session ID. + * + * @param sessionId Indicates the session ID. + * @param sessionName Indicates the pointer to the buffer for storing the session name. + * @param len Indicates the length of the buffer. + * @return Returns 0 if the operation is successful; returns -1 otherwise. + * @since 1.0 + * @version 1.0 + */ +int GetPeerSessionName(int sessionId, char *sessionName, unsigned int len); + +/** + * @brief Obtains the peer device ID based on a session ID. + * + * @param sessionId Indicates the session ID. + * @param devId Indicates the pointer to the buffer for storing the device ID. + * @param len Indicates the length of the buffer. + * @return Returns 0 if the operation is successful; returns -1 otherwise. + * @since 1.0 + * @version 1.0 + */ +int GetPeerDeviceId(int sessionId, char *devId, unsigned int len); + +int GetSessionSide(int sessionId); + +int SetFileReceiveListener(const char *pkgName, const char *sessionName, + const IFileReceiveListener *recvListener, const char *rootDir); + +int SetFileSendListener(const char *pkgName, const char *sessionName, const IFileSendListener *sendListener); + +int SendFile(int sessionId, const char *sFileList[], const char *dFileList[], uint32_t fileCnt); + +int32_t QosReport(int32_t sessionId, int32_t appType, int32_t quality); + +#ifdef __cplusplus +} +#endif +#endif // SESSION_H diff --git a/UAV_softbus_client/softbus_sample/include/softbus_bus_center.h b/UAV_softbus_client/softbus_sample/include/softbus_bus_center.h new file mode 100644 index 0000000..f26b925 --- /dev/null +++ b/UAV_softbus_client/softbus_sample/include/softbus_bus_center.h @@ -0,0 +1,649 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @addtogroup Softbus + * @{ + * + * @brief Provides high-speed, secure communication between devices. + * + * This module implements unified distributed communication capability management between nearby devices, and provides + * link-independent device discovery and transmission interfaces to support service publishing and data transmission. + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file softbus_bus_center.h + * + * @brief Declares functions and constants for the bus center of the Intelligent Soft Bus. + * + * The functions are used to perform + * the following operations: \n + *