在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    8718

    瀏覽量

    152021
  • Linux
    +關注

    關注

    87

    文章

    11351

    瀏覽量

    210507
  • 網絡
    +關注

    關注

    14

    文章

    7600

    瀏覽量

    89304
收藏 人收藏

    評論

    相關推薦

    curl wget bond:深入解析命令行工具的差異與應用場景

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

    如何使用 cURL 測試 HTTP 協議

    。以下是如何使用cURL測試HTTP協議的詳細步驟和示例。 1. 安裝cURL 在大多數Linux發行版和MacOS中,cURL已經預裝。如果你使用的是Windows,可以從
    的頭像 發表于 12-30 09:26 ?282次閱讀

    Linux開發怎么學?

    的應用程序和工具可供使用,如文本編輯器、圖形界面、數據庫等。學習 Linux 應用程序可以幫助你更好地應用 Linux 系統。 7.學習 Linux 網絡管理:
    發表于 10-10 14:34

    Linux網絡協議棧的實現

    網絡協議棧是操作系統核心的一個重要組成部分,負責管理網絡通信中的數據包處理。在 Linux 操作系統中,網絡協議棧(Network Stack)負責實現 TCP/IP 協議簇,處理應用
    的頭像 發表于 09-10 09:51 ?380次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>網絡</b>協議棧的實現

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是嵌入式Linux
    的頭像 發表于 09-02 09:11 ?641次閱讀

    嵌入式linux開發板怎么操作

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺。它通常包括一個處理器、內存、存儲器、輸入/輸出接口等硬件組件,以及一
    的頭像 發表于 09-02 09:09 ?481次閱讀

    嵌入式linux開發板芯片的工作原理

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

    linux開發板與樹莓派的區別

    操作系統的微型計算機,主要用于教育、編程、媒體播放等領域。 硬件配置 Linux開發板:Linux開發板的硬件配置因廠商和型號而異,通常包括處理器、內存、存儲、
    的頭像 發表于 08-30 15:34 ?1161次閱讀

    linux開發板如何編譯curl

    Linux開發板上編譯 curl 庫通常涉及到幾個步驟,包括準備開發環境、下載源代碼、配置編譯選項以及執行編譯和安裝過程。以下是一個基本的指南,幫助你在
    的頭像 發表于 08-30 15:33 ?802次閱讀

    linux開發板和單片機開發的區別

    硬件架構 Linux開發板和單片機開發在硬件架構上有很大的區別。Linux開發板通常基于ARM、x86或其他處理器架構,具有較高的處理能力和
    的頭像 發表于 08-30 15:30 ?1315次閱讀

    Linux 驅動開發與應用開發,你知道多少?

    一、Linux驅動開發與應用開發的區別開發層次不同:Linux驅動開發主要是針對硬件設備進行編程
    的頭像 發表于 08-30 12:16 ?952次閱讀
    <b class='flag-5'>Linux</b> 驅動<b class='flag-5'>開發</b>與應用<b class='flag-5'>開發</b>,你知道多少?

    Linux中查看IP地址的方法

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

    記一次JSF異步調用引起的接口可用率降低

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

    如何在linux上的“ifconfig -a”下枚舉wifi接口網絡,就像wlan0一樣?

    如何在 linux 上的“ifconfig -a”下枚舉 wifi 接口網絡,就像 wlan0 一樣
    發表于 07-19 06:54

    Curl命令來scan沒有結果的原因?

    E:ProgramTCPTools>curl -X GET \"http://192.168.4.1/client?command=scan { \"
    發表于 07-12 14:34
    主站蜘蛛池模板: 午夜色视频| 在线网站黄 | 久久综合视频网 | 天天做爽夜夜做爽 | 成 人 黄 色视频免费播放 | 亚洲精品免费视频 | 91青草视频 | 操操操综合网 | 沟沟人体一区二区 | 波多野结衣久久国产精品 | 国产成人三级视频在线观看播放 | 恐怖片大全恐怖片免费观看好看的恐怖片 | 四虎国产永久在线观看 | 看黄免费在线 | 717影院理论午夜伦不卡久久 | 青草午夜精品视频在线观看 | 天天草狠狠干 | 性欧美bbbbbb| 久久精品视频9 | 天天摸天天澡天天碰天天弄 | 亚洲天堂网站在线 | 天堂网在线.www天堂在线 | 美女好紧好大好爽12p | 女上男下边吃奶边做视频成都 | 四虎四虎| 夜夜爱视频 | 最新在线网址 | 亚洲国产一区二区三区a毛片 | 天天干天天干天天干 | 成人一级网站 | 五月天婷婷在线观看 | 天堂资源在线最新版 | 色婷婷成人 | 亚洲天堂网站 | 婷婷激情四月 | 视频在线观看免费 | 久久刺激视频 | 久热福利视频 | 男人j进入女人j视频大全 | 国产精品免费拍拍1000部 | 激情欧美一区二区三区中文字幕 |