日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PX4/Pixhawk---uORB深入理解和应用

發(fā)布時間:2024/4/18 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PX4/Pixhawk---uORB深入理解和应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


The Instructions of uORB

『PX4/Pixhawk』???『軟件體系結(jié)構(gòu)』?『uORB』?『主題發(fā)布』?『主題訂閱』

1 簡介

1.1 PX4/Pixhawk的軟件體系結(jié)構(gòu)

?PX4/Pixhawk的軟件體系結(jié)構(gòu)主要被分為四個層次,這可以讓我們更好的理解PX4/Pixhawk的軟件架構(gòu)和運作:

  • 應(yīng)用程序的API:這個接口提供給應(yīng)用程序開發(fā)人員,此API旨在盡可能的精簡、扁平及隱藏其復(fù)雜性。
  • 應(yīng)用程序框架: 這是為操作基礎(chǔ)飛行控制的默認(rèn)程序集(節(jié)點)。
  • 庫: 這一層包含了所有的系統(tǒng)庫和基本交通控制的函數(shù)。
  • 操作系統(tǒng): 最后一層提供硬件驅(qū)動程序,網(wǎng)絡(luò),UAVCAN和故障安全系統(tǒng)。

?
??uORB(Micro Object Request Broker,微對象請求代理器)是PX4/Pixhawk系統(tǒng)中非常重要且關(guān)鍵的一個模塊,它肩負了整個系統(tǒng)的數(shù)據(jù)傳輸任務(wù),所有的傳感器數(shù)據(jù)、GPS、PPM信號等都要從芯片獲取后通過uORB進行傳輸?shù)礁鱾€模塊進行計算處理。實際上uORB是一套跨「進程」 的IPC通訊模塊。在Pixhawk中, 所有的功能被獨立以進程模塊為單位進行實現(xiàn)并工作。而進程間的數(shù)據(jù)交互就由為重要,必須要能夠符合實時、有序的特點。?
??Pixhawk使用的是NuttX實時ARM系統(tǒng),uORB實際上是多個進程打開同一個設(shè)備文件,進程間通過此文件節(jié)點進行數(shù)據(jù)交互和共享。進程通過命名的「總線」交換的消息稱之為「主題」(topic),在Pixhawk 中,一個主題僅包含一種消息類型,通俗點就是數(shù)據(jù)類型。每個進程可以「訂閱」或者「發(fā)布」主題,可以存在多個發(fā)布者,或者一個進程可以訂閱多個主題,但是一條總線上始終只有一條消息。

1.2 PX4/Pixhawk應(yīng)用程序框架

??應(yīng)用層中操作基礎(chǔ)飛行的應(yīng)用之間都是隔離的,這樣提供了一種安保模式,以確保基礎(chǔ)操作獨立的高級別系統(tǒng)狀態(tài)的穩(wěn)定性。而溝通它們的就是uORB。

2 uORB文件夾說明

2.1 uORB文件夾結(jié)構(gòu)

2.2 文件/目錄說明

topics : 系統(tǒng)通用接口定義的標(biāo)準(zhǔn)主題,比如電池電量轉(zhuǎn)態(tài)、GPS的位置參數(shù)等?
module.mk : uORB模塊makefile文件?
objects_common.cpp: 通用接口標(biāo)準(zhǔn)主題定義集合,如添加新主題在這里定義?
ORBMap.hpp : 對象請求器節(jié)點鏈表管理(驅(qū)動節(jié)點)?
ORBSet.hpp : 對象請求器節(jié)點管理(非驅(qū)動節(jié)點)?
Publication.cpp : 在不同的發(fā)布中遍歷使用?
Publication.hpp : 在不同的發(fā)布中遍歷使用?
Subscription.cpp : 在不同的訂閱中遍歷使用?
Subscription.hpp : 在不同的訂閱中遍歷使用?
uORB.cpp : uORB的實現(xiàn)?
uORB.h : uORB頭文件?
uORBCommon.hpp : uORB公共部分變量定義實現(xiàn)?
uORBCommunicator.hpp : 遠程訂閱的接口實現(xiàn),實現(xiàn)了對不同的通信通道管理,如添加/移除訂閱者,可以基于TCP/IP或fastRPC;傳遞給通信鏈路的實現(xiàn),以提供在信道上接收消息的回調(diào)。?
uORBDevices.hpp :?
uORBDevices_nuttx.cpp : 節(jié)點操作,close,open,read,write?
uORBDevices_nuttx.hpp :?
uORBDevices_posix.cpp :?
uORBDevices_posix.hpp :?
uORBMain.cpp : uORB入口?
uORBManager.hpp : uORB功能函數(shù)實現(xiàn)頭文件?
uORBManager_nuttx.cpp : uORB功能函數(shù)實現(xiàn)(Nuttx)?
uORBManager_posix.cpp : uORB功能函數(shù)實現(xiàn)(Posix)?
uORBTest_UnitTest.cpp : uORB測試?
uORBTest_UnitTest.hpp : uORB測試頭文件,包括主題定義和聲明等?
uORBUtiles.cpp :?
uORBUtiles.hpp :

3 常用函數(shù)功能解析

int poll(struct pollfd fds[], nfds_t nfds, int timeout)

功能:監(jiān)控文件描述符(多個); 說明:timemout=0,poll()函數(shù)立即返回而不阻塞;timeout=INFTIM(-1),poll()會一直阻塞下去,直到檢測到return > 0; 參數(shù):fds:struct pollfd結(jié)構(gòu)類型的數(shù)組;nfds:用于標(biāo)記數(shù)組fds中的結(jié)構(gòu)體元素的總數(shù)量;timeout:是poll函數(shù)調(diào)用阻塞的時間,單位:毫秒; 返回值:>0:數(shù)組fds中準(zhǔn)備好讀、寫或出錯狀態(tài)的那些socket描述符的總數(shù)量;==0:poll()函數(shù)會阻塞timeout所指定的毫秒時間長度之后返回;-1:poll函數(shù)調(diào)用失敗;同時會自動設(shè)置全局變量errno;

int orb_subscribe(const struct orb_metadata *meta)

功能:訂閱主題(topic); 說明:即使訂閱的主題沒有被公告,但是也能訂閱成功;但是在這種情況下,卻得不到數(shù)據(jù),直到主題被公告; 參數(shù):meta:uORB元對象,可以認(rèn)為是主題id,一般是通過ORB_ID(主題名)來賦值; 返回值:錯誤則返回ERROR;成功則返回一個可以讀取數(shù)據(jù)、更新話題的句柄;如果待訂閱的主題沒有定義或聲明則會返回-1,然后會將errno賦值為ENOENT; eg:int fd = orb_subscribe(ORB_ID(topicName));

int orb_copy(const struct orb_metadata *meta, int handle, void *buffer)

功能:從訂閱的主題中獲取數(shù)據(jù)并將數(shù)據(jù)保存到buffer中; 參數(shù):meta:uORB元對象,可以認(rèn)為是主題id,一般是通過ORB_ID(主題名)來賦值;handle:訂閱主題返回的句柄;buffer:從主題中獲取的數(shù)據(jù); 返回值:返回OK表示獲取數(shù)據(jù)成功,錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg:struct sensor_combined_s raw;orb_copy(ORB_ID(sensor_combined), sensor_sub_fd, &raw);

orb_advert_t orb_advertise(const struct orb_metadata *meta, const void *data)

功能:公告發(fā)布者的主題; 說明:在發(fā)布主題之前是必須的;否則訂閱者雖然能訂閱,但是得不到數(shù)據(jù); 參數(shù):meta:uORB元對象,可以認(rèn)為是主題id,一般是通過ORB_ID(主題名)來賦值;data:指向一個已被初始化,發(fā)布者要發(fā)布的數(shù)據(jù)存儲變量的指針; 返回值:錯誤則返回ERROR;成功則返回一個可以發(fā)布主題的句柄;如果待發(fā)布的主題沒有定義或聲明則會返回-1,然后會將errno賦值為ENOENT; eg:struct vehicle_attitude_s att;memset(&att, 0, sizeof(att));int att_pub_fd = orb_advertise(ORB_ID(vehicle_attitude), &att);

int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data)

功能:發(fā)布新數(shù)據(jù)到主題; 參數(shù):meta:uORB元對象,可以認(rèn)為是主題id,一般是通過ORB_ID(主題名)來賦值;handle:orb_advertise函數(shù)返回的句柄;data:指向待發(fā)布數(shù)據(jù)的指針; 返回值:OK表示成功;錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg: orb_publish(ORB_ID(vehicle_attitude), att_pub_fd, &att);

int orb_set_interval(int handle, unsigned interval)

功能:設(shè)置訂閱的最小時間間隔; 說明:如果設(shè)置了,則在這間隔內(nèi)發(fā)布的數(shù)據(jù)將訂閱不到;需要注意的是,設(shè)置后,第一次的數(shù)據(jù)訂閱還是由起初設(shè)置的頻率來獲取, 參數(shù):handle:orb_subscribe函數(shù)返回的句柄;interval:間隔時間,單位ms; 返回值:OK表示成功;錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg:orb_set_interval(sensor_sub_fd, 1000);

orb_advert_t orb_advertise_multi(const struct orb_metadata *meta, const void *data, int *instance, int priority)

功能:設(shè)備/驅(qū)動器的多個實例實現(xiàn)公告,利用此函數(shù)可以注冊多個類似的驅(qū)動程序; 說明:例如在飛行器中有多個相同的傳感器,那他們的數(shù)據(jù)類型則類似,不必要注冊幾個不同的話題; 參數(shù):meta:uORB元對象,可以認(rèn)為是主題id,一般是通過ORB_ID(主題名)來賦值;data:指向一個已被初始化,發(fā)布者要發(fā)布的數(shù)據(jù)存儲變量的指針;instance:整型指針,指向?qū)嵗腎D(從0開始);priority:實例的優(yōu)先級。如果用戶訂閱多個實例,優(yōu)先級的設(shè)定可以使用戶使用優(yōu)先級高的最優(yōu)數(shù)據(jù)源; 返回值:錯誤則返回ERROR;成功則返回一個可以發(fā)布主題的句柄;如果待發(fā)布的主題沒有定義或聲明則會返回-1,然后會將errno賦值為ENOENT; eg:struct orb_test t;t.val = 0;int instance0;orb_advert_t pfd0 = orb_advertise_multi(ORB_ID(orb_multitest), &t, &instance0, ORB_PRIO_MAX);

int orb_subscribe_multi(const struct orb_metadata *meta, unsigned instance)

功能:訂閱主題(topic); 說明:通過實例的ID索引來確定是主題的哪個實例; 參數(shù):meta:uORB元對象,可以認(rèn)為是主題id,一般是通過ORB_ID(主題名)來賦值;instance:主題實例ID;實例ID=0與orb_subscribe()實現(xiàn)相同; 返回值:錯誤則返回ERROR;成功則返回一個可以讀取數(shù)據(jù)、更新話題的句柄;如果待訂閱的主題沒有定義或聲明則會返回-1,然后會將errno賦值為ENOENT; eg:int sfd1 = orb_subscribe_multi(ORB_ID(orb_multitest), 1);

int orb_unsubscribe(int handle)

功能:取消訂閱主題; 參數(shù):handle:主題句柄; 返回值:OK表示成功;錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg:ret = orb_unsubscribe(handle);

int orb_check(int handle, bool *updated)

功能:訂閱者可以用來檢查一個主題在發(fā)布者上一次更新數(shù)據(jù)后,有沒有訂閱者調(diào)用過ob_copy來接收、處理過; 說明:如果主題在在被公告前就有人訂閱,那么這個API將返回“not-updated”直到主題被公告。可以不用poll,只用這個函數(shù)實現(xiàn)數(shù)據(jù)的獲取。 參數(shù):handle:主題句柄;updated:如果當(dāng)最后一次更新的數(shù)據(jù)被獲取了,檢測到并設(shè)置updated為ture; 返回值:OK表示檢測成功;錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg:if (PX4_OK != orb_check(sfd, &updated)) {return printf("check(1) failed");}if (updated) {return printf("spurious updated flag");}//orbool updated;struct random_integer_data rd;/* check to see whether the topic has updated since the last time we read it */orb_check(topic_handle, &updated);if (updated) {/* make a local copy of the updated data structure */orb_copy(ORB_ID(random_integer), topic_handle, &rd);printf("Random integer is now %d\n", rd.r);}

int orb_stat(int handle, uint64_t *time)

功能:訂閱者可以用來檢查一個主題最后的發(fā)布時間; 參數(shù):handle:主題句柄;time:存放主題最后發(fā)布的時間;0表示該主題沒有發(fā)布或公告; 返回值:OK表示檢測成功;錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg:ret = orb_stat(handle,time);

int orb_exists(const struct orb_metadata *meta, int instance)

功能:檢測一個主題是否存在; 參數(shù):meta:uORB元對象,可以認(rèn)為是主題id,一般是通過ORB_ID(主題名)來賦值;instance:ORB 實例ID; 返回值:OK表示檢測成功;錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg:ret = orb_exists(ORB_ID(vehicle_attitude),0);

int orb_priority(int handle, int *priority)

功能:獲取主題優(yōu)先級別; 參數(shù):handle:主題句柄;priority:存放獲取的優(yōu)先級別; 返回值:OK表示檢測成功;錯誤返回ERROR;否則則有根據(jù)的去設(shè)置errno; eg:ret = orb_priority(handle,&priority);

4 例程

4.1 例程前準(zhǔn)備工作
  • archives已編譯完成(注:2015/10/6號后改為cmake編譯系統(tǒng),不再需要編譯archives了);

  • 添加一個新的模塊

    • 在Firmware/src/modules中添加一個新的文件夾,命名為px4_simple_app
    • 在px4_simple_app文件夾中創(chuàng)建module.mk文件,并輸入以下內(nèi)容:?
      • MODULE_COMMAND = px4_simple_app
      • SRCS = px4_simple_app.c
    • 在px4_simple_app文件夾中創(chuàng)建px4_simple_app.c文件
/*** @file px4_simple_app.c* Minimal application example for PX4 autopilot.*/#include <nuttx/config.h> #include <stdio.h> #include <errno.h>__EXPORT int px4_simple_app_main(int argc, char *argv[]);int px4_simple_app_main(int argc, char *argv[]) {printf("Hello Sky!\n");return OK; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 注冊新添加的應(yīng)用到NuttShell中,并編譯上傳?
    • Firmware/makefiles/config_px4fmu-v2_default.mk文件中添加如下內(nèi)容:?
      • MODULES += modules/px4_simple_app
    • 編譯?
      • make clean
      • make px4fmu-v2_default
    • 上傳到板子中?
      • make upload px4fmu-v2_default
  • 在QGC 中的Terminal(終端)中運行新應(yīng)用?
    • nsh > px4_simple_app

?接下來的代碼修改均是基于此應(yīng)用。

4.2 訂閱主題

?sensor_combined主題是官方提供的通用接口標(biāo)準(zhǔn)主題。

/*** @file px4_simple_app.c* Minimal application example for PX4 autopilot*/#include <nuttx/config.h> #include <unistd.h> #include <stdio.h> #include <poll.h>#include <uORB/uORB.h> #include <uORB/topics/sensor_combined.h>__EXPORT int px4_simple_app_main(int argc, char *argv[]);int px4_simple_app_main(int argc, char *argv[]) {printf("Hello Sky!\n");/*訂閱sensor_combined 主題*/int sensor_sub_fd = orb_subscribe(ORB_ID(sensor_combined));/*一個應(yīng)用可以等待多個主題,在這里只等待一個主題*/struct pollfd fds[] = {{ .fd = sensor_sub_fd, .events = POLLIN },/* 這里可以添加更多的文件描述符;* { .fd = other_sub_fd, .events = POLLIN },*/};int error_counter = 0;while (true) {/*poll函數(shù)調(diào)用阻塞的時間為1s*/int poll_ret = poll(fds, 1, 1000);/*處理poll返回的結(jié)果 */if (poll_ret == 0) {/* 這表示時間溢出了,在1s內(nèi)沒有獲取到發(fā)布者的數(shù)據(jù) */printf("[px4_simple_app] Got no data within a second\n");} else if (poll_ret < 0) {/* 出現(xiàn)問題 */if (error_counter < 10 || error_counter % 50 == 0) {/* use a counter to prevent flooding (and slowing us down) */printf("[px4_simple_app] ERROR return value from poll(): %d\n", poll_ret);}error_counter++;} else {if (fds[0].revents & POLLIN) {/*從文件描述符中獲取訂閱的數(shù)據(jù)*/struct sensor_combined_s raw;/* copy sensors raw data into local buffer */orb_copy(ORB_ID(sensor_combined), sensor_sub_fd, &raw);printf("[px4_simple_app] Accelerometer:\t%8.4f\t%8.4f\t%8.4f\n",(double)raw.accelerometer_m_s2[0],(double)raw.accelerometer_m_s2[1],(double)raw.accelerometer_m_s2[2]);}/* 如果有更多的文件描述符,可以這樣:* if (fds[1..n].revents & POLLIN) {}*/}}return 0; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
測試需要在QGC終端啟動uORB和初始化該傳感器,最后運行應(yīng)用:nsh > uorb startnsh > sh /etc/init.d/rc.sensorsnsh > px4_simple_app &
4.3 訂閱和發(fā)布主題

?sensor_combined主題是官方提供的通用接口標(biāo)準(zhǔn)主題。?
?vehicle_attitude主題是官方提供的通用接口標(biāo)準(zhǔn)主題。

?程序流程圖如下:

/*** @file px4_simple_app.c* Minimal application example for PX4 autopilot*/#include <nuttx/config.h> #include <unistd.h> #include <stdio.h> #include <poll.h>#include <uORB/uORB.h> #include <uORB/topics/sensor_combined.h> #include <uORB/topics/vehicle_attitude.h>__EXPORT int px4_simple_app_main(int argc, char *argv[]);int px4_simple_app_main(int argc, char *argv[]) {printf("Hello Sky!\n");/* 訂閱 sensor_combined 主題 */int sensor_sub_fd = orb_subscribe(ORB_ID(sensor_combined));orb_set_interval(sensor_sub_fd, 1000);/* 公告 attitude 主題 */struct vehicle_attitude_s att;memset(&att, 0, sizeof(att));int att_pub_fd = orb_advertise(ORB_ID(vehicle_attitude), &att);/*一個應(yīng)用可以等待多個主題,在這里只等待一個主題*/struct pollfd fds[] = {{ .fd = sensor_sub_fd, .events = POLLIN },/* there could be more file descriptors here, in the form like:* { .fd = other_sub_fd, .events = POLLIN },*/};int error_counter = 0;while (true) {/* wait for sensor update of 1 file descriptor for 1000 ms (1 second) */int poll_ret = poll(fds, 1, 1000);/* handle the poll result */if (poll_ret == 0) {/* this means none of our providers is giving us data */printf("[px4_simple_app] Got no data within a second\n");} else if (poll_ret < 0) {/* this is seriously bad - should be an emergency */if (error_counter < 10 || error_counter % 50 == 0) {/* use a counter to prevent flooding (and slowing us down) */printf("[px4_simple_app] ERROR return value from poll(): %d\n", poll_ret);}error_counter++;} else {if (fds[0].revents & POLLIN) {/* obtained data for the first file descriptor */struct sensor_combined_s raw;/* copy sensors raw data into local buffer */orb_copy(ORB_ID(sensor_combined), sensor_sub_fd, &raw);printf("[px4_simple_app] Accelerometer:\t%8.4f\t%8.4f\t%8.4f\n",(double)raw.accelerometer_m_s2[0],(double)raw.accelerometer_m_s2[1],(double)raw.accelerometer_m_s2[2]);/* 賦值 att 并且發(fā)布這些數(shù)據(jù)給其他的應(yīng)用 */att.roll = raw.accelerometer_m_s2[0];att.pitch = raw.accelerometer_m_s2[1];att.yaw = raw.accelerometer_m_s2[2];orb_publish(ORB_ID(vehicle_attitude), att_pub_fd, &att);}/* there could be more file descriptors here, in the form like:* if (fds[1..n].revents & POLLIN) {}*/}}return 0; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
4.4 創(chuàng)建自己的主題

??官方提供的通用接口標(biāo)準(zhǔn)主題都放在了topics文件夾下了。如果要定義我們自己的主題,比如我們新添加了超聲波傳感器,為了將超聲波傳感器的數(shù)據(jù)發(fā)布出去給其他需要的應(yīng)用訂閱,那么久需要創(chuàng)建我們的主題了。

  • 主題頭文件(mytopic.h)?
    • ORB_DECLARE(myTopicName);//聲明一個主題
    • 定義一個存放發(fā)布數(shù)據(jù)的結(jié)構(gòu)體;
  • 主題源文件(mytopic.c)?
    • ORB_DEFINE(myTopicName);//定義一個主題
    • 初始化發(fā)布數(shù)據(jù)
    • 公告主題
    • 發(fā)布主題數(shù)據(jù)

mytopic.h

/* 聲明自定義主題,名字可以自定義,不過最好具有一定的意義,如下為隨機產(chǎn)生整數(shù)數(shù)據(jù) */ ORB_DECLARE(random_integer);/* 定義要發(fā)布的數(shù)據(jù)結(jié)構(gòu)體 */ struct random_integer_data {int r; };
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

mytopic_publish.c

#include <topic.h>/* 定義主題 */ ORB_DEFINE(random_integer);/* 待發(fā)布的主題句柄 */ static int topic_handle;int init() {/* 隨機產(chǎn)生一個數(shù)初始化數(shù)據(jù)結(jié)構(gòu)體 */struct random_integer_data rd = { .r = random(), };/* 公告主題 */topic_handle = orb_advertise(ORB_ID(random_integer), &rd); }int update_topic() {/* 產(chǎn)生新的數(shù)據(jù) */struct random_integer_data rd = { .r = random(), };/* 發(fā)布主題,更新數(shù)據(jù) */orb_publish(ORB_ID(random_integer), topic_handle, &rd); }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

??對于訂閱者來說,就可以參考主題「4.2 訂閱例程」了。不過這里還是提供下簡單處理例程:

mytopic_subscriber.c

#include <topic.h>/* 訂閱主題的句柄*/ static int topic_handle;int init() {/* 訂閱主題 */topic_handle = orb_subscribe(ORB_ID(random_integer)); }void check_topic() {bool updated;struct random_integer_data rd;/* check to see whether the topic has updated since the last time we read it */orb_check(topic_handle, &updated);if (updated) {/* make a local copy of the updated data structure */orb_copy(ORB_ID(random_integer), topic_handle, &rd);printf("Random integer is now %d\n", rd.r);} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

5 參考資料

??http://www.pixhawk.com/start?id=zh/dev/px4_simple_app?
??http://www.pixhawk.com/dev/shared_object_communication?
??http://blog.arm.so/armteg/pixhawk/183-0503.html?
??http://pixhawk.org/start?id=dev/software_architecture?
??http://www.pixhawk.com/dev/add_uorb_topic?s[]=objects&s[]=common

總結(jié)

以上是生活随笔為你收集整理的PX4/Pixhawk---uORB深入理解和应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧美激情在线网站 | 日韩av中文在线观看 | 激情五月在线视频 | 日韩二区在线播放 | 婷婷 综合 色 | 久久综合九色欧美综合狠狠 | 国产最顶级的黄色片在线免费观看 | 免费高清男女打扑克视频 | 久久久国内精品 | 成人av在线直播 | 91亚洲精品久久久久图片蜜桃 | 久久99在线| 欧美性做爰猛烈叫床潮 | 国产色在线观看 | 探花视频免费在线观看 | 999久久久久久久久 69av视频在线观看 | 91资源在线视频 | 国产精品九九九九九九 | 一区二区亚洲精品 | 97精品一区 | 99热这里只有精品免费 | 日韩乱码在线 | 丁香婷婷网 | 久产久精国产品 | 夜夜骑日日 | 三上悠亚一区二区在线观看 | 国产精品久久久久久麻豆一区 | 久久黄页| 91精品视频免费看 | 国内丰满少妇猛烈精品播 | 久久久久欠精品国产毛片国产毛生 | 成人小视频在线观看免费 | 日韩欧美在线国产 | 久久国内视频 | 伊人天天色 | 亚洲国产成人精品在线观看 | 免费网站看av片 | 天天摸天天操天天舔 | 亚洲最大av | 六月婷婷久香在线视频 | 国产一在线精品一区在线观看 | 亚洲v欧美v国产v在线观看 | 久久综合桃花 | 天天操天天色天天射 | 粉嫩av一区二区三区四区在线观看 | 在线观看av网站 | 久久久久免费网站 | 四虎天堂| 丰满少妇一级片 | 国产精品theporn | 国产福利91精品一区二区三区 | 亚洲第一伊人 | 人人爱在线视频 | 夜色成人网 | 久久久久国产精品www | 91视频电影 | 操高跟美女 | 啪嗒啪嗒免费观看完整版 | 国产在线精品一区二区三区 | 在线观看一 | 黄色软件在线观看视频 | 久久久久久黄 | 日日干天天爽 | 五月天婷婷狠狠 | 久久久一本精品99久久精品 | 天天操欧美 | 亚洲精品国偷自产在线91正片 | av综合站 | 精品一区二区精品 | 久草视频在线资源站 | 久久久久这里只有精品 | 久久综合在线 | 香蕉在线影院 | 超碰在线日韩 | 久久久久久久久久久久久9999 | 亚洲天天综合 | av成人在线电影 | 国产伦精品一区二区三区无广告 | 亚洲精品午夜国产va久久成人 | 亚洲精品美女免费 | 久久社区视频 | 婷婷在线不卡 | 黄色免费网站大全 | 天天色天天爱天天射综合 | av在线进入 | 一区二区精品在线 | 欧美另类69 | 日韩欧美精品在线观看视频 | 一级成人网 | 国产精品国产三级国产不产一地 | 三级黄色在线观看 | 欧美另类交在线观看 | freejavvideo日本免费 | 免费看片网站91 | 国产在线不卡一区 | 天天干天天草天天爽 | 这里只有精品视频在线 | 免费成人在线观看视频 | 国产91粉嫩白浆在线观看 | 久久国产欧美日韩精品 | 麻豆视频免费在线观看 | 99精品视频一区二区 | 五月导航| 日本一区二区高清不卡 | 四虎成人精品永久免费av九九 | 97在线精品国自产拍中文 | 精品黄色片 | 国产精品区二区三区日本 | 久爱精品在线 | 久久久国产精品成人免费 | 成年人av在线播放 | 国产精品精品久久久久久 | 精品中文字幕在线播放 | 日产中文字幕 | 亚洲精品国产综合久久 | 一区二区三区在线电影 | 色插综合 | 香蕉国产91| 国产又粗又猛又爽又黄的视频先 | 玖玖玖影院 | 中文字幕在线播放一区二区 | 懂色av一区二区在线播放 | 亚洲成人资源在线 | 中文字幕在线字幕中文 | 国产精品免费久久 | 日韩欧美精品一区二区 | 麻豆国产精品va在线观看不卡 | 精品免费久久久久 | 99精品视频一区 | 国产主播大尺度精品福利免费 | 日韩在观看线 | 国产在线视频不卡 | 蜜桃麻豆www久久囤产精品 | 国产无套精品久久久久久 | 成人av电影免费在线观看 | 久久久免费电影 | 亚洲va男人天堂 | 狠狠操夜夜操 | 国产精品自产拍在线观看蜜 | 久久久久国 | 久草在线视频国产 | 狠狠干五月天 | 国产白浆在线观看 | 久久视频免费 | 国产91全国探花系列在线播放 | 69久久99精品久久久久婷婷 | 97网在线观看| 日本 在线 视频 中文 有码 | 亚洲伦理一区二区 | 久久久伦理 | 激情偷乱人伦小说视频在线观看 | 在线看国产 | 免费观看久久久 | 国产高清视频免费 | 久久免视频 | 丝袜美腿在线播放 | 99久久er热在这里只有精品66 | 成人免费毛片aaaaaa片 | 欧美福利网址 | av电影在线播放 | 日韩在线观看你懂的 | 精品国产一区二区三区久久久蜜月 | 日本高清xxxx | 欧美亚洲成人免费 | 草莓视频在线观看免费观看 | 久久久久久久久久福利 | 国产精品毛片久久 | 日韩美女免费线视频 | 日韩欧美在线一区 | 国产高清视频免费观看 | 中文在线字幕免费观看 | 免费亚洲精品 | 草久视频在线观看 | 亚洲永久精品视频 | 四虎在线免费观看 | 久久免费视频一区 | 一级黄色片毛片 | 亚洲精品国产综合久久 | 亚洲一区视频在线播放 | 色综合天天爱 | 九色91在线视频 | www五月天 | 成人免费在线电影 | 久久久久久久久艹 | 韩国精品在线观看 | 中文字幕久久久精品 | 一区二区三区四区不卡 | 六月激情久久 | 国产xxxx| 91麻豆精品一区二区三区 | 黄色一集片 | 999久久 | 最近中文字幕高清字幕在线视频 | 久久婷婷开心 | 久久九九国产视频 | av在线电影播放 | 国产亚洲91 | 亚洲精品视频一二三 | av九九 | aaa免费毛片 | 四虎影视www | 国产一区二区日本 | 在线观看一级片 | 一级黄色大片在线观看 | 96亚洲精品久久久蜜桃 | 日韩专区视频 | 狠狠躁夜夜躁人人爽视频 | www久草 | 国产精品a成v人在线播放 | 亚洲精品国产精品99久久 | 免费视频黄色 | 亚洲欧洲精品一区二区精品久久久 | 国产黄a三级三级 | 亚洲免费在线观看视频 | 日韩中文字幕在线 | 欧美日韩视频免费 | 永久免费观看视频 | 日韩欧美网址 | 91入口在线观看 | 九色91福利| 国产专区一| 九九视频免费在线观看 | 天天做天天干 | 成人久久综合 | 五月综合激情网 | 久久99欧美 | 日韩网站免费观看 | 中文字幕 欧美性 | 国内精品一区二区 | 国产精品青草综合久久久久99 | 亚在线播放中文视频 | 麻豆综合网 | 免费视频99 | 99麻豆视频 | 欧美在线观看视频一区二区三区 | 天天射成人 | 97人人射| 成人免费一区二区三区在线观看 | 久久美女精品 | 久久综合九色综合97_ 久久久 | 国产福利91精品一区二区三区 | 99亚洲精品视频 | 日韩亚洲在线 | 日本精品中文字幕在线观看 | 亚洲国产人午在线一二区 | 国产成人三级在线观看 | 国内精品亚洲 | 波多野结衣电影久久 | 91精品网站 | 五月天六月丁香 | 成年人黄色在线观看 | .国产精品成人自产拍在线观看6 | 97在线观看免费高清 | 国产精品久久久久久一二三四五 | 日韩精品在线视频免费观看 | 日本久久片 | 欧美一区二区三区在线播放 | 午夜国产在线观看 | 少妇搡bbbb搡bbb搡69 | 久草在线视频精品 | 天天干夜夜想 | 九九视频免费在线观看 | 欧美日韩中文字幕综合视频 | 中文字幕亚洲国产 | 91视频91自拍 | 国产午夜精品免费一区二区三区视频 | 欧美日韩一区二区在线观看 | 中文超碰字幕 | 99热精品久久 | 人人射网站 | 国产最新福利 | 久久精品日本啪啪涩涩 | 国产精品成人自产拍在线观看 | 国产精品高潮呻吟久久av无 | 日本性视频 | 国产在线 一区二区三区 | 成年人免费观看在线视频 | 欧美激情视频在线免费观看 | 成人在线播放网站 | 人人玩人人添人人 | 成人国产精品 | 久久视频一区二区 | 这里只有精品视频在线观看 | 免费合欢视频成人app | 久久不见久久见免费影院 | 亚洲最大免费成人网 | 国产在线专区 | 精品福利视频在线 | 欧美日韩免费一区二区三区 | 亚洲精品中文字幕视频 | 国产精品一区欧美 | 奇米影视777四色米奇影院 | 久久久久久久久久久网 | 国产在线欧美日韩 | 久久av高清| 久久久久欠精品国产毛片国产毛生 | 国内精品久久影院 | 天天躁天天躁天天躁婷 | 麻豆视频在线观看免费 | 91视频久久久 | 亚洲最新视频在线 | 国产在线观看黄 | 亚洲精品久久久久久久不卡四虎 | 91视频 - 114av| 在线观看成人 | 成人精品亚洲 | 国产精品自在欧美一区 | 三级av在线播放 | 久久国产精品99久久久久久老狼 | 91网在线| 91成版人在线观看入口 | 久久精品亚洲精品国产欧美 | 99精品国产在热久久下载 | 国产成人61精品免费看片 | 国产伦精品一区二区三区照片91 | 国产精品久久久久高潮 | 欧美日本在线视频 | 狠狠色丁香久久婷婷综合丁香 | 99精品偷拍视频一区二区三区 | 日日干激情五月 | 久久伊人五月天 | 69亚洲精品 | 久久久久一区 | 久久精品电影 | 国产精品高潮呻吟久久av无 | 久久都是精品 | 91亚洲精品久久久蜜桃借种 | 成人黄色电影在线 | 欧美综合久久 | av高清网站在线观看 | 日韩天天综合 | 丁香婷婷综合激情五月色 | 亚洲国产免费看 | 国产女人18毛片水真多18精品 | 国产精品123 | 成人av地址| 人人爱人人做人人爽 | 国产精品久久久久久久久久ktv | 91av官网 | 亚洲精品视频在线观看免费视频 | 99 精品 在线 | 91视频在线免费 | 久久久国产一区二区 | 免费看一级 | av免费在线网站 | 精品夜夜嗨av一区二区三区 | 日韩在线观看你懂得 | 免费黄色网址大全 | 中文字幕中文字幕在线中文字幕三区 | 国产日本亚洲高清 | 久久视频二区 | 欧美色道| 久久国产精品免费观看 | 天天射天天干天天操 | 久久高清国产视频 | 在线观看中文字幕av | 天天操天天综合网 | 精品高清美女精品国产区 | 久久激情影院 | 美女精品在线观看 | 婷婷色中文字幕 | 超碰97国产精品人人cao | 91av99| 看毛片网站 | 亚洲精品一区二区三区在线观看 | 国产精品嫩草影院123 | 在线看小早川怜子av | 日韩高清毛片 | 不卡av在线 | 中文字幕精品在线 | 国产精品久久久久久a | 美女网站免费福利视频 | 国产精品久久久久久久久久直播 | 日韩成人高清在线 | 四虎国产精品成人免费影视 | 免费a v网站| 国产精品电影一区 | 久九视频 | 久久五月情影视 | 色婷婷狠 | 欧美日韩国产一区二区三区 | 最新日韩视频在线观看 | 日韩字幕| 毛片在线播放网址 | 激情五月***国产精品 | 免费看一及片 | 91大神在线观看视频 | 欧美综合在线观看 | 欧美成人影音 | 三上悠亚在线免费 | 免费福利影院 | 亚洲专区中文字幕 | 国产亚洲成av人片在线观看桃 | 中文字幕成人av | 精品99免费视频 | 免费网站污 | 天天躁天天操 | 日本精品va在线观看 | 欧美精品第一 | 91黄视频在线观看 | 天天爱天天操天天射 | 国产精品久久久久久久久久直播 | 一本一道久久a久久综合蜜桃 | 国产成人免费在线观看 | 99视频网址 | 91污在线观看 | 色综合天天在线 | 日韩专区在线观看 | 免费成人结看片 | 午夜色婷婷 | 日韩中文字幕亚洲一区二区va在线 | 521色香蕉网站在线观看 | 一区二区三区www | 国内偷拍精品视频 | 久久亚洲精品电影 | 日韩欧美91 | 在线视频你懂得 | 国内久久视频 | 久久久国产网站 | 国产91国语对白在线 | 亚洲一级理论片 | 一区二区三区高清在线观看 | 亚洲黄色免费 | 日韩高清片 | 伊人久久电影网 | 亚洲草视频 | 国产精品久久久久久久久婷婷 | 免费观看www7722午夜电影 | 91免费日韩 | 精品久久在线 | 国产对白av| 狠狠激情中文字幕 | 一本一本久久a久久精品综合妖精 | 91九色在线视频观看 | 黄色大片免费网站 | 日韩国产高清在线 | 人人干网 | 狠狠躁夜夜躁人人爽超碰91 | 天天操天天玩 | 久久久久久久久久免费视频 | 成人中心免费视频 | 午夜精品一区二区三区免费 | 99国产在线观看 | 韩国三级av在线 | 二区三区在线视频 | 国产免费区 | 国产精品第三页 | 久要激情网 | 玖玖999 | 久久国产精品电影 | 中文字幕观看av | 久久久久女人精品毛片九一 | 欧美另类xxxxx| 欧美一区日韩精品 | 在线高清av| 国产一区二区三区四区大秀 | 国产精品美女免费视频 | 97理论片| 精品国产视频一区 | 久久天天躁狠狠躁夜夜不卡公司 | 水蜜桃亚洲一二三四在线 | 亚洲成av片人久久久 | 亚洲人片在线观看 | 69精品视频| 天堂久色 | 99久久精品免费看国产一区二区三区 | 国产欧美在线一区 | 九色porny真实丨国产18 | 欧美精品三级在线观看 | 天天干天天干天天干天天干天天干天天干 | 91高清视频免费 | 亚洲午夜激情网 | 亚洲人成人99网站 | av福利超碰网站 | 手机版av在线 | 日韩av线观看 | 久久激情五月婷婷 | 久久久久久久久电影 | 成年人毛片在线观看 | 亚洲激情一区二区三区 | 国产亚洲成av片在线观看 | 欧美久久久久久久久久久 | 国产精品第二十页 | 免费视频91 | 久久国内精品视频 | 久久激情电影 | 国产精品免费视频一区二区 | 免费看污网站 | 国产精品九九九九九九 | 日本久久久久久久久久久 | 青青河边草观看完整版高清 | 一区二区三区在线观看免费视频 | 国产精品久久久久久妇 | 久久久久国产精品午夜一区 | 午夜精品一二三区 | 日韩大片在线免费观看 | 久章草在线 | 美女黄色网在线播放 | 在线99视频| 免费视频你懂的 | 伊人狠狠干 | 国产午夜精品免费一区二区三区视频 | 免费黄色小网站 | 98精品国产自产在线观看 | 91av在线免费播放 | 日韩中文字幕亚洲一区二区va在线 | 国产高清无线码2021 | 91福利视频一区 | 麻豆91精品视频 | 久久久99久久 | 国产日产精品久久久久快鸭 | 制服丝袜亚洲 | 97碰视频| 在线免费黄色 | 在线不卡a| 久草视频一区 | 免费观看一级视频 | 亚洲欧美日韩国产精品一区午夜 | 日本黄色免费看 | 极品美女被弄高潮视频网站 | 五月综合激情 | 丁香激情综合 | 亚洲 欧洲av | 欧美淫aaa免费观看 日韩激情免费视频 | 亚洲香蕉视频 | 在线观看国产亚洲 | 五月激情综合婷婷 | 午夜久久久久久久久 | 中文在线a∨在线 | 色天天综合网 | 在线一级片 | 国产精品 亚洲精品 | 日韩精品一区二 | 国产精品一区专区欧美日韩 | 夜夜夜精品 | 日本精品免费看 | 国产一级黄色片免费看 | 日韩精品1区2区 | 成人午夜性影院 | 99中文在线 | 首页中文字幕 | 午夜视频在线观看欧美 | 欧美淫aaa免费观看 日韩激情免费视频 | 国产成人a亚洲精品v | 中文字幕999 | 亚洲精品啊啊啊 | 手机成人免费视频 | 久久99精品国产一区二区三区 | 伊人色综合久久天天 | 91完整版| 狠狠躁夜夜躁人人爽视频 | 精品亚洲成a人在线观看 | 五月婷婷丁香 | 国产美女视频免费观看的网站 | 欧美亚洲一级片 | 国产又黄又硬又爽 | 日本三级香港三级人妇99 | 五月婷香蕉久色在线看 | 成+人+色综合 | 久草亚洲视频 | 夜夜狠狠 | www.久久久com | 成人av资源 | 波多野结衣视频一区二区三区 | 福利网址在线观看 | 激情深爱五月 | 五月激情婷婷丁香 | 日日夜夜天天干 | 黄在线免费观看 | 中文字幕日本电影 | 91网页版在线观看 | 日日狠狠 | 成人在线视频论坛 | 日韩高清dvd| 欧美夫妻性生活电影 | 天天干天天操av | 国产成人精品av久久 | 免费看污的网站 | 日日干激情五月 | 日韩视频一区二区三区在线播放免费观看 | 亚洲国产精彩中文乱码av | 97色涩 | 久久精品人 | 国产在线观看免费观看 | 亚洲精品国产综合99久久夜夜嗨 | 91porny九色91啦中文 | 久久免费视频2 | 黄色网址在线播放 | 亚洲精品97 | 国产精品美女免费 | 青草视频在线看 | 色综合久久久久综合99 | www..com黄色片 | 不卡电影免费在线播放一区 | 婷婷网五月天 | 亚洲精品美女久久久久 | 999视频精品 | 99国产视频| 中文字幕视频一区 | 国产 日韩 在线 亚洲 字幕 中文 | 亚洲一区日韩精品 | 在线看成人 | 久久精彩免费视频 | 国产精品观看视频 | 亚洲视频在线免费观看 | 免费看的毛片 | 久久视频在线观看免费 | 久久久久久久久影视 | 日韩欧美一区二区在线 | 久久久久亚洲国产精品 | 小草av在线播放 | 精品国产大片 | 九九热在线视频 | 国产精品久久麻豆 | 久草在线中文视频 | 日韩毛片在线播放 | 欧美 日韩 性 | 国产激情免费 | 99热这里精品| 国产高清不卡一区二区三区 | 久久综合色天天久久综合图片 | 中文字幕一区二区三区四区在线视频 | 激情丁香婷婷 | 91丨九色丨蝌蚪丨老版 | 午夜视频色 | 国产精品美女免费看 | 亚洲午夜精品久久久久久久久久久久 | 午夜视频在线观看一区二区三区 | 久久黄色影院 | 亚洲视频网站在线观看 | 亚洲专区 国产精品 | 久久免费a| 一区二区三区四区免费视频 | 4hu视频 | 91亚洲成人 | 国产精品 中文字幕 亚洲 欧美 | 国产在线欧美在线 | 最近日本韩国中文字幕 | 欧美日韩视频在线观看一区二区 | 999成人精品 | 日本在线视频网址 | 久久久久久久久精 | 中文不卡视频 | 日日碰狠狠添天天爽超碰97久久 | 探花视频免费观看高清视频 | 丁香综合av | 成人一级免费视频 | 国产精品剧情在线亚洲 | 911av视频| 7777精品伊人久久久大香线蕉 | 国产午夜一区二区 | 免费看片网页 | 91黄色小视频 | av在线电影免费观看 | 日日操狠狠干 | 久久综合九色综合欧美狠狠 | 久久国产电影院 | 天天综合网久久综合网 | 激情视频亚洲 | 久久精品站 | 久久在线视频精品 | 亚洲女在线 | 亚洲成人av电影 | 欧美三级在线播放 | 色婷婷久久 | 91在线视频播放 | 久久99精品国产91久久来源 | 91成人在线观看高潮 | 在线看福利av | 国产不卡网站 | 久久久蜜桃 | 国产精品一区欧美 | 婷婷五月情 | 天天爱av导航 | 狠狠色狠狠色综合系列 | 亚洲一区二区视频在线 | 亚洲精品国精品久久99热 | 久久一区二区三区国产精品 | 久久婷亚洲五月一区天天躁 | 国产专区免费 | 国产美女精品视频 | 欧美日本在线视频 | 欧美在线一级片 | 中文字幕亚洲欧美日韩 | 亚洲污视频| 97国产超碰在线 | 天天操狠狠操 | 色综合天天色 | 99电影456麻豆 | 国产韩国精品一区二区三区 | 91麻豆精品国产91久久久更新时间 | 精品在线观看免费 | 日本精品免费看 | 亚洲天天综合网 | 国产原创中文在线 | 久久婷婷一区二区三区 | 国产成人亚洲精品自产在线 | 激情五月婷婷激情 | 国产亚洲精品无 | 国产亚洲情侣一区二区无 | 黄在线免费看 | 亚洲干视频在线观看 | 一级片在线 | 国产一级电影在线 | 四虎国产视频 | 黄色app网站在线观看 | 永久免费精品视频 | 99视频在线观看免费 | 亚洲精品高清一区二区三区四区 | 国产高清在线精品 | 国产免费大片 | 91丨九色丨91啦蝌蚪老版 | 日韩视频中文字幕 | 精品视频区| 韩国在线视频一区 | 国产999精品久久久影片官网 | 国产一区在线看 | av黄色av| 五月婷丁香网 | 美女久久 | 五月激情av | 精品国产视频在线观看 | 一区二区三区免费在线观看视频 | 国产剧情一区二区在线观看 | 国内久久 | 白丝av免费观看 | 亚洲国产成人精品久久 | 成人教育av| 欧美亚洲另类在线视频 | 婷婷六月在线 | 久草视频免费观 | 特级西西www44高清大胆图片 | 日韩理论在线播放 | 成人黄色电影在线播放 | 丁香六月婷婷激情 | 久久无码av一区二区三区电影网 | 国产精品久久久久久久久久久不卡 | 日韩三级免费观看 | 日韩欧美综合视频 | 久久久午夜精品理论片中文字幕 | 久久综合五月天 | 中文字幕亚洲五码 | 久久久官网 | 国产精品久久久久久久久久 | 久久免费国产精品 | 亚洲国产成人精品在线观看 | 久久av一区二区三区亚洲 | 国产小视频你懂的在线 | 9色在线视频 | 欧美国产日韩在线视频 | 日韩精品久久久久久久电影99爱 | 99久久精品国产亚洲 | 97成人在线观看 | 中文字幕在线观看完整 | 亚洲日本欧美在线 | 天堂v中文 | 高清美女视频 | 在线视频麻豆 | 狠色狠色综合久久 | 99热精品久久 | 精品中文字幕在线观看 | 天天色天天爱天天射综合 | 日本久久不卡视频 | 国产玖玖精品视频 | 国产一级免费在线观看 | 日本中文字幕观看 | 激情综合色综合久久 | 亚洲成色 | 欧美日韩国产xxx | 欧美精品二| 国产精品一区二区久久精品爱微奶 | 一级成人免费视频 | 久久午夜电影网 | 国产在线成人 | 成年一级片 | 久久久国产影院 | 黄色h在线观看 | 在线播放 日韩专区 | 日日干日日| 欧美天堂视频在线 | 天天拍夜夜拍 | 免费成人av在线看 | 国产区欧美 | a在线观看视频 | 国产精品毛片久久久久久久久久99999999 | 日日草av| 国产精成人品免费观看 | 精品国产乱码久久久久 | 999久久久免费精品国产 | 国产老太婆免费交性大片 | 国产精品第一页在线观看 | 日韩a级免费视频 | 亚洲黄色免费在线 | 97国产精品亚洲精品 | av电影av在线 | 69xx视频| 亚洲精品一区中文字幕乱码 | 九月婷婷综合网 | 狠狠狠干 | 在线观看你懂的网站 | 色99色| 日本最新一区二区三区 | 欧洲黄色片 | 久久综合加勒比 | 狠狠地操 | 高清久久久久久 | 欧美日韩中文在线视频 | 日p视频| 久久夜靖品 | 亚洲免费观看在线视频 | 欧美一二三专区 | 国产免费a | 免费一级毛毛片 | 人人超在线公开视频 | 日韩一区二区免费播放 | 国产成人精品免高潮在线观看 | 欧美综合久久 | 欧美另类网站 | 亚洲精品午夜久久久 | 91中文视频 | 亚洲精品福利在线观看 | 狠狠久久婷婷 | 在线免费观看一区二区三区 | 久久成人综合 | 久久久久这里只有精品 | 国产日韩欧美在线观看 | 在线观看精品黄av片免费 | 亚洲精品婷婷 | 国产午夜精品在线 | 在线视频 影院 | 亚洲三级黄 | 国产91在线播放 | 激情五月色播五月 | 日本xxxx.com| 国产成人久久久久 | 久久99亚洲网美利坚合众国 | 六月丁香婷婷久久 | 久草在线91 | 中文字幕视频免费观看 | 欧美日韩国产色综合一二三四 | 一区二区三区韩国免费中文网站 | 麻豆传媒视频在线免费观看 | 色综合天天视频在线观看 | 日韩在线观看视频网站 | 国产精品99久久久久久人免费 | 激情五月婷婷丁香 | 日韩精品免费专区 | 三级视频国产 | av电影中文字幕 | 日本一区二区三区视频在线播放 | 国产成人精品999在线观看 | 中文字幕中文字幕在线中文字幕三区 | 天天操狠狠干 | 麻花豆传媒mv在线观看网站 | 日韩91av | 亚洲伊人色 | 91女人18片女毛片60分钟 | 亚洲一二区精品 | 国产精品一区二 | 日日夜夜天天操 | 久久这里只有精品久久 | 麻豆91视频 | 91在线最新 | 在线亚洲午夜片av大片 | 婷婷在线精品视频 | 国产精品成久久久久 | www狠狠 | 亚洲色影爱久久精品 | 色永久免费视频 | 久久免费av| 成人午夜影视 | 婷婷色影院 | 欧洲亚洲激情 | 欧美成人播放 | 午夜视频亚洲 | 激情五月婷婷综合 | 久久久久久99精品 | 国产精品一区二区美女视频免费看 | 日韩黄色在线观看 | 日韩网站视频 | 狠狠干免费 | 成人精品国产 | 日韩三级不卡 | 91av视频在线观看 | 久久精品一区二区三 | 超碰97人人射妻 | 天天操天天干天天插 | 九九久久影视 | 夜夜视频 | 欧美一级激情 | 日本精品久久久一区二区三区 | 日韩精品在线免费观看 | 亚洲综合黄色 | 91一区二区三区久久久久国产乱 | 日韩精品无码一区二区三区 | 欧美激情精品久久久久久 | 在线观看亚洲国产 | 日韩精品免费一区二区 | 欧美一级视频免费看 | 国产成人精品免费在线观看 | 九九热免费精品视频 | 国内免费的中文字幕 | 高清av网站| 欧美精品在线观看 | 91成人免费观看视频 | 综合网天天色 | 国内精品在线观看视频 | 91视频免费国产 | 麻豆av电影| 国内三级在线观看 | 一区免费观看 | 久久视频在线 | 色婷婷在线视频 | 69久久夜色精品国产69 | 欧美中文字幕第一页 | 国内精品久久久久久久影视麻豆 | 国产精品久久久999 国产91九色视频 | 欧美va在线观看 | 久久综合五月天 | 成片免费观看视频999 | 国产一级黄大片 | 三级大片网站 | 97精品国产97久久久久久久久久久久 | 精品人妖videos欧美人妖 | 亚洲狠狠干 | 99久视频 | 久久99亚洲网美利坚合众国 | 中文字幕在线影院 | 99精品在线直播 | 99精品欧美一区二区三区 | 国产精品 日本 | 欧美精品三级在线观看 | 日韩高清黄色 | 亚洲精品视频第一页 | 中文不卡视频在线 | 国产精品免费一区二区三区 | 97视频在线观看播放 | 日韩视频一二三区 | 日韩欧美综合 | 日韩黄在线观看 | 午夜av色| 天天操天天射天天舔 | 日韩av片免费在线观看 | 特级毛片网站 | 日韩超碰 | 黄污视频网站 | 亚洲成人免费在线 | 激情网站网址 | 国产黄色一级片在线 | 久久成人在线视频 | 日本mv大片欧洲mv大片 | 91精品在线播放 | 久久九九视频 | 99久久这里有精品 | 日本护士撒尿xxxx18 | 深夜福利视频一区二区 | 丁香视频 | 亚洲黄色av | 国产精品成人久久久久 | 国产一区二区在线播放 | 免费在线色电影 | 国产精品青青 | 国产精品丝袜久久久久久久不卡 | 最近中文字幕免费观看 | 国产 日韩 欧美 自拍 | 国产视频一区二区在线观看 | 欧洲高潮三级做爰 | av成人动漫在线观看 | 美女视频免费精品 | 久久免费视频这里只有精品 | 国产精品成人一区二区 | 福利一区二区三区四区 | 国产成人精品综合 | 成人久久久精品国产乱码一区二区 | 亚洲涩涩色 | 日韩中文字幕视频在线 | 黄色片网站av | 中文字幕一区二区三区乱码不卡 | 日韩mv欧美mv国产精品 | 亚洲一区二区三区毛片 | 奇米影视8888 | 色爱区综合激月婷婷 | 国产手机视频在线 | 久久久久免费精品国产小说色大师 | 日韩中文字幕视频在线 | 中文资源在线播放 | 日日爽视频 | 综合色综合色 | 伊人五月在线 | 免费看片网站91 | 日韩在线不卡av | 男女激情麻豆 | 热久久这里只有精品 | 国产视频在线观看一区二区 | 午夜精品一区二区三区在线播放 | 午夜骚影 | 久久久男人的天堂 | 韩国精品福利一区二区三区 |