国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux開發_curl調用網絡接口

DS小龍哥-嵌入式技術 ? 2022-09-17 15:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【摘要】 介紹curl調用網絡接口獲取天氣預報,查看攝像頭設備接口,編譯網頁監控開源庫,在網頁上查看攝像頭圖像。

任務1:使用的網絡服務器接口

C語言:面向過程 、 面向對象

1.?車牌號識別

2.?二維碼生成

3.?獲取北京時間

1.?調用網絡的接口的方式: (天氣預報)

curl http://api.k780.com:88/?app=weather.future'&'weaid=南昌

'&&'appkey=10003'&'sign=b59bc3ef6191eb9f747dd4e83c99f2a4'&'format=json >123.txt

注意: &是特殊的符號,需要使用單引號或者雙引號括起來。

Curl: 命令行的瀏覽器。

2.?調用二維碼生成的接口

curl http://api.k780.com:88/?app=qr.get'&'data=www.wanbangee.com'&'level=L'&'size=6 >123.png

??作業:

1.?天氣預報查詢

查詢的格式: ./app <城市的中文名稱>

poYBAGMlPdSAC-WrAAA4mjEWJsA399.png

2.?獲取北京標準時間,顯示出來

pYYBAGMlPdSAKYDOAAAMsIAQj18367.png

3.?查詢手機號碼歸屬地

4.?二維碼生成創建 運行格式: ./app <生成的二維碼內容>

生成之后直接顯示在屏幕上。可以使用eog命令

5.?車牌號的識別

6.?調用百度地圖API接口 ,模擬實現導航的效果。

(1)?Eog命令圖片瀏覽器

(2)?鬧鐘信號一秒鐘中斷一次

(3)?實時改變經緯度的參數

7.?分析cjson源代碼,參考cjson源碼改進數據解析方式。

# gcc cJSON.c cJSON.h test.c -lm //編譯的方式

使用cjson提供的函數去解析天氣預報、北京時間這些json格式的數據。

??JSON語法規則:

1.?大括號{}表示對象

2.?雙引號表示的字符串

3.?冒號后面保存的是數據值,前面表示數據值的名稱

4.?中括號[]表示數組

5.?數據之間使用逗號隔開

編譯cjson庫的方式: # gcc app.c cJSON.c -lm

??Cjson分析

//核心結構體

typedef struct cJSON {

struct cJSON *next,*prev;

struct cJSON *child;

int type; //保存的數據的類型

char *valuestring; //字符串類型的值 if type==cJSON_String

int valueint; //int類型的值 if type==cJSON_Number

double valuedouble;//浮點類型的值

char *string; //字符串類型

} cJSON;

void cJSON_Delete(cJSON *c); //釋放空間

int cJSON_GetArraySize(cJSON *array); //獲取數組大小

cJSON *cJSON_GetArrayItem(cJSON *array,int item); //獲取數組每個下標內容

extern cJSON *cJSON_GetObjectItem(cJSON *object,const char *string); //獲取對象的節點數據

cJSON *cJSON_Parse(const char *value); //載入源數據,獲取根對象

目前階段和后面的學習階段: 分析源碼,看源碼。

#define 預編譯 typedef

1.?獲取QQ頭像,QQ名稱這些功能使用腳本去寫代碼。

獲取QQ名稱接口:http://r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=QQ號碼

獲取QQ頭像接口:http://qlogo4.store.qq.com/qzone/1126626497/1126626497/100?1126626497

2.?獲取百度地圖的接口數據

http://api.map.baidu.com/staticimage/v2?ak=vvjkqKyqSFwLgnfg0I0sXzyCDDFWFykb&mcode=666666¢er=110.403874,19.914888&width=300&height=200&zoom=11

3.?獲取全景地圖

http://api.map.baidu.com/panorama/v2?ak=vvjkqKyqSFwLgnfg0I0sXzyCDDFWFykb&width=512&height=256&location=116.313393,40.04778&fov=180

4.?獲取高清靜態地圖

http://api.map.baidu.com/staticimage/v2?ak=vvjkqKyqSFwLgnfg0I0sXzyCDDFWFykb&mcode=666666¢er=116.403874,39.914888&width=1024&height=512&zoom=18&scale=1

5.?出行線路規劃

poYBAGMlPdWAGMc9AACfcb9I5nc847.png

6.?字符串與其他格式數據之間轉換

#include

int atoi(const char *nptr); //字符串轉整數

#include

double atof(const char *nptr); //字符串轉浮點數

#include

int sprintf(char *str, const char *format, ...); //整數轉為字符串

int sscanf(const char *str, const char *format, ...); //字符串轉為整數

示例1:

#include

#include

#include

#include

#include

#include

int main(int argc,char **argv)

{

char buff[100];

//整數轉為字符串

sprintf(buff,"%d",12345);

printf("buff=%s\n",buff);


//浮點數轉為字符串

sprintf(buff,"%f",12345.12345);

printf("buff=%s\n",buff);


//字符串拼接

sprintf(buff,"%s加%s","123","456");

printf("buff=%s\n",buff);


return 0;

}

示例2:

#include

#include

#include

#include

#include

#include

int main(int argc,char **argv)

{

//字符串轉整數

int data;

sscanf("1234","%d",&data);

printf("data=%d\n",data);


//字符串轉浮點數

float dataf;

sscanf("116.403874,39.914888","%f",&dataf);

printf("dataf=%f\n",dataf);

return 0;

}

任務2:攝像頭操作方式

Linux、windows這些系統下很多攝像頭都是免驅(UVC)。

v4l2 :免驅攝像頭框架----一堆結構體。

Linux下開發攝像頭的不同角度問題:(嵌入式開發)

1.?上層軟件系統開發(系統編程),控制驅動提供的接口使用攝像頭。

2.?底層硬件系統開發(驅動編程),直接控制攝像頭采集數據。

攝像頭功能:將采集到的圖像數據轉為二進制數據返回。

驅動的代碼集成在操作系統里。

在操作系統里使用攝像頭步驟:學習接口函數的調用。

fread(); read();

Linux下是一切設備皆文件: 攝像頭、網卡、聲卡、鼠標、鍵盤………………….

Linux下設備文件存放的位置: /dev目錄下。

在虛擬機跑Linux,使用外設設備都需要單獨掛載才可以使用。

??掛載攝像頭:

pYYBAGMlPdWAdsKDAAAtwifWChI034.png

??查看攝像頭的設備節點:

[root@wbyq /]# ls /dev/video*

/dev/video0 /dev/video1

??遠程網頁視頻監控示例

libjpeg-turbo-1.2.1.tar.gz : 將圖片數據可以壓縮成jpeg數據流。Jpg圖片。

mjpg-streamer-r63.tar.gz : 采集攝像頭的數據,進行處理。

一張240*320的24位色bmp圖片大小: 240*320*3

第一步:編譯libjpeg-turbo

1. 解壓:libjpeg-turbo-1.2.1.tar.gz

2. 生成Makefile(如果報錯,就安裝報錯提示安裝包):./configure

3. 編譯安裝:make && make install

4. 將生成lib和include目錄下的文件拷貝到/usr目錄下的對應文件夾

第二步:編譯mjpg-streamer-r63

1.直接make進行編譯

2.運行程序:./mjpg_streamer -i "/work/mjpeg/mjpg-streamer-r63/input_uvc.so -f 10 -r 800*480 -y" -o "/work/mjpeg/mjpg-streamer-r63/output_http.so -w www"

注意: 可以使用電腦自帶的攝像頭。在虛擬機的右下角進行將windows系統的攝像頭掛載到Linux系統

3. 在瀏覽器里輸入地址進行查看攝像頭:

例如:192.168.11.123:8080

作業:

1.?將遠程攝像頭監控的代碼編譯運行實現效果。

(1)?修改端口號。 8080不能作為公網的端口訪問。

(2)?修改線程數量。

(3)?分析下線程的函數實現原理。

(4)?使用花生殼軟件實現公網監控

2.?學習攝像頭的使用

攝像頭實現拍照源程序流程:(50%程序學過的)

1.?打開攝像頭的設備文件 open(“/dev/xxx”);

2.?獲取攝像頭參數。判斷攝像頭是否支持一些特有的操作。read

3.?配置攝像頭的參數。(1) 輸出的源數據格式RGB888 (2) 輸出的圖像尺寸

RGB888:數字數據格式

其他格式: YUV 模擬數據格式

4.?判斷攝像頭的參數是否設置成功。

5.?讀取攝像頭的數據。 隊列的形式。

6.?將讀取的YUV格式數據轉為RGB格式

7.?將RGB格式數據編碼為BMP格式的圖片存放到電腦上

??擴展練習:制作貪吃蛇游戲。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    9519

    瀏覽量

    157014
  • Linux
    +關注

    關注

    88

    文章

    11758

    瀏覽量

    219004
  • 網絡
    +關注

    關注

    14

    文章

    8264

    瀏覽量

    94696
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    curl中的TFTP實現:整數下溢導致堆內存越界讀取漏洞

    以下條件時,漏洞可以被觸發: 使用特定選項調用 curl :通過 --tftp-no-options 參數調用 curl,或者 libcurl 的使用者設置了
    發表于 02-19 13:55

    調用野莓平臺商品詳情API接口實踐

    ? ?在電商平臺的技術棧中,商品詳情信息的獲取是高頻且核心的操作。野莓平臺提供了穩定、高效的API接口開發者查詢商品詳情數據。本文將詳細介紹如何調用野莓平臺的商品詳情API接口,包括
    的頭像 發表于 02-04 16:42 ?521次閱讀
    <b class='flag-5'>調用</b>野莓平臺商品詳情API<b class='flag-5'>接口</b>實踐

    TQKIT開發板工具讓系統功能調用更簡單

    TQKIT開發板工具,將復雜的系統控制能力以接口形式開放給開發者,讓系統功能調用更簡單。
    的頭像 發表于 12-08 09:27 ?402次閱讀
    TQKIT<b class='flag-5'>開發</b>板工具讓系統功能<b class='flag-5'>調用</b>更簡單

    連載|開發工具,易安卓讓系統功能調用像寫應用邏輯一樣簡單

    通過自研系統封裝庫,易安卓將復雜的系統控制能力以接口形式開放給開發者,讓系統功能調用像寫應用邏輯一樣簡單。
    的頭像 發表于 11-27 11:40 ?87次閱讀
    連載|<b class='flag-5'>開發</b>工具,易安卓讓系統功能<b class='flag-5'>調用</b>像寫應用邏輯一樣簡單

    【免費送書】成為硬核Linux開發者:《Linux 設備驅動開發(第 2 版)》

    Linux系統的設備驅動開發,一直給人門檻較高的印象,主要因內核機制抽象、需深度理解硬件原理、開發調試難度大所致。2021年,一本講解驅動開發的專著問世即獲市場青睞,暢銷近萬冊——這便
    的頭像 發表于 11-18 08:06 ?1385次閱讀
    【免費送書】成為硬核<b class='flag-5'>Linux</b><b class='flag-5'>開發</b>者:《<b class='flag-5'>Linux</b> 設備驅動<b class='flag-5'>開發</b>(第 2 版)》

    API接口調用中的網絡異常及解決方案

    一、連接類異常:“無法建立通信鏈路” 連接類異常的核心問題是 客戶端與API服務器之間無法成功建立TCP連接 ,導致調用請求“發不出去”,是網絡層最基礎的異常類型。 1. 常見場景與原因 目標服務器
    的頭像 發表于 11-17 09:22 ?675次閱讀

    調用拼多多開放平臺 API 獲取店鋪列表

    ? ?在電商平臺生態開發中,獲取店鋪信息是常見的需求。本文將介紹如何通過拼多多開放平臺的 API 接口獲取店鋪列表,包括接口概述、調用流程以及注意事項。 1.
    的頭像 發表于 11-10 15:30 ?576次閱讀
    <b class='flag-5'>調用</b>拼多多開放平臺 API 獲取店鋪列表

    深入了解系統調用API:探索操作系統底層的關鍵接口

    ,也無法使用內核函數。當用戶進程必須訪問內核或使用某個內核函數時,就得使用系統調用(System Call)。在Linux中,系統調用是用戶空間訪問內核空間的唯一途徑。 什么是系統調用
    的頭像 發表于 11-03 09:20 ?697次閱讀

    VVIC 平臺商品詳情接口高效調用方案:從簽名驗證到數據解析全流程

    本文詳解VVIC平臺商品詳情接口調用全流程,涵蓋參數配置、簽名生成、異常處理與數據解析,提供可復用的Python代碼及避坑指南,助力開發者高效實現安全、穩定的數據對接。
    的頭像 發表于 09-23 10:28 ?679次閱讀

    Linux 應用開發手冊

    T507linux應用開發手冊
    發表于 08-22 17:01 ?15次下載

    【HZ-T536開發板免費體驗】3 - Cangjie Magic調用視覺語言大模型(VLM)真香,是不是可以沒有YOLO和OCR了?

    的大小是47M字節,還是比較小的,當然有進一步裁減的余地。 安裝curl Cangjie Magic默認是調用curl來執行大模型推理工作的,而開發板默認是沒有
    發表于 08-01 22:15

    如何調用C的接口來封裝micropyton接口?

    microPython的庫比較少,無法滿足需求,請問調用C的接口來封裝micropyton接口如何操作?能否提供詳細步驟? 你好,可以參考micropython官方的教程來添加自定義的模塊。
    發表于 06-23 07:17

    Linux網絡設置與基礎服務

    Linux網絡設置與基礎服務
    的頭像 發表于 04-09 11:51 ?3403次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網絡</b>設置與基礎服務

    如何在RakSmart服務器上用Linux系統部署DeepSeek

    ://ollama.com/install.sh | sh`,并配置服務監聽所有網絡接口(修改 `/etc/systemd/system/ollama.service` 添加 `OLLAMA_HOST=0.0.0.0`)。 2. 下載模型:通過 `ollama run d
    的頭像 發表于 03-14 11:53 ?770次閱讀

    飛凌嵌入式ElfBoard ELF 1板卡-Linux設備驅動的分類

    Drivers):這類驅動程序用于支持網絡接口卡(NIC)和其他網絡設備。它們負責管理數據包的傳輸、網絡連接和協議處理等功能。Linux
    發表于 03-10 17:00