add APP_Framework/Framework/connection function

This commit is contained in:
Liu_Weichao 2021-06-17 16:18:07 +08:00
parent fba573cc0b
commit 86ef526303
10 changed files with 106 additions and 49 deletions

View File

@ -50,7 +50,7 @@ static int AppInitDesc(struct InitDesc sub_desc[])
static struct InitDesc framework[] = static struct InitDesc framework[] =
{ {
#ifdef SENSOR_SENSORDEVICE #ifdef SUPPORT_SENSOR_FRAMEWORK
{ "perception_framework", SensorFrameworkInit }, { "perception_framework", SensorFrameworkInit },
#endif #endif
@ -150,7 +150,7 @@ static int ConnectionFrameworkInit(struct InitDesc sub_desc[])
*/ */
int FrameworkInit() int FrameworkInit()
{ {
#ifdef SENSOR_SENSORDEVICE #ifdef SUPPORT_SENSOR_FRAMEWORK
PerceptionFrameworkInit(framework); PerceptionFrameworkInit(framework);
#endif #endif

View File

@ -17,5 +17,6 @@ config TRANSFORM_LAYER_ATTRIUBUTE
source "$APP_DIR/Framework/sensor/Kconfig" source "$APP_DIR/Framework/sensor/Kconfig"
source "$APP_DIR/Framework/connection/Kconfig"
source "$APP_DIR/Framework/know/tflite_sin/Kconfig" source "$APP_DIR/Framework/know/tflite_sin/Kconfig"
source "$APP_DIR/Framework/know/tflite_mnist/Kconfig" source "$APP_DIR/Framework/know/tflite_mnist/Kconfig"

View File

@ -1,8 +1,12 @@
SRC_DIR := transform_layer SRC_DIR := transform_layer
ifeq ($(CONFIG_SENSOR_SENSORDEVICE),y) ifeq ($(CONFIG_SUPPORT_SENSOR_FRAMEWORK),y)
SRC_DIR += sensor SRC_DIR += sensor
endif endif
ifeq ($(CONFIG_SUPPORT_CONNECTION_FRAMEWORK),y)
SRC_DIR += connection
endif
include $(KERNEL_ROOT)/compiler.mk include $(KERNEL_ROOT)/compiler.mk

View File

@ -0,0 +1,3 @@
menuconfig SUPPORT_CONNECTION_FRAMEWORK
bool "support connection framework"
default n

View File

@ -20,7 +20,7 @@
#include <adapter.h> #include <adapter.h>
static DoubleLinklistType adapter_list; static DoublelistType adapter_list;
static int adapter_list_lock; static int adapter_list_lock;
@ -30,9 +30,13 @@ static int adapter_list_lock;
*/ */
int AdapterFrameworkInit(void) int AdapterFrameworkInit(void)
{ {
InitDoubleLinkList(&adapter_list); int ret = 0;
AppInitDoubleList(&adapter_list);
adapter_list_lock = KMutexCreate(); ret = PrivMutexCreate(&adapter_list_lock, 0);
if(ret < 0) {
printf("AdapterFrameworkInit mutex create failed.\n");
}
return 0; return 0;
} }
@ -42,24 +46,24 @@ int AdapterFrameworkInit(void)
* @param name - name string * @param name - name string
* @return adapter device pointer * @return adapter device pointer
*/ */
struct Adapter *AdapterDeviceFind(const char *name) struct Adapter *AdapterDeviceFindByName(const char *name)
{ {
struct Adapter *ret = NULL; struct Adapter *ret = NULL;
struct SysDoubleLinklistNode *node; struct DoublelistNode *node;
if (name == NULL) if (NULL == name)
return NULL; return NULL;
UserMutexObtain(adapter_list_lock, -1); PrivMutexObtain(&adapter_list_lock);
DOUBLE_LINKLIST_FOR_EACH(node, &adapter_list) { DOUBLE_LIST_FOR_EACH(node, &adapter_list) {
struct Adapter *adapter =CONTAINER_OF(node, struct Adapter *adapter = CONTAINER_OF(node,
struct Adapter, link); struct Adapter, link);
if (strncmp(adapter->name, name, NAME_NUM_MAX) == 0) { if (0 == strncmp(adapter->name, name, NAME_NUM_MAX)) {
ret = adapter; ret = adapter;
break; break;
} }
} }
UserMutexAbandon(adapter_list_lock); PrivMutexAbandon(&adapter_list_lock);
return ret; return ret;
} }
@ -71,17 +75,17 @@ struct Adapter *AdapterDeviceFind(const char *name)
*/ */
int AdapterDeviceRegister(struct Adapter *adapter) int AdapterDeviceRegister(struct Adapter *adapter)
{ {
if (adapter == NULL) if (NULL == adapter )
return -1; return -1;
if (AdapterDeviceFindByName(adapter->name) != NULL) { if (NULL != AdapterDeviceFindByName(adapter->name)) {
printf("%s: sensor with the same name already registered\n", __func__); printf("%s: sensor with the same name already registered\n", __func__);
return -1; return -1;
} }
UserMutexObtain(adapter_list_lock, -1); PrivMutexObtain(&adapter_list_lock);
DoubleLinkListInsertNodeAfter(&adapter_list, &adapter->link); AppDoubleListInsertNodeAfter(&adapter_list, &adapter->link);
UserMutexAbandon(adapter_list_lock); PrivMutexAbandon(&adapter_list_lock);
return 0; return 0;
} }
@ -95,9 +99,9 @@ int AdapterDeviceUnregister(struct Adapter *adapter)
{ {
if (!adapter) if (!adapter)
return -1; return -1;
UserMutexObtain(adapter_list, -1); PrivMutexObtain(&adapter_list_lock);
DoubleLinkListRmNode(&adapter->link); AppDoubleListRmNode(&adapter->link);
UserMutexAbandon(adapter_list); PrivMutexAbandon(&adapter_list_lock);
return 0; return 0;
} }
@ -121,11 +125,11 @@ int AdapterDeviceOpen(struct Adapter *adapter)
{ {
case PRIVATE_PROTOCOL: case PRIVATE_PROTOCOL:
priv_done = (struct PrivProtocolDone *)adapter->done; priv_done = (struct PrivProtocolDone *)adapter->done;
if (priv_done->open == NULL) if (NULL == priv_done->open)
return 0; return 0;
result = priv_done->open(adapter); result = priv_done->open(adapter);
if (result == 0) { if (0 == result) {
printf("Device %s open success.\n", adapter->name); printf("Device %s open success.\n", adapter->name);
}else{ }else{
if (adapter->fd) { if (adapter->fd) {
@ -138,11 +142,11 @@ int AdapterDeviceOpen(struct Adapter *adapter)
case IP_PROTOCOL: case IP_PROTOCOL:
ip_done = (struct IpProtocolDone *)adapter->done; ip_done = (struct IpProtocolDone *)adapter->done;
if (ip_done->open == NULL) if (NULL == ip_done->open)
return 0; return 0;
result = ip_done->open(adapter); result = ip_done->open(adapter);
if (result == 0) { if (0 == result) {
printf("Device %s open success.\n", adapter->name); printf("Device %s open success.\n", adapter->name);
}else{ }else{
if (adapter->fd) { if (adapter->fd) {
@ -179,11 +183,11 @@ int AdapterDeviceClose(struct Adapter *adapter)
{ {
case PRIVATE_PROTOCOL: case PRIVATE_PROTOCOL:
priv_done = (struct PrivProtocolDone *)adapter->done; priv_done = (struct PrivProtocolDone *)adapter->done;
if (priv_done->close == NULL) if (NULL == priv_done->close)
return 0; return 0;
result = priv_done->close(adapter); result = priv_done->close(adapter);
if (result == 0) if (0 == result)
printf("%s successfully closed.\n", adapter->name); printf("%s successfully closed.\n", adapter->name);
else else
printf("Closed %s failure.\n", adapter->name); printf("Closed %s failure.\n", adapter->name);
@ -192,11 +196,11 @@ int AdapterDeviceClose(struct Adapter *adapter)
case IP_PROTOCOL: case IP_PROTOCOL:
ip_done = (struct IpProtocolDone *)adapter->done; ip_done = (struct IpProtocolDone *)adapter->done;
if (ip_done->close == NULL) if (NULL == ip_done->close)
return 0; return 0;
result = ip_done->close(adapter); result = ip_done->close(adapter);
if (result == 0) if (0 == result)
printf("%s successfully closed.\n", adapter->name); printf("%s successfully closed.\n", adapter->name);
else else
printf("Closed %s failure.\n", adapter->name); printf("Closed %s failure.\n", adapter->name);
@ -221,10 +225,24 @@ ssize_t AdapterDeviceRead(struct Adapter *adapter, void *dst, size_t len)
if (!adapter) if (!adapter)
return -1; return -1;
if (adapter->done->read == NULL) if (PRIVATE_PROTOCOL == adapter->net_protocol) {
return -1; struct PrivProtocolDone *priv_done = (struct PrivProtocolDone *)adapter->done;
if (NULL == priv_done->recv)
return -1;
return adapter->done->read(adapter, dst, len); return priv_done->recv(adapter, dst, len);
} else if (IP_PROTOCOL == adapter->net_protocol) {
struct IpProtocolDone *ip_done = (struct IpProtocolDone *)adapter->done;
if (NULL == ip_done->recv)
return -1;
return ip_done->recv(adapter->socket, dst, len);
} else {
printf("AdapterDeviceRead net_protocol %d not support\n", adapter->net_protocol);
return -1;
}
} }
/** /**
@ -239,10 +257,24 @@ ssize_t AdapterDeviceWrite(struct Adapter *adapter, const void *src, size_t len)
if (!adapter) if (!adapter)
return -1; return -1;
if (adapter->done->write == NULL) if (PRIVATE_PROTOCOL == adapter->net_protocol) {
return -1; struct PrivProtocolDone *priv_done = (struct PrivProtocolDone *)adapter->done;
if (NULL == priv_done->send)
return -1;
return adapter->done->write(adapter, src, len); return priv_done->send(adapter, src, len);
} else if (IP_PROTOCOL == adapter->net_protocol) {
struct IpProtocolDone *ip_done = (struct IpProtocolDone *)adapter->done;
if (NULL == ip_done->send)
return -1;
return ip_done->send(adapter->socket, src, len);
} else {
printf("AdapterDeviceWrite net_protocol %d not support\n", adapter->net_protocol);
return -1;
}
} }
/** /**
@ -256,9 +288,23 @@ int AdapterDeviceControl(struct Adapter *adapter, int cmd, void *args)
{ {
if (!adapter) if (!adapter)
return -1; return -1;
if (adapter->done->ioctl == NULL) if (PRIVATE_PROTOCOL == adapter->net_protocol) {
return -1; struct PrivProtocolDone *priv_done = (struct PrivProtocolDone *)adapter->done;
if (NULL == priv_done->ioctl)
return -1;
return adapter->done->ioctl(adapter, cmd, args); return priv_done->ioctl(adapter, cmd, args);
} else if (IP_PROTOCOL == adapter->net_protocol) {
struct IpProtocolDone *ip_done = (struct IpProtocolDone *)adapter->done;
if (NULL == ip_done->ioctl)
return -1;
return ip_done->ioctl(adapter, cmd, args);
} else {
printf("AdapterDeviceControl net_protocol %d not support\n", adapter->net_protocol);
return -1;
}
} }

View File

@ -23,6 +23,8 @@
#include <list.h> #include <list.h>
#include <transform.h> #include <transform.h>
#include <stdio.h>
#include <string.h>
#include <stdint.h> #include <stdint.h>
#include <sys/types.h> #include <sys/types.h>
@ -106,6 +108,7 @@ struct Adapter
int fd; int fd;
struct AdapterProductInfo *info; struct AdapterProductInfo *info;
struct Socket *socket;
enum NetProtocolType net_protocol; enum NetProtocolType net_protocol;
enum NetRoleType net_role; enum NetRoleType net_role;
@ -114,7 +117,7 @@ struct Adapter
void *done; void *done;
struct SysDoubleLinklistNode link; struct DoublelistNode link;
}; };
#endif #endif

View File

@ -1,8 +1,8 @@
menuconfig SENSOR_SENSORDEVICE menuconfig SUPPORT_SENSOR_FRAMEWORK
bool "support sensor framework" bool "support sensor framework"
default y default y
if SENSOR_SENSORDEVICE if SUPPORT_SENSOR_FRAMEWORK
menuconfig SENSOR_CO2 menuconfig SENSOR_CO2
bool "Using CO2 sensor device" bool "Using CO2 sensor device"
default n default n

View File

@ -953,11 +953,7 @@ void *x_umalloc(x_size_t size)
lock = CriticalAreaLock(); lock = CriticalAreaLock();
/* alignment */ /* alignment */
size = ALIGN_MEN_UP(size, MEM_ALIGN_SIZE); size = ALIGN_MEN_UP(size, MEM_ALIGN_SIZE);
<<<<<<< HEAD
ret = UserByteManager.dynamic_buddy_manager.done->malloc(&UserByteManager.dynamic_buddy_manager,size, DYNAMIC_BLOCK_NO_EXTMEM_MASK);
=======
ret = UserByteManager.dynamic_buddy_manager.done->malloc(&UserByteManager.dynamic_buddy_manager,size,DYNAMIC_BLOCK_NO_EXTMEM_MASK); ret = UserByteManager.dynamic_buddy_manager.done->malloc(&UserByteManager.dynamic_buddy_manager,size,DYNAMIC_BLOCK_NO_EXTMEM_MASK);
>>>>>>> 0ddb5bfd1f2d80ec762bd2627d04c60da063e9fc
if(ret != NONE) if(ret != NONE)
CHECK(UserByteManager.dynamic_buddy_manager.done->JudgeLegal(&UserByteManager.dynamic_buddy_manager, ret - SIZEOF_DYNAMICALLOCNODE_MEM)); CHECK(UserByteManager.dynamic_buddy_manager.done->JudgeLegal(&UserByteManager.dynamic_buddy_manager, ret - SIZEOF_DYNAMICALLOCNODE_MEM));

View File

@ -11,6 +11,10 @@ APPPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/transform_layer/xiuos
-I$(KERNEL_ROOT)/../../APP_Framework/Framework/transform_layer/xiuos/user_api/posix_support/include # -I$(KERNEL_ROOT)/../../APP_Framework/Framework/transform_layer/xiuos/user_api/posix_support/include #
endif endif
ifeq ($(CONFIG_SUPPORT_CONNECTION_FRAMEWORK), y)
APPPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/connection #
endif
COMPILE_APP: COMPILE_APP:
@$(eval CPPPATHS=$(APPPATHS)) @$(eval CPPPATHS=$(APPPATHS))
@echo $(SRC_APP_DIR) @echo $(SRC_APP_DIR)

View File

@ -166,8 +166,8 @@ KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/sensor #
KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/transform_layer/xiuos # KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/transform_layer/xiuos #
KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Applications/general_functions/list # KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Applications/general_functions/list #
ifeq ($(CONFIG_CONNECTION_ADAPTER), y) ifeq ($(CONFIG_SUPPORT_CONNECTION_FRAMEWORK), y)
KERNELPATHS += -I$(KERNEL_ROOT)/framework/connection/Adapter/include # KERNELPATHS += -I$(KERNEL_ROOT)/../../APP_Framework/Framework/connection #
endif endif
ifeq ($(CONFIG_CRYPTO), y) ifeq ($(CONFIG_CRYPTO), y)