GAT1400 基於libcurl庫的開發

2021-10-23 04:20:39 字數 2713 閱讀 9556

一、curl庫的移植

前面我們已經講了,gat1400是通過http協議進行資料的互動,所以我們自然而然的想到了curl。

我們要的當然是curl的libcurl庫。

tar -xzvf curl-7.69.1.tar.gz

cd curl-7.69.1/

./configure --host=arm-hisiv500-linux //交叉編譯環境

make

make install

在lib/.libs/目錄下有

libcurl.so  libcurl.so.4 libcurl.so.4.6.0三個動態庫(前兩個為軟連線)以及libcurl.a乙個靜態庫檔案。

二、curl庫的開發

由於gat1400資料量比較大而且需要進行basese64的編碼,在**量密集的場合,如果我們還是使用一條一條資料往伺服器丟會導致資料處理不過來,所以我們需要呼叫curl的非同步機制。

看我的**

void *gat1400_dev_send_task(void *buf)

; gat1400_send_s *pdata[cache_max_id*4] = ;

gat1400_init_send();

plist = &gat1400_list.send_list;

while(gat1400_mod.runing && get_dev_online())

dbg_info("send count:%d\n",count);

count = (count > 120 ? 120 : count);

for (index = 0; index < count; index++)

pthread_mutex_unlock(&gat1400_list.send_mutex);

}lib_send_images(gat1400_list.multi_handle);

//釋放資料

for(index = 0; index < count; index++)

} gat1400_uninit_send();

return null;

}/*********************

封裝初始化easy控制代碼

***********************/

curl * curl_easy_handler(const char *surl,

char *data,

unsigned int uitimeout)

; struct curl_slist *list = null;

if(null == surl || null == data )

curl * curl = curl_easy_init();

curl_easy_setopt(curl, curlopt_url, surl);

curl_easy_setopt(curl, curlopt_nosignal, 1);

curl_easy_setopt(curl,curlopt_post,1); //設定問非0表示本次操作為post

curl_easy_setopt(curl, curlopt_postfields, data);

curl_easy_setopt(curl,curlopt_writefunction,gat1400_null_cb); //對返回的資料進行操作的函式位址

**核心通過

curl_multi_init();     //開始

curl * curl_easy_handler(const char *surl, char *data, unsigned int uitimeout);

curl_multi_add_handle(curlm *multi_handle, curl *curl_handle);

curl_multi_perform(curlm *multi_handle, int *running_handles);

curl_multi_remove_handle(curlm *multi_handle, curl *curl_handle);

curl_easy_cleanup(curl *curl);

curl_multi_cleanup(curlm *multi_handle);    //結束

流程對資料進行上傳處理。

我在800wipc相機上測試,在吃掉80m記憶體情況下,1s進行30張人臉上傳資料是沒有壓力的。

bob  2020-04-07

GA T1400協議 註冊登出

關於1400的協議資源太匱乏,協議文件寫的太碎了,沒有gb28181那麼完整,有說明有示例 一開始沒有相應的裝置可以測試協議,一路摸索走了很多彎路,猜測加聯想。寫篇帖子,和大家相互學習。註冊流程1如圖所示 下級平台主動向上級平台註冊 註冊鑑權資訊 使用者名稱和密碼 由上級平台提供 其中192.168...

GA T1400協議 人臉資料

人臉互動包括批量人臉 單人臉 多人臉包括查詢 增加 更新和刪除操作 子圖subimagelist中包含大圖 底圖 人臉圖 根據type區分影象型別 faceobject中sourceid應該與subimageinfoobject中type為 14 即底圖中的imageid一致 faceobject的...

注意力模型(GAT

graph資料結構的兩種特徵 當我們提到graph或者網路的時候,通常是包含頂點和邊的關係,那麼我們的研究目標就聚焦在頂點之上。而除了結構之外,每個頂點還有著自己的特徵,因此我們圖上的深度學習,無外乎就是希望學習上面兩種特徵。gcn的侷限性 gcn是處理transductive任務的利器,這也導致了...