简单来说:
1,aisapp会调用建立与的连接 , 通信方式为本地通信
2,在建立通信后,会与交换一部分信息 , 用于后续建立main 以及event
3,在创建event 的过程中,还会创建两个重要的线程:,
4,线程负责接收event事件,并且把接收到的时间入列(eue)
文章插图
【AIS client的初始化过程】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;
- 十种适合蒸着吃的杂粮 十种适合蒸着吃的杂粮饭
- 红糖烙饼的做法 红糖烙饼的做法视频
- 中文word2010是什么 word2010中的
- excel整行排序 excel 整行排序
- 苹果吃不完可以做什么吃的 苹果吃不完可以做什么吃的东西
- 年糕的吃法和寓意 吃年糕的寓意是啥
- 历尽千帆归来仍是少年的意思 愿君笑看千秋尽,归来仍是少年郎
- 红薯豆沙馅小花面的做法 红薯豆沙馅小花面的做法窍门
- 失敬失敬的意思 失敬失敬 下一句
- 青蛙如何繁殖后代 青蛙繁殖的方式