首页 >> 大全

AIS client的初始化过程

2023-12-31 大全 26 作者:考证青年

简单来说:

1,ais app会调用建立与的连接,通信方式为本地通信

2,在建立通信后,会与交换一部分信息,用于后续建立main 以及event

3,在创建event 的过程中,还会创建两个重要的线程:,

4,线程负责接收event事件,并且把接收到的时间入列(eue)

初始化过程中出现错误_初始化过程排序_

5,会从event队列中取出事件,并调用相应的回调函数进行处理,这里需要注意的是,这里的event队列不确定是否和4中描述的队列是同一个队列.

流程图:

这个函数中会从全局数组变量中找到一个空的位置来初始化,数组最大成员为64,也就是ais支持的个数为64个:

# 64

static int ais_client_alloc(void)
{int rc = -1;int i;AIS_LOG_CLI_API("E");pthread_mutex_lock(&sgs_mutex);for (i = 0; i < AIS_MAX_USR_CONTEXTS; i++) {    if (sgs_ais_client[i].qcarcam_hndl == NULL){ais_client_init(&sgs_ais_client[i]);sgs_ais_client[i].qcarcam_hndl = AIS_CONTEXT_IN_USE;rc = i; break;}}  

这个函数会通过本地通信方式与建立连接,交换连接信息.

/*** connection information to be exchanged between client/server*/
typedef struct
{int id;                     /**< connection id */int cnt;                    /**< number of connections */unsigned int gid;           /**< group id of client*/unsigned int pid;           /**< process id of client */unsigned int app_version;   /**< QCarCam API version of application */unsigned int version;       /**< QCarCam API version of client lib */CameraResult result;        /**< result of exchange */unsigned int flags;         /**< flags for new connection */
} s_ais_conn_info;

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了