91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux開發(fā)_curl調(diào)用網(wǎng)絡(luò)接口

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

掃碼添加小助手

加入工程師交流群

【摘要】 介紹curl調(diào)用網(wǎng)絡(luò)接口獲取天氣預(yù)報(bào),查看攝像頭設(shè)備接口,編譯網(wǎng)頁(yè)監(jiān)控開源庫(kù),在網(wǎng)頁(yè)上查看攝像頭圖像。

任務(wù)1:使用的網(wǎng)絡(luò)服務(wù)器接口

C語(yǔ)言:面向過(guò)程 、 面向?qū)ο?/strong>

1.?車牌號(hào)識(shí)別

2.?二維碼生成

3.?獲取北京時(shí)間

1.?調(diào)用網(wǎng)絡(luò)的接口的方式: (天氣預(yù)報(bào))

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

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

注意: &是特殊的符號(hào),需要使用單引號(hào)或者雙引號(hào)括起來(lái)。

Curl: 命令行的瀏覽器。

2.?調(diào)用二維碼生成的接口

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

??作業(yè):

1.?天氣預(yù)報(bào)查詢

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

poYBAGMlPdSAC-WrAAA4mjEWJsA399.png

2.?獲取北京標(biāo)準(zhǔn)時(shí)間,顯示出來(lái)

pYYBAGMlPdSAKYDOAAAMsIAQj18367.png

3.?查詢手機(jī)號(hào)碼歸屬地

4.?二維碼生成創(chuàng)建 運(yùn)行格式: ./app <生成的二維碼內(nèi)容>

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

5.?車牌號(hào)的識(shí)別

6.?調(diào)用百度地圖API接口 ,模擬實(shí)現(xiàn)導(dǎo)航的效果。

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

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

(3)?實(shí)時(shí)改變經(jīng)緯度的參數(shù)

7.?分析cjson源代碼,參考cjson源碼改進(jìn)數(shù)據(jù)解析方式。

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

使用cjson提供的函數(shù)去解析天氣預(yù)報(bào)、北京時(shí)間這些json格式的數(shù)據(jù)。

??JSON語(yǔ)法規(guī)則:

1.?大括號(hào){}表示對(duì)象

2.?雙引號(hào)表示的字符串

3.?冒號(hào)后面保存的是數(shù)據(jù)值,前面表示數(shù)據(jù)值的名稱

4.?中括號(hào)[]表示數(shù)組

5.?數(shù)據(jù)之間使用逗號(hào)隔開

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

??Cjson分析

//核心結(jié)構(gòu)體

typedef struct cJSON {

struct cJSON *next,*prev;

struct cJSON *child;

int type; //保存的數(shù)據(jù)的類型

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

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

double valuedouble;//浮點(diǎn)類型的值

char *string; //字符串類型

} cJSON;

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

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

cJSON *cJSON_GetArrayItem(cJSON *array,int item); //獲取數(shù)組每個(gè)下標(biāo)內(nèi)容

extern cJSON *cJSON_GetObjectItem(cJSON *object,const char *string); //獲取對(duì)象的節(jié)點(diǎn)數(shù)據(jù)

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

目前階段和后面的學(xué)習(xí)階段: 分析源碼,看源碼。

#define 預(yù)編譯 typedef

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

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

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

2.?獲取百度地圖的接口數(shù)據(jù)

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.?獲取高清靜態(tài)地圖

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.?出行線路規(guī)劃

poYBAGMlPdWAGMc9AACfcb9I5nc847.png

6.?字符串與其他格式數(shù)據(jù)之間轉(zhuǎn)換

#include

int atoi(const char *nptr); //字符串轉(zhuǎn)整數(shù)

#include

double atof(const char *nptr); //字符串轉(zhuǎn)浮點(diǎn)數(shù)

#include

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

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

示例1:

#include

#include

#include

#include

#include

#include

int main(int argc,char **argv)

{

char buff[100];

//整數(shù)轉(zhuǎn)為字符串

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

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


//浮點(diǎn)數(shù)轉(zhuǎn)為字符串

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)

{

//字符串轉(zhuǎn)整數(shù)

int data;

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

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


//字符串轉(zhuǎn)浮點(diǎn)數(shù)

float dataf;

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

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

return 0;

}

任務(wù)2:攝像頭操作方式

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

v4l2 :免驅(qū)攝像頭框架----一堆結(jié)構(gòu)體。

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

1.?上層軟件系統(tǒng)開發(fā)(系統(tǒng)編程),控制驅(qū)動(dòng)提供的接口使用攝像頭。

2.?底層硬件系統(tǒng)開發(fā)(驅(qū)動(dòng)編程),直接控制攝像頭采集數(shù)據(jù)。

攝像頭功能:將采集到的圖像數(shù)據(jù)轉(zhuǎn)為二進(jìn)制數(shù)據(jù)返回。

驅(qū)動(dòng)的代碼集成在操作系統(tǒng)里。

在操作系統(tǒng)里使用攝像頭步驟:學(xué)習(xí)接口函數(shù)的調(diào)用。

fread(); read();

Linux下是一切設(shè)備皆文件: 攝像頭、網(wǎng)卡、聲卡、鼠標(biāo)、鍵盤………………….

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

在虛擬機(jī)跑Linux,使用外設(shè)設(shè)備都需要單獨(dú)掛載才可以使用。

??掛載攝像頭:

pYYBAGMlPdWAdsKDAAAtwifWChI034.png

??查看攝像頭的設(shè)備節(jié)點(diǎn):

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

/dev/video0 /dev/video1

??遠(yuǎn)程網(wǎng)頁(yè)視頻監(jiān)控示例

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

mjpg-streamer-r63.tar.gz : 采集攝像頭的數(shù)據(jù),進(jìn)行處理。

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

第一步:編譯libjpeg-turbo

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

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

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

4. 將生成lib和include目錄下的文件拷貝到/usr目錄下的對(duì)應(yīng)文件夾

第二步:編譯mjpg-streamer-r63

1.直接make進(jìn)行編譯

2.運(yùn)行程序:./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"

注意: 可以使用電腦自帶的攝像頭。在虛擬機(jī)的右下角進(jìn)行將windows系統(tǒng)的攝像頭掛載到Linux系統(tǒng)

3. 在瀏覽器里輸入地址進(jìn)行查看攝像頭:

例如:192.168.11.123:8080

作業(yè):

1.?將遠(yuǎn)程攝像頭監(jiān)控的代碼編譯運(yùn)行實(shí)現(xiàn)效果。

(1)?修改端口號(hào)。 8080不能作為公網(wǎng)的端口訪問(wèn)。

(2)?修改線程數(shù)量。

(3)?分析下線程的函數(shù)實(shí)現(xiàn)原理。

(4)?使用花生殼軟件實(shí)現(xiàn)公網(wǎng)監(jiān)控

2.?學(xué)習(xí)攝像頭的使用

攝像頭實(shí)現(xiàn)拍照源程序流程:(50%程序?qū)W過(guò)的)

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

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

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

RGB888:數(shù)字?jǐn)?shù)據(jù)格式

其他格式: YUV 模擬數(shù)據(jù)格式

4.?判斷攝像頭的參數(shù)是否設(shè)置成功。

5.?讀取攝像頭的數(shù)據(jù)。 隊(duì)列的形式。

6.?將讀取的YUV格式數(shù)據(jù)轉(zhuǎn)為RGB格式

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

??擴(kuò)展練習(xí):制作貪吃蛇游戲。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9005

    瀏覽量

    153756
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213815
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7815

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux網(wǎng)絡(luò)設(shè)置與基礎(chǔ)服務(wù)

    Linux網(wǎng)絡(luò)設(shè)置與基礎(chǔ)服務(wù)
    的頭像 發(fā)表于 04-09 11:51 ?2581次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>設(shè)置與基礎(chǔ)服務(wù)

    如何在RakSmart服務(wù)器上用Linux系統(tǒng)部署DeepSeek

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

    飛凌嵌入式ElfBoard ELF 1板卡-Linux設(shè)備驅(qū)動(dòng)的分類

    Drivers):這類驅(qū)動(dòng)程序用于支持網(wǎng)絡(luò)接口卡(NIC)和其他網(wǎng)絡(luò)設(shè)備。它們負(fù)責(zé)管理數(shù)據(jù)包的傳輸、網(wǎng)絡(luò)連接和協(xié)議處理等功能。Linux設(shè)
    發(fā)表于 03-10 17:00

    curl wget bond:深入解析命令行工具的差異與應(yīng)用場(chǎng)景

    測(cè)試端口: curl -v ip:端口 限制下載速度: curl --limit-rate 100K http://example.com wget wget 是一個(gè)用于從網(wǎng)絡(luò)下載文件的命令行工具
    的頭像 發(fā)表于 01-24 09:20 ?448次閱讀

    如何使用 cURL 測(cè)試 HTTP 協(xié)議

    。以下是如何使用cURL測(cè)試HTTP協(xié)議的詳細(xì)步驟和示例。 1. 安裝cURL 在大多數(shù)Linux發(fā)行版和MacOS中,cURL已經(jīng)預(yù)裝。如果你使用的是Windows,可以從
    的頭像 發(fā)表于 12-30 09:26 ?1105次閱讀

    Linux開發(fā)怎么學(xué)?

    的應(yīng)用程序和工具可供使用,如文本編輯器、圖形界面、數(shù)據(jù)庫(kù)等。學(xué)習(xí) Linux 應(yīng)用程序可以幫助你更好地應(yīng)用 Linux 系統(tǒng)。 7.學(xué)習(xí) Linux 網(wǎng)絡(luò)管理:
    發(fā)表于 10-10 14:34

    Linux網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)

    網(wǎng)絡(luò)協(xié)議棧是操作系統(tǒng)核心的一個(gè)重要組成部分,負(fù)責(zé)管理網(wǎng)絡(luò)通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡(luò)協(xié)議棧(Network Stack)負(fù)責(zé)實(shí)現(xiàn) TCP/IP 協(xié)議簇,處理應(yīng)用
    的頭像 發(fā)表于 09-10 09:51 ?705次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網(wǎng)絡(luò)</b>協(xié)議棧的實(shí)現(xiàn)

    嵌入式linux開發(fā)板怎么操作

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺(tái)。它通常包括一個(gè)處理器、內(nèi)存、存儲(chǔ)器、輸入/輸出接口等硬件組件,以及一
    的頭像 發(fā)表于 09-02 09:09 ?800次閱讀

    嵌入式linux開發(fā)板芯片的工作原理

    了處理器、存儲(chǔ)器、輸入/輸出接口等硬件資源的嵌入式系統(tǒng)開發(fā)平臺(tái)。它通常采用Linux操作系統(tǒng)作為底層軟件平臺(tái),提供了豐富的開發(fā)工具和庫(kù)函數(shù),方便開發(fā)
    的頭像 發(fā)表于 09-02 09:07 ?820次閱讀

    linux開發(fā)板與樹莓派的區(qū)別

    操作系統(tǒng)的微型計(jì)算機(jī),主要用于教育、編程、媒體播放等領(lǐng)域。 硬件配置 Linux開發(fā)板:Linux開發(fā)板的硬件配置因廠商和型號(hào)而異,通常包括處理器、內(nèi)存、存儲(chǔ)、
    的頭像 發(fā)表于 08-30 15:34 ?1973次閱讀

    linux開發(fā)板如何編譯curl

    Linux開發(fā)板上編譯 curl 庫(kù)通常涉及到幾個(gè)步驟,包括準(zhǔn)備開發(fā)環(huán)境、下載源代碼、配置編譯選項(xiàng)以及執(zhí)行編譯和安裝過(guò)程。以下是一個(gè)基本的指南,幫助你在
    的頭像 發(fā)表于 08-30 15:33 ?1417次閱讀

    Linux 驅(qū)動(dòng)開發(fā)與應(yīng)用開發(fā),你知道多少?

    一、Linux驅(qū)動(dòng)開發(fā)與應(yīng)用開發(fā)的區(qū)別開發(fā)層次不同:Linux驅(qū)動(dòng)開發(fā)主要是針對(duì)硬件設(shè)備進(jìn)行編程
    的頭像 發(fā)表于 08-30 12:16 ?1596次閱讀
    <b class='flag-5'>Linux</b> 驅(qū)動(dòng)<b class='flag-5'>開發(fā)</b>與應(yīng)用<b class='flag-5'>開發(fā)</b>,你知道多少?

    Linux中查看IP地址的方法

    ifconfig是一個(gè)網(wǎng)絡(luò)管理工具,用于配置、控制和查詢網(wǎng)絡(luò)接口。在許多舊的Linux發(fā)行版中,ifconfig是查看和配置網(wǎng)絡(luò)
    的頭像 發(fā)表于 08-07 15:16 ?9335次閱讀
    在<b class='flag-5'>Linux</b>中查看IP地址的方法

    記一次JSF異步調(diào)用引起的接口可用率降低

    前言 本文記錄了由于JSF異步調(diào)用超時(shí)引起的接口可用率降低問(wèn)題的排查過(guò)程,主要介紹了排查思路和JSF異步調(diào)用的流程,希望可以幫助大家了解JSF的異步調(diào)用原理以及提供一些問(wèn)題排查思路。本
    的頭像 發(fā)表于 08-05 13:40 ?521次閱讀
    記一次JSF異步<b class='flag-5'>調(diào)用</b>引起的<b class='flag-5'>接口</b>可用率降低

    如何在linux上的“ifconfig -a”下枚舉wifi接口網(wǎng)絡(luò),就像wlan0一樣?

    如何在 linux 上的“ifconfig -a”下枚舉 wifi 接口網(wǎng)絡(luò),就像 wlan0 一樣
    發(fā)表于 07-19 06:54
    主站蜘蛛池模板: 国产精品五月天 | 亚洲青草视频 | 99国产国人青青视频在线观看 | 人人爽人人澡 | 亚洲一级影院 | 天天天天做夜夜夜夜 | 午夜剧场一级片 | 女人张开双腿让男人桶完整 | 爽死你个放荡粗暴小淫视频 | 四虎在线视频观看 | 亚洲精品在线免费观看视频 | 亚洲天堂导航 | 国产精品午夜国产小视频 | 潘金莲国产三级视频在线 | 永久免费观看黄网站 | 亚洲国产精品综合久久久 | 美女毛片在线观看 | 国产精品久久久久久久久免费 | 久久欧洲视频 | 欧洲人体超大胆露私视频 | 视色4se视频在线观看 | 天天干狠狠操 | 日韩毛片免费在线观看 | 在线资源你懂的 | 天天狠天天透天干天天怕处 | 国产福利网站 | 色秀视频免费网站在线观看 | 最新四虎4hu影库地址在线 | 国产又粗又大又爽又免费 | 免费又黄又爽的禁片视频 | 黄色录像视频网站 | 手机看片国产福利 | 狠狠色网 | 欧美经典三级春潮烂漫海棠红 | 欧美12一13高清视频 | 色在线视频观看 | 免费看一级视频 | 久久99精品久久久久久野外 | 亚洲综合精品一区二区三区中文 | 狠狠曹| 1024手机在线看 |