免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

cantools 完整文檔導(dǎo)讀:CAN 總線數(shù)據(jù)庫解析、消息編解碼、CLI 工具與代碼規(guī)范實戰(zhàn)指南

cantools 完整文檔導(dǎo)讀:CAN 總線數(shù)據(jù)庫解析、消息編解碼、CLI 工具與代碼規(guī)范實戰(zhàn)指南 嵌入式開發(fā)工具【免費下載鏈接】cantoolsCAN bus tools.項目地址https://gitcode.com/gh_mirrors/ca/cantools點擊查看免費下載本文以 cantools 官方文檔docs/index.rst內(nèi)嵌完整README.rst為骨架結(jié)合倉庫源碼展開系統(tǒng)講解這個 Python 3 CAN 總線工具集從數(shù)據(jù)庫解析DBC/KCD/SYM/ARXML/CDD、消息編碼解碼、診斷 DID、CLI 命令行工具decode/plot/dump/list/generate_c_source/monitor/convert到 C 源碼生成與 Ubuntu 虛擬 CAN 接口vcan實戰(zhàn)的完整技術(shù)棧。閱讀本文后你將能夠直接用 cantools 加載車載網(wǎng)絡(luò)數(shù)據(jù)庫、在腳本或candump管道中實時解碼 CAN 報文、可視化信號曲線、生成可落地的 C 代碼并理解其 API 設(shè)計與編碼規(guī)范。項目概覽cantools 能做什么cantools 是使用 Python 3 編寫的 CAN 總線工具集CAN BUS tools in Python 3.官方文檔將其核心能力總結(jié)為多格式數(shù)據(jù)庫解析支持DBC、KCD、SYM、ARXML 34 與 CDD 文件的讀取與寫入。CAN 消息編碼與解碼根據(jù)信號定義位序、縮放因子、偏移量、符號性將物理量編碼為字節(jié)串、或?qū)⒃甲止?jié)解碼為物理量。簡單與擴展的信號多路復(fù)用signal multiplexing支持一個多路復(fù)用信號按取值切換不同的信號子集。診斷 DID 編碼與解碼面向 UDS 等診斷服務(wù)的數(shù)據(jù)DID/Data編解碼。candump輸出解碼直接消費 Linuxcandump程序抓取的日志流。節(jié)點 Tester 工具cantools.tester.Tester提供基于 CAN 數(shù)據(jù)庫的測試輔助。C 源代碼生成器從數(shù)據(jù)庫生成 C 語言的struct、pack/unpack與信號encode/decode函數(shù)。CAN 總線監(jiān)控器文本界面實時監(jiān)控總線流量。信號圖形化繪圖基于 matplotlib 可視化信號隨時間的變化曲線。上述能力的模塊組織可從源碼結(jié)構(gòu)印證src/cantools/database/下是 CAN 與診斷數(shù)據(jù)庫的加載/序列化邏輯can/formats/含dbc/、kcd.py、sym.py、arxml/diagnostics/formats/cdd.py負責(zé) CDDsrc/cantools/subparsers/下是各 CLI 子命令decode.py、plot.py、monitor.py、generate_c_source.py、convert.py、list.py、dump/src/cantools/c_source.py與tester.py分別對應(yīng) C 代碼生成與節(jié)點測試。安裝項目使用標(biāo)準(zhǔn)pip方式安裝python3 -m pip install cantools注意默認(rèn)安裝不包含 matplotlib因此plot繪圖子命令需要額外安裝可選依賴python3 -m pip install cantools[plot]同理數(shù)據(jù)庫加載緩存見下文cache_dir參數(shù)依賴可選的diskcache包可通過pip install cantools[cache]啟用。腳本化使用加載數(shù)據(jù)庫、編碼與解碼官方文檔以tests/files/dbc/motohawk.dbc這個小型 DBC 文件為貫穿示例。第一步是解析數(shù)據(jù)庫并打印消息與信號 import cantools from pprint import pprint db cantools.database.load_file(tests/files/dbc/motohawk.dbc) db.messages [message(ExampleMessage, 0x1f0, False, 8, Example message used as template in MotoHawk models.)] example_message db.get_message_by_name(ExampleMessage) pprint(example_message.signals) [signal(Enable, 7, 1, big_endian, False, 1.0, 0, 0.0, 0.0, -, False, None, {0: Disabled, 1: Enabled}, None), signal(AverageRadius, 6, 6, big_endian, False, 0.1, 0, 0.0, 5.0, m, False, None, None, ), signal(Temperature, 0, 12, big_endian, True, 0.01, 250, 229.53, 270.47, degK, False, None, None, None)]從輸出可見Message與Signal的 repr 字段對應(yīng)其構(gòu)造參數(shù)Enable起始位 7長度 1 位大端縮放 1.0偏移 0枚舉值{0: Disabled, 1: Enabled}、AverageRadius縮放 0.1單位 m、Temperature有符號縮放 0.01偏移 250范圍 229.53~270.47單位 degK。編碼并發(fā)送到總線配合python-can包可把信號字典編碼為字節(jié)串并發(fā)送到虛擬 CAN 總線 import can can_bus can.interface.Bus(vcan0, bustypesocketcan) data example_message.encode({Temperature: 250.1, AverageRadius: 3.2, Enable: 1}) message can.Message(arbitration_idexample_message.frame_id, is_extended_idexample_message.is_extended_frame, datadata) can_bus.send(message)也可以繞過Message.encode()直接調(diào)用數(shù)據(jù)庫級的encode_message()源碼見 database.py它同時接受 frame_idint或消息名str內(nèi)部走_frame_id_to_message/_name_to_message查表 db.encode_message(158, {Bar: 1, Fum: 5.0}) b\x01\x45\x23\x00\x11 db.encode_message(Foo, {Bar: 1, Fum: 5.0}) b\x01\x45\x23\x00\x11encode()方法message.py的三個可選參數(shù)含義scalingTrue默認(rèn)對信號應(yīng)用縮放物理量 raw × factor offset設(shè)為False則不縮放。paddingFalse默認(rèn)未使用的位編碼為 0設(shè)為True則按unused_bit_pattern默認(rèn)0x00填充為 1。strictTrue嚴(yán)格模式會先調(diào)用assert_signals_encodable()校驗信號值是否在允許范圍內(nèi)、信號是否齊全否則拋出EncodeError。接收并解碼接收一幀并解碼得到信號名到物理值的字典 message can_bus.recv() db.decode_message(message.arbitration_id, message.data) {AverageRadius: 3.2, Enable: Enabled, Temperature: 250.09}注意Enable被解碼為枚舉字符串Enabled而非整數(shù)1——這是decode_choices默認(rèn)開啟的效果。decode_message()database.py關(guān)鍵參數(shù)decode_choicesTrue將縮放后的值映射為choices中的字符串設(shè)為False則返回數(shù)值。scalingTrue默認(rèn)縮放False返回原始 raw 值。allow_truncatedFalse數(shù)據(jù)不足時是否允許截斷解碼。decode_containersFalse容器幀container frame的解碼需顯式開啟否則拋出DecodeError因為容器幀返回的是(Message, SignalsDict)元組列表會破壞普通調(diào)用方的預(yù)期。更多綜合示例見倉庫 examples 目錄如 hello_world.py、dbc_io/main.py、motor_tester。核心 API 參考Functions and classesdocs/index.rst通過 Sphinx 的autofunction/autoclass/autodata指令把以下對象直接納入文檔索引構(gòu)成完整的公開 API 面頂層加載/轉(zhuǎn)儲函數(shù)cantools.database.load_file()打開并解析文件返回can.Database或diagnostics.Database。cantools.database.dump_file()將數(shù)據(jù)庫寫回文件。cantools.database.load_string()解析字符串內(nèi)容。cantools.database.load()解析文件對象file-like object讀取其.read()內(nèi)容。load_file 的格式與編碼推斷l(xiāng)oad_file()database/init.py在database_format與encoding均為None時按擴展名自動推斷格式、按格式推斷默認(rèn)編碼擴展名大小寫不敏感擴展名數(shù)據(jù)庫格式默認(rèn)編碼.arxmlarxmlutf-8.dbcdbccp1252.kcdkcdutf-8.symsymcp1252.cddcddutf-8其他/未知Noneutf-8dbc與sym默認(rèn)使用cp1252編碼是因為這兩種格式在歷史工具鏈中常含 Latin-1 字符源碼_resolve_database_format_and_encoding()中明確映射了這一點。其他重要參數(shù)frame_id_mask對消息 frame id 做掩碼后建索引用于復(fù)用同一 id 空間的場景。prune_choices默認(rèn)開啟把枚舉取值名中共有的、以_結(jié)尾的前綴去掉以縮短名稱需要原名時傳False。strictTrue信號重疊或超出消息長度時拋異常。sort_signals默認(rèn)sort_signals_by_start_bit按起始位排序傳None不排序也可傳自定義函數(shù)如lambda signals: list(sorted(signals, keylambda sig: sig.name))。cache_dir啟用磁盤緩存依賴diskcache緩存鍵包含文件路徑 修改時間 全部影響結(jié)果的參數(shù)可通過環(huán)境變量CANTOOLS_CACHE_DIR開啟刪除cache_dir目錄即可清緩存。未安裝diskcache時會發(fā)出警告并自動禁用緩存。解析失敗會拋出UnsupportedDatabaseFormatErrorload_string()在database_formatNone時按arxml → dbc → kcd → sym → cdd順序逐一嘗試解析源碼見 database/init.py。dump_file 的寫回規(guī)則dump_file()database/init.py只支持寫出dbc、kcd、sym三種格式其余拋Unsupported output database format。規(guī)則dbc文件總是使用 Windows 風(fēng)格行尾\r\n其他格式跟隨操作系統(tǒng)這與源碼中newline\r\n的顯式聲明一致。DBC 默認(rèn)按信號起始位降序排序輸出KCD 默認(rèn)不排序可通過sort_signalsNone關(guān)閉排序。若要讓 foo.dbc 與 bar.dbc 差異最小加載時傳sort_signalsNone, prune_choicesFalse。load_file(..., sort_signalsNone)后再dump_file()會繼承“不排序”的設(shè)定as_dbc_string()中若加載時未排序則默認(rèn)也傳None。CAN 數(shù)據(jù)庫對象Database / Message / Signal / Node / Bus / SignalGroupcantools.database.can.Database整個 CAN 網(wǎng)絡(luò)的容器。公開屬性/方法包括messages、nodes、buses、version、dbcDBC 特有屬性對象、autosarAUTOSAR 特有屬性對象、get_message_by_name()、get_message_by_frame_id()frame id 大于0x7FF自動按擴展幀處理、get_node_by_name()、get_bus_by_name()、encode_message()、decode_message()、add_dbc_string()/add_dbc_file()/add_arxml_string()/add_arxml_file()/add_kcd_string()/add_kcd_file()/add_sym_string()/add_sym_file()、as_dbc_string()/as_kcd_string()/as_sym_string()、is_similar()容差比較忽略舍入等微小差異、refresh()修改消息后重建查找表。構(gòu)造參數(shù)中的strict與sort_signals語義與load_*一致frame_id_mask默認(rèn)0xffffffff。cantools.database.can.Message單條 CAN 消息。屬性包括frame_id、name、length、signals、is_extended_frame、is_fd、senders、receivers、comment/comments、send_type、cycle_time、dbc、autosar、signal_groups、signal_tree、is_container、contained_messages、header_id、unused_bit_pattern等。方法包括encode()、decode()、decode_simple()、decode_container()、unpack_container()、get_signal_by_name()、is_multiplexed()、refresh()。構(gòu)造時對 frame id 有位數(shù)校驗標(biāo)準(zhǔn)幀超過 11 位、擴展幀超過 29 位都會拋Error見 message.py。cantools.database.can.Signal單個信號。屬性包括name、start、length、byte_orderlittle_endian/big_endian、is_signed、raw_initial、raw_invalid、conversion、minimum、maximum、unit、comment/comments、receivers、is_multiplexer、multiplexer_ids、multiplexer_signal、spn、choices等方法包括raw_to_scaled()、scaled_to_raw()、choice_to_number()、is_float()。cantools.database.can.Node網(wǎng)絡(luò)節(jié)點屬性name、comment/comments、dbc、autosar。cantools.database.can.Bus總線屬性name、comment/comments、baudrate、fd_baudrate、autosar。cantools.database.can.signal_group.SignalGroup信號組屬性name、repetitions、signal_names。DBC 特有對象DbcAttributeDefinitionDBC 屬性定義屬性name、default_value、kind、type_name、minimum、maximum、choices。DbcAttributeValueTypeVar屬性值類型聯(lián)合autodata指令導(dǎo)出。DbcAttribute一次具體屬性賦值屬性name、value、definition方法formatted_value()。DbcEnvironmentVariableDBC 環(huán)境變量屬性name、env_type、minimum、maximum、unit、initial_value、env_id、access_type、access_nodes、data_size、comment、dbc。DbcSpecifics掛在 Database/Message/Node/Signal 上的 DBC 專屬信息屬性attributes、attribute_definitions、value_tables、environment_variables、relation_attributes、relation_attribute_definitions。這些類型定義位于 formats/dbc 下如dbc_attribute_definition.py、dbc_attribute.py、dbc_environment_variable.py、dbc_specifics.py。AUTOSAR 特有對象AutosarDatabaseSpecifics數(shù)據(jù)庫級 AUTOSAR 信息如arxml_version。AutosarMessageSpecifics消息級信息屬性pdu_paths、is_nm、is_general_purpose、is_secured、secocSecOC 安全屬性、e2eE2E 端到端保護屬性。AutosarNodeSpecifics節(jié)點級 AUTOSAR 信息。AutosarSecOCPropertiesSecOC 屬性含auth_algorithm_name、freshness_algorithm_name、payload_length、data_id、auth_tx_bit_length、freshness_bit_length、freshness_tx_bit_length。AutosarEnd2EndPropertiesE2E 屬性含category、data_ids、payload_length。AutosarBusSpecifics總線級 AUTOSAR 信息。這些類型位于 formats/arxmldatabase_specifics.py、message_specifics.py、node_specifics.py、secoc_properties.py、end_to_end_properties.py、bus_specifics.py由SystemLoadersystem_loader.py與EcuExtractLoaderecu_extract_loader.py兩類加載器解析 AUTOSAR System Extract 與 ECU Extract 文件ecu-extract-4.2.arxml、system-4.2.arxml 等測試樣例。數(shù)值表示與轉(zhuǎn)換cantools.database.namedsignalvalue.NamedSignalValue信號命名值如帶名稱的枚舉物理量其__repr__/__eq__使{Enable: Enabled}這樣的字典可直接比較與打印。cantools.database.conversion.BaseConversion縮放轉(zhuǎn)換基類Signal.scale/offset即其實現(xiàn)。診斷數(shù)據(jù)庫UDS DIDcantools.database.diagnostics.Database診斷數(shù)據(jù)庫。cantools.database.diagnostics.Did診斷標(biāo)識符DID。cantools.database.diagnostics.DataDID 承載的數(shù)據(jù)對象。CDD 格式由 diagnostics/formats/cdd.py 實現(xiàn)測試樣例見 tests/files/cdd如 example.cdd、example-diddatarefs.cdd示例腳本見 examples/diagnostics/did.py。異常與測試輔助cantools.database.UnsupportedDatabaseFormatError無法識別數(shù)據(jù)庫格式時拋出errors.py 中與DecodeError、EncodeError并列定義。cantools.tester.Tester基于 CAN 數(shù)據(jù)庫的節(jié)點測試類。cantools.tester.DecodedMessage解碼后的消息容器含name消息名與signals消息信號兩個數(shù)據(jù)字段。cantools.typechecking.Codec內(nèi)部編解碼器類型別名Message._codecs即該類型用于描述一條消息全部信號的解碼格式與多路復(fù)用結(jié)構(gòu)。命令行工具CLICLI 入口為python3 -m cantoolsmain.py 調(diào)用init.py 中的_main()。頂層參數(shù)有-d/--debug開啟 DEBUG 日志與--version。所有子命令定義在src/cantools/subparsers/目錄每個模塊提供add_subparser()向 argparse 注冊因此新子命令是自動發(fā)現(xiàn)、按文件加載的加載失敗不影響其他命令。可用子命令包括decode、plot、dump、list、generate_c_source、monitor、convert等。decode解碼 candump 輸出從標(biāo)準(zhǔn)輸入讀取 Linuxcandump抓取的幀按數(shù)據(jù)庫解碼為可讀文本$ candump vcan0 | python3 -m cantools decode tests/files/dbc/motohawk.dbc vcan0 1F0 [8] 80 4A 0F 00 00 00 00 00 :: ExampleMessage( Enable: Enabled -, AverageRadius: 0.0 m, Temperature: 255.92 degK )使用--single-line把每條消息壓縮到一行便于腳本或日志聚合$ candump vcan0 | python3 -m cantools decode --single-line tests/files/dbc/motohawk.dbc vcan0 1F0 [8] 80 4A 0F 00 00 00 00 00 :: ExampleMessage(Enable: Enabled -, AverageRadius: 0.0 m, Temperature: 255.92 degK)plot信號可視化plot與decode類似但輸出 matplotlib 圖形而非文本。先抓取日志再繪圖$ candump -l vcan0 $ cat candump-2021-01-04_180521.log (1609779922.655421) vcan0 00000343#B204B9049C049C04 (1609779922.655735) vcan0 0000024A#120527052E051905 ... $ cat candump-2021-01-04_180521.log | python3 -m cantools plot tests/files/dbc/abs.dbc信號選擇語法支持通配符與布局控制*匹配任意數(shù)量任意字符?匹配恰好一個任意字符用-分隔的信號顯示在不同子圖信號后可用冒號指定可選格式如:-、:、:3、:4等線型/樣式標(biāo)記。例如左側(cè)輪速與右側(cè)輪速分兩個子圖顯示$ cat candump-2021-01-04_180521.log | python3 -m cantools plot tests/files/dbc/abs.dbc *33.*fl:- *33.*fr:- - *33.*rl:- *33.*rr:-取值范圍差異大的信號可以在同一子圖內(nèi)使用不同縱軸用逗號分隔信號組配合--auto-color自動著色并用--ylabel分別標(biāo)注$ cat candump-2021-01-04_180521.log | cantools plot --auto-color tests/files/dbc/abs.dbc -- \ --ylabel Bremse 33 *_33.*fl*:- *_33.*fr*: *_33.*rl*:3 *_33.*rr*:4 , \ --ylabel Bremse 2 *_2.*fl*:- *_2.*fr*: *_2.*rl*:3 *_2.*rr*:4matplotlib 預(yù)裝多種繪圖風(fēng)格可直接套用$ cat candump-2021-01-04_180521.log | cantools plot tests/files/dbc/abs.dbc --style seaborn遍歷所有可用風(fēng)格逐個預(yù)覽$ cantools plot --list-styles . | sed -n /^- /s/^- //p | while IFS read -r style; do cat candump-2021-01-04_180521.log | cantools plot tests/files/dbc/abs.dbc --style $style --title --style $style done全部參數(shù)以python3 -m cantools plot --help為準(zhǔn)。相關(guān)單測見 test_plot.py 與 test_plot_unittests.py。dump人類可讀轉(zhuǎn)儲以美觀的排版打印數(shù)據(jù)庫全部內(nèi)容包括位布局圖、信號樹與枚舉值$ python3 -m cantools dump tests/files/dbc/motohawk.dbc Messages ------------------------------------------------------------------------ Name: ExampleMessage Id: 0x1f0 Length: 8 bytes Cycle time: - ms Senders: PCM1 Layout: Bit 7 6 5 4 3 2 1 0 ------------------------ 0 |-x|---------------------x|--| ------------------------ | -- AverageRadius -- Enable ------------------------ 1 |-------------------------------| ------------------------ 2 |----------x| | | | | | B ------------------------ y -- Temperature t ------------------------ e 3 | | | | | | | | | ------------------------ 4 | | | | | | | | | ------------------------ 5 | | | | | | | | | ------------------------ 6 | | | | | | | | | ------------------------ 7 | | | | | | | | | ------------------------ Signal tree: -- {root} -- Enable -- AverageRadius -- Temperature Signal choices: Enable 0 Disabled 1 Enabled該子命令實現(xiàn)于 subparsers/dump格式化邏輯在 formatting.py。list腳本友好輸出與dump類似但輸出“沒那么漂亮、更全面、更適合 shell 腳本解析”$ python3 -m cantools list -a tests/files/dbc/motohawk.dbc ExampleMessage: Comment[None]: Example message used as template in MotoHawk models. Frame ID: 0x1f0 (496) Size: 8 bytes Is extended frame: False Signals: Enable: Type: Integer Start bit: 7 Length: 1 bits Unit: - Is signed: False Named values: 0: Disabled-a/--all等選項說明可用python3 -m cantools list --help查詢實現(xiàn)見 subparsers/list.py。generate_c_source生成 C 代碼從數(shù)據(jù)庫生成 C 源碼生成物包含消息structmotohawk.h 中對應(yīng)#define MOTORA ...與結(jié)構(gòu)體定義區(qū)域消息pack/unpack函數(shù)信號encode/decode函數(shù)frame id、長度、類型、周期時間與信號枚舉的#define宏如MOTORA_EXAMPLE_MESSAGE_FRAME_ID、MOTORA_EXAMPLE_MESSAGE_LENGTH等。已知限制信號最大 64 位實踐中幾乎不會超過。$ python3 -m cantools generate_c_source tests/files/dbc/motohawk.dbc Successfully generated motohawk.h and motohawk.c.生成的完整內(nèi)容可對照 motohawk.h 與 motohawk.c 查看。--use-float浮點信號使用單精度float而非double$ python3 -m cantools generate_c_source --use-float tests/files/dbc/motohawk.dbc Successfully generated motohawk.h and motohawk.c.--database-name自定義生成類型、宏與函數(shù)的命名空間前綴同時改變輸出文件名$ python3 -m cantools generate_c_source --database-name my_database_name tests/files/dbc/motohawk.dbc Successfully generated my_database_name.h and my_database_name.c.見 my_database_name.h 與 my_database_name.c。--no-floating-point-numbers生成不含float/double的定點代碼$ python3 -m cantools generate_c_source --no-floating-point-numbers tests/files/dbc/motohawk.dbc Successfully generated motohawk.h and motohawk.c.見 motohawk_no_floating_point_numbers.h 與 motohawk_no_floating_point_numbers.c。--node只生成指定節(jié)點發(fā)送消息的pack函數(shù)、以及信號接收者屬于該節(jié)點的unpack函數(shù)$ cantools generate_c_source tests/files/dbc/motohawk.dbc --node PCM1 Successfully generated motohawk.h and motohawk.c.見 motohawk_sender_node.h 與 motohawk_sender_node.c。C 生成器核心實現(xiàn)位于 src/cantools/database/can/c_source.py對應(yīng)測試樣例覆蓋了位域*_bit_fields.*、浮點floating_point.*、多路復(fù)用multiplex.*、輪詢舍入motohawk_use_round.*等多種形態(tài)見 tests/files/c_source。monitor文本界面總線監(jiān)控以 TUI文本用戶界面實時監(jiān)控總線流量$ python3 -m cantools monitor tests/files/dbc/motohawk.dbc底部菜單提供以下操作Quit退出監(jiān)控器也可用Ctrl-C。Filter只顯示匹配給定正則表達式的消息或信號輸入行按Enter返回菜單。Play/Pause在播放與暫停運行與凍結(jié)之間切換。Reset將監(jiān)控器重置到初始狀態(tài)。實現(xiàn)見 subparsers/monitor.py相關(guān)單測見 test_monitor.py。convert數(shù)據(jù)庫格式互轉(zhuǎn)convert子命令把數(shù)據(jù)庫從一種格式轉(zhuǎn)換為另一種實現(xiàn)見 subparsers/convert.py對應(yīng)測試見 test_convert.py 與 test_conversion.py。DBC 互轉(zhuǎn)的正確性由tests/files/dbc/下的“原文件 *_dumped文件”配對驗證如 multiplex_2.dbc 與 multiplex_2_dumped.dbc。Coding style編碼規(guī)范文檔以“基于作者個人偏好”的方式定義了本包源碼的編碼風(fēng)格對貢獻者而言是必須遵守的規(guī)則語句if、while、return等前后要有空行除非位于其他語句或文件的開頭/結(jié)尾。文件級定義之間留兩個空行。運算符前后留空格關(guān)鍵字參數(shù)keyword arguments兩側(cè)不允許空格。每行只導(dǎo)入一個模塊/對象。注釋與 docstring 以大寫字母開頭、以句號結(jié)尾像句子一樣。docstring 之后留一個空行。單行最大 90 字符目標(biāo)是不超過 80 字符。函數(shù)參數(shù)要么全部寫在一行要么每行一個。類名用CamelCase不允許下劃線。函數(shù)名與變量名用小寫 下劃線分隔snake_case。規(guī)范的示例代碼數(shù)字標(biāo)注對應(yīng)上述規(guī)則import sys from os import path # (5) from os import getcwd # (5) # (2) # (2) def foo(bars, fumNone): # (4) This is a doc string. # (6) # (7) fies [] # (3) kam path.join(getcwd(), ..) # (1) for bar in bars: if len(bar) 1): # (8) fies.append(ham 2 * bar) # (3) # (1) # This is a comment. # (6) if fum in None: fum 5 # (3) else: fum 1 # (3) # (1) fies * fum # (3) # (1) return fies # (2) # (2) def goo(): return True示例中if len(bar) 1):與if fum in None是文檔原樣保留的演示代碼并非真實語法。Tips and tricksUbuntu 虛擬 CAN 接口在無硬件的情況下調(diào)試 CAN 應(yīng)用可在 Ubuntu 上創(chuàng)建虛擬 CAN 接口。官方文檔給出的完整三步設(shè)置sudo modprobe vcan sudo ip link add dev vcan0 type vcan sudo ip link set vcan0 mtu 72 # For CAN-FD sudo ip link set up vcan0第一條加載vcan內(nèi)核模塊第二條創(chuàng)建名為vcan0的虛擬 CAN 設(shè)備第三條可選把 MTU 設(shè)為 72以支持 CAN-FD經(jīng)典 CAN 的 MTU 為 16CAN-FD 需要 72第四條把接口置為up狀態(tài)。設(shè)置完成后即可配合python-can的socketcan后端can.interface.Bus(vcan0, bustypesocketcan)以及candump/can send等工具進行收發(fā)測試。倉庫中decode、plot、monitor各子命令的文檔示例均基于此環(huán)境。貢獻指南Contributing文檔同時給出了向本倉庫提交貢獻的標(biāo)準(zhǔn)流程Fork 倉庫。安裝開發(fā)依賴使用tox可跳過此步python3 -m pip install -e .[dev]。實現(xiàn)新功能或修復(fù) bug。編寫測試用例防止未來改動破壞既有行為。運行 linterruff check src、mypy src或tox -e ruff、tox -e mypy。運行測試tox -e py。檢查測試覆蓋率tox -e cov然后用firefox htmlcov/index.html查看報告。創(chuàng)建 Pull Request。配置集中在 pyproject.toml 與 tox.ini完整的測試套件位于 tests 目錄test_database.py、test_command_line.py、test_autosar.py 等C 生成代碼的交叉驗證由 tests/test_c_code 下的 C 測試工程完成??偨Y(jié)作為docs/index.rst的完整導(dǎo)讀本文覆蓋了 cantools 文檔的全部四大板塊README 中的功能矩陣、安裝與腳本/CLI 全流程示例Sphinx 自動生成的 Functions and classes API 索引含 CAN 數(shù)據(jù)庫、DBC/AUTOSAR 特有對象、診斷數(shù)據(jù)庫與 Tester作者定義的 Coding style 規(guī)范以及 Ubuntu vcan 虛擬接口搭建技巧。配合倉庫中 examples、tests/files 與 src/cantools 源碼讀者可以完整掌握這一 CAN 工具鏈的實戰(zhàn)用法與內(nèi)部機制。贊分享嵌入式開發(fā)工具【免費下載鏈接】cantoolsCAN bus tools.項目地址https://gitcode.com/gh_mirrors/ca/cantools點擊查看免費下載相關(guān)推薦CAN總線數(shù)據(jù)處理實戰(zhàn)從環(huán)境搭建到消息編解碼全指南CAN總線數(shù)據(jù)處理實戰(zhàn)從環(huán)境搭建到消息編解碼全指南 如何高效解析汽車CAN總線數(shù)據(jù) 在汽車電子和工業(yè)控制領(lǐng)域CAN總線作為一種高可靠性的串行通信協(xié)議被廣嵌入式開發(fā)工具探索CAN總線工具Cantools探索CAN總線工具Cantools 項目介紹 Cantools是一個基于Python 3的CAN總線工具集提供了豐富的功能來處理CAN消息和信號。它支持多種嵌入式開發(fā)工具Cantools工具庫40.1.0版本發(fā)布增強CAN總線數(shù)據(jù)分析能力Cantools工具庫40.1.0版本發(fā)布增強CAN總線數(shù)據(jù)分析能力 Cantools是一個功能強大的Python庫專門用于處理CANController嵌入式開發(fā)工具上一篇gh_mirrors/er/errors深度解析Go語言錯誤處理新范式下一篇如何快速搭建現(xiàn)代化管理后臺Ant Design Vue Pro完整配置指南創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月天怕怕| 视频在线免费观看欧洲乱码| 丁香六月五月婷婷| 五月五婷婷网| 97色视频网| 天天插天天日| 99久久免费精品| 国产成人AV在线播放| 久热这里| 97精品在线| 亚洲色五月天在线| 婷婷五月丁香综合亚洲 | 五月天成人手机在线视频| 丁香婷婷激情四射五月| 亚洲黄色网址| 777影视理论片大全在线观看 | 少妇熟女视频一区二区三区 | 殴美激情综合网| 蜜桃婷婷五月| 日韩一级片| 99久久婷婷国产综合亚洲| 欧美 日韩 成人 在线| 青青草a在线| 91chinese 在线| 欧美韩国日本| 天天插综合| 少妇达人正片在线播放_ikun_福利吧| 五丁香激情综合| AV成人在线播放| 99噜噜噜在线播放| 丁香五月首页| 97碰| 991精品在线视频| 97精品人人A片免费看| 五月成人网站| 噜噜狠狠色综无码久久合欧美| 色情五月丁香婷婷网| 久久丁香婷婷五月| 丁香五月激情综合婷综| 国产av影片| 色色综合院| 午夜精品久久久久久久爽| www.五月婷婷| 大香蕉五月天| 久久九九色| 99亚洲视频| 色播五月天天| 99九九视屏| 免费精品66| 欧美操人| 99精品视频在线| 久色视频首页| 九九热这里只有精品31| 婷婷婷婷婷开心无码播放| 日日夜夜小色哥| 六月婷婷av| 欧美啪啪五月天| www.九九婷婷| 男女99免费视频| 天天透天天爱| 五月婷婷六月丁香综合在线| 婷婷久久五月天| 伊人五月成人| 久久艹99| 婷婷五月花| 婷婷五月天福利| 这里只有精品久久| 激情五月天天| 9 99免费视频| 97亚洲色 torrent magnet| 97资源碰碰| 色色爽爽天天| 五月丁香啪啪激情| 99精品爱| 中文字幕综合网| Av九九| 殴美综合激情五月天免费视频| 五月丁香六月情| 六月丁香五月婷婷| 亚洲激情网| 成人龟情网丁香五月| 97操碰在线97| 欧美交换配乱吟粗大25P| 大地资源色婷婷视频在线 | 五月婷婷影视| 日日噜噜久久婷婷五月天| 免费无码毛片一区二区A片| 少妇人妻丰满做爰XXX| 亚洲综合网在线| 婷婷激情久久| 婷香五月网在线| 26UUU亚洲欧美| 99热这里只有免费精品| 五月婷色| 五月色色网| 亚洲 精品 综合 精品| 26uuuuuuuu国产| 五月天综合久久| 亚洲成人无码专区| 天天做综合| 亚洲第79页| 热99这就是精品视频| www.丁香六月婷婷久久天堂影院.con| 激情五月天久久丁香| 内射丰满人妻| 九月丁香| 91超级碰| 中日韩美欧成人一区二区精品在线| 五月丁香香蕉| 亚洲综合成人网| 婷婷97狠狠成人网站| 97人妻人人| 狠狠色婷婷在线| 天天做天天摸| 亚洲欧美综合7777色亭亭| 99a级片| 色情播放| 亚洲日韩一页精品发布| 五月开心婷婷极品激情| 人人操AV| 激情五月天啪啪| 另类激情五月| 五月天激情网站| 在线观看亚洲AV| 日日做天天操夜夜爽| 99热手机在线精品| 五月婷成人| 色五月激情网| 精品人妻在线| 夜夜躁婷婷AV| 97色天堂| 九九精品热| 97五月天婷婷综合激情网| 激情狠狠丁香月| 五月天激情国产综合婷婷| 毛v一区二区视频| 婷婷狠狠五月综合| 99热传媒| 日韩色五月| 字幕网AV中文字幕| 日日夜夜天天爽| 五月开心网| 色情婷婷| 夜夜操狠狠操| 丁香婷婷射| 性一交一乱一交A片久久四色| 欧美日韩成人在线网站| 97九色| 日本一级一片免费视频| 色五月在线观看| 成人在线网| 婷婷永久在线| 久操b网| 丁香五月天堂| 俺也去综合| 午夜无码熟熟妇丰满人妻 | 天天干天天日蜜臀av| www色婷婷久久综合久色| 五月丁香| 思思re视频在线| 亚洲午夜成人av电影网| 99热免费看| 9999热在线| 人人射人人高潮| 色约约视频一区二区三区四区五区| 狠狠五月天激情| 超碰色碰碰| 99色爱| 六月婷在线| h在线看免费版在线看| 久热久操久热久草国产91| 激情综合五| 影音先锋四区| 国产午夜精品一区二区三区四区 | 终合激情网| 狠干综合| 色五月综合网| 综合网五月天123| 91大屁股在线| 久碰视频| 色深爱五月| 欧美WW在线网| 强辱丰满人妻HD中文字幕| 色情久久久| 六月丁香开心婷婷欧美| AA丁香综合激情| 天天草天天舔| 91艹人| 色优久久| 丁香五月综合网亚洲综合欧美狠狠| 色色色色色日韩午夜激情 | 色色色五月天婷婷| 久久五月丁香婷婷| 亚洲国产色色| 人人人操Av| 人人射av| 中文字幕综合| 婷婷色综合中心站| 天天操夜夜操| 91人操| 五月天六月天| 九九久久五月天综合伊人| 婷婷六月天| 六月婷婷五月天| 天天五月丁香五月| 色五月婷婷AV| 另类图片五月天激情| 大香蕉九九| 久久66精品| 欧美激情综合色综合啪啪五月| 天天干天天做| 97热视频| 美国十月色婷婷在线观看| 色A网| 9 1在线视频| 色爱综合网| 色五月av| 婷婷婷婷色| 深爱五月天婷综合| 77799热| 一月婷婷色色| 丁香五婷婷| 午夜伊人大香蕉| 色五月婷婷av| 欧美99视频| 99热这里只有精品1998| 99热这里只有精品热| 五月色婷婷中文字幕| 亚洲啪| 激情五月激情综合网| www99在线观看视频| 六月天丁婷婷| 五月丁香婷中文字幕| 五月婷婷另类| 欧美成性色| 久99久在线| 久久久久久久久久久44| 综合网网欲色| 97热久久| 99熟女视频| 99偷拍视频在线日本| 99丁香五月| 欧美日韩成人在线| 午夜性做爰电影| 久久人妻久久| 婷婷色在线| 婷婷大香蕉| 激情婷婷久久| 97在线精品| 午夜爱爱网站| 亚洲色99| 免费看欧美成人A片无码| 综合色图区| 激情综合网五月激情| 丁香激情网| 色综合久久88色综合天天看| www.久久久.com| 九九色影视| 色色色99| 无码激情AAAAA片-区区| 丁香五月婷婷啪啪视频| 丁香色五月AV在线| 久久婷婷网站| 七七九九色色| 久久久五月婷婷| 人人操人av| 五月婷婷欲色| 天天在线XXX| 天天日天天干天天插天天射| 色播五月网| 六月丁香网| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 直接看的AV| 日本丁香五月| 久久a热| 这里只有精品视频| 婷婷五月丁香激情图片| 久草大| 精品99这里有| 婷婷干五月综合在线播放| 99热视精品| 99热色精品| 婷婷欧美综合| 亚洲亚洲人成综合网络| 狠狠久久婷婷| bbwcuckold精品熟妇| 狠狠色丁香婷婷基地| 蜜臀av在线成人电影| 色婷五月天综合网| 亚洲99热| www久久久久久久| 哇嘎成人久久| 国产va在线视频| 深情五月天| 天天搡日日搡aaaaⅩ| 色婷五月天| 伊人网色婷婷五月天| 成人在线免费网址| 丁香激情五月综合网| 人妻操在线看| 丁香五月婷婷啪啪| 日韩xx在线| 无码色色色色色| 久久人人人人妻| 婷婷五月激情网| 天天天天干| 国内精品免费一区二区2009| 激情五月黄色小说| www.婷婷,com| 九九精品免费视频99| 丁香六月激情四射| WWW,五月| 色婷婷六月| 五月天丁香综合久久国产| 天天粽合合合合| 丁香久久久| 婷婷十月丁香| 五月激情视频| 日韩中文欧美| 超碰男人色| 人妻免费网站| 日日射天天射| 成人AV在线电影| 狠狠九九婷婷韩| 五月婷婷伊人网| 五月婷婷久久综合| www.五月婷婷.com| 色五月亚洲| 亚洲V国产V欧美V久久久久久| 999激情视频| 久久人妻视步| 综合在线观看99| 五月天婷婷基地丁香| 97色色综合| 婷婷丁香激情五月天色色色| 婷婷成人五月天一区| 97热视频| 婷婷情色五月天| 亚洲天码视频www蛋播视频| 大香蕉伊人久久| 国产ava| 婷婷色在线视频| 丁香婷婷六月男男| 欧美激情 日韩无码 婷婷 五月天| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 天插天啪天啪天啪| 亚洲国产精品二二三三区| 天天综合网91| 影音先锋四区| 9久热| 天天肏视频| 色婷婷激情| 亚洲综合五月| 久婷久婷激情肉| 五月综合婷婷五月| 六月丁香婷婷综合狠狠爱夜夜爱| 亚洲综合五月天| 碰人人97| 女人被男人吃奶到高潮| 色琪琪一综合久久激情五月视频| 99热最新| 激情综合网之激情五月| 性做爰1一7伦| 开心婷婷五月中文字幕组| 久久婷婷原创视频| 亚洲激情另类| 91精品在线看| 欧美性生交XXXXX无码小说| 欧美婷婷五月激情| 久久婷五月影院| 这里只有精品免费观看网占| 99热这里只有精品在线观看| 激情四射婷婷| 色999亚洲人成色| 五月综合激情久久| 天天肏视奸| 日本久久爱| 国产永久一黄| 91啪啪视频| 日木狠狠干| 五月激情在线| 六月婷婷久久大全| 色婷婷亚洲| 色色无码| 亚洲热久久| 4399伦理午夜| 五月综合激情| 99愛国产| 色综天天综合| 中文在线视频久9| 国产精品色色| 婷婷在线五月天观看| 五月美女婷婷风骚| 色九月婷婷综合| 婷婷亚洲五| 丁香久久在线| 婷婷五月亚洲综合| 天天草天天日| 成人AV在线电影| 成人做爰高潮A片免费视频| 性爱激情小说AV五月丁香花| 亚洲中文字幕网| 99色热综合| 啪啪 综合网| 91碰碰碰| 五月天桃色深爱网| 天天做天天干天天综合网| 婷婷丁香先锋资源网站| 色婷婷99| 伊人久久大香线蕉av最新| 激情网狠狠干| www.91.com黄| 色播色丁香五月| 婷婷亚洲影院| 婷婷爱五月天| 呦呦视频无码播放| 久热这里只有精品3| 九九久久偷拍| 成人午夜视频精品一区| 国产免费一区二区在线A片视频| 婷婷六月色情| 五月天激情偷拍| 久99精品视频| 欧美日韩一区二区三区四区| 五月丁香综合| 国产免费一区二区在线A片视频| 久久99成人性爱高清视频| 九九热中文| 中文字幕人妻一区二区| 色婷婷丁香五月| 久久丝袜婷婷| 五月婷婷六月丁香| 久婷久婷激情肉| 婷婷综合性爱网| 人人草人人爱| 亚洲色综合| 99热免| 五月天婷婷伊人| 久久黄A片| 日hao1区| 狠狠色九月| www久久久久久久久久久| 亚洲婷婷免费| 五月天婷婷基地| 激情五月天偷拍综合网| 天天做夜夜爽| 婷婷亚洲五月| 六月婷婷色综合| 婷婷五月天偷拍| 五月丁香天堂网婷婷| 久久视屏这里只有久久| 成人五月天综合网| 婷婷色婷婷亚洲成人| 99久久精品国产色欲| 操逼视频网址| 超碰永久在线| 美腿丝袜AV天堂网| 久久婷婷五月综合激情国产| 99热性色| 日本久热| 99视频超级精品| 啪啪91| 日韩性视频| 91婷婷| 秋霞A V毛片| 五月天婷婷免费| 免费播放片大片| 久久伦乱| 色五月综合| 99热在线观看| 五月丁香六月停停停| 影音先锋男人av资源站| 99色五月| 色五月开心婷婷| 麻豆科斗777| 五月丁香拍拍激情综合| 中文字幕色色色| 五月婷婷六月丁香在线视频| 国产日韩欧美性爱| 激情六月综合| 久久大香蕉丁香| 伊人丁香五月婷婷潮吹| 99热在线精品播放| 另类图片激情五月天| 婷婷四色五月| www.9797国产| 激情小说五月天| 婷婷在线网| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 天天日天天爽| 9热成人在线视频| 五月丁香A片| 九九大香蕉黄色影院| 色播综合| 激情婷婷黄色五月 | 伊人久久婷| 婷婷5月色| 69色色视频| WWW.99视频| 亚洲操人| www.99精品视频| 丁香五月自拍| 色色色热| 9久热精品在线视频| A1片久久| 五月婷婷影视| 99热6这里只有精品| 久久加勤综合| 区区久久妻| 狠狠色噜噜色狠狠狠综合久久成人波| 婷婷久久久| 67久久| 大香蕉五月天婷婷| 五月婷婷激情综合网 | 五月综合人妻| .comwww在线观看免费操| 五月天婷婷綜合院| 五月丁香六月婷婷的女人| 五月丁香六月婷婷久久肏| 激情五月天视频| 亚洲国产成人AV在线 | 婷五月天| 色五月丁香激情视频| 成年人丁香五月| 五月天激情小说网| 国产精品电影网| 天天射天天插天天干| 色九九丁香九月色九九色| 亚洲综合成人网| 丁香婷在线| 99久久久久| 操人视频91| 婷婷热婷婷色| 天天噜噜| 99亚洲精美视频在线观看| 久久久久久久久久久久久久人妻视频| www999日韩精品| WwW色婷婷| 亚洲天堂热| 五月婷婷激情视频| 国外亚洲成AV人片在线观看| 婷婷五月深情丁香深爱日韩| 婷婷六月色| 亚洲第一成人无码A片| 久久色区| 蜜臀99精品| 深夜婷婷 丁香| 成人天天爽| 日韩色五月| 9l久久久视频| 性生活久久朋友人妻| 婷婷五月激情中文字幕| 91黄址| 神马欧美精| 操逼电影免费看| 欧美激情丁香五月天久久婷婷一区| 天天摸天天肏| 97色在线观看视频| 五月天激情中文字幕| 五月丁香色综合| 丁香五月91| 色色色色色色色色五月先| 色色性爱视频| 婷婷五月超碰| 婷婷的色色五月天| 亚州综合色| 深情五月天| 操逼综合激情网| 9久热这里只有精品| 99精品成人无码A片观看金桔| www,久久久| 国产精品国产| 亚洲永久免费| 婷婷狠狠操| 狠狠色婷婷7777久| 性综合网| 热无码A∨| 欧洲色| 亚洲综合五月天综合| 激情婷婷丁香| 狠狠干激情五月| 国产乱子轮XXX农村| 成人羞羞啪啪 全 视频| 一本色道久久88加勒比| 国精产品一区二区三区| 色色色色色九九九九九| 婷婷娌伦网| 欧美啪啪9| www.99热在线观看| 热九九在线| 色99视频| 99视频网| 婷婷涩涩五月天| 色哟哟精品| 亭亭丁香aV| 99色在线| 色五月婷婷综合在线| 色色色网站| 色综合久久综合中文综合网| 国产亚洲精品久久久久久牛牛| 六月婷婷俺也去| 亚洲亚洲人成综合网络| 另类激情首页| www色色色com| 九月丁香八月婷婷加勒比| 婷婷色丁香六月| 五月丁香六月婷婷久久| 人妻AV在线| 色色色色色色综合| 涩涩婷婷五月| 国产毛片精品一区二区色欲黄A片| 国产综合激情五月久久| 91九色 婷婷| 97av在线视频| 婷婷五月天黄色小说| 99黄色性生活| 99色综合久久| 超碰九色| 成人va在线播放| 超碰成人免费| 热婷婷在线视频| 九九99在线免费在线观看视频| 色欲操| 婷婷玖玖丁香| 色五月激情五月| 久久久无码精品成人A片小说| 激情五月综合| 人人操91色| 婷色五月天| 色99在线观看| 99视频精品全部免费观看| 亚洲婷婷久久综合| 欧美 色婷婷| 97 A I色色| 日本操逼九九九九58日本操逼| 91窝窝| 亚洲V国产V欧美V久久久久久| 丁香五月天激情视频| 久久综合热17c| 激情四射婷婷色色色| 五月婷婷狠狠干| 婷婷和五月天| 久久hd| 婷婷色综合中心站| 成人无码精品1区2区3区免费看| 日韩综合久| 色婷婷丁香中文在线播放| 亚洲成人在线免费| 91九色中文字幕女在线观看| 国产99久9在线+|+传媒| 婷婷丁香五月综合| 操99| 婷婷五月丁香超碰| 五月天激情小说网| 婷婷五月成人系列| 五月婷婷丁香狠狠撸久久| 天天拍夜夜撸| 五月婷视频久久| 色综合九九色综合88| 婷婷94s| 欧美日韩精品人妻狠狠躁免费视频| www夜夜| 久久永久视频| 操91| 99热这里只有精品9| 婷婷伊人久久| 亚洲情色一区| 色天堂A| 中文字幕av在线播放| 五月丁香六月婷婷国产视频| 五月天天爱| 欧美激情综合色丁香婷婷五月天| 激情综合网,婷婷五月天| 国内婷婷丁香社区在线播放| 色婷婷91激情小说| 五月天色综合服务平台| 婷婷丁香五月激情图片| 色播五月丁香婷婷| 色区域网站视频| www,五月丁,com| 二区成人视频| 俺去婷婷 丁香| 激情五月瑟瑟| 99亚洲视频| 婷婷色色欧美| 天天干,天天舔| 婷婷五月天激情网址| 99热99思午夜精品| 五月婷婷就去色| 五月天自拍网| 日日.c| 激情九九六月激情免费视频| 在线视频你懂得| 日本人妻A片成人免费看片| 夜夜爽天天爽| 97精品人人A片免费看| 日韩中文字幕| 婷婷五月六月丁香| 久久久久亚洲AV无码网影音先锋| 久久99这里只有精品| site:jszngf.com| 精品综合久久久久久五月天| 五月丁香六月婷婷久久| 婷婷成人AV| 天天做夜夜爽| 字幕网AV中文字幕| 丁香五月天激情四射网| 丁香激情网| 久鲁鲁色网 | 在线网黄| 色婷婷4| 婷婷色基地| 五月婷婷亚洲| 极品人妻VIDEOSSS人妻| 99 福利 导航| 超碰在线91| 天堂草在线观| 亚洲第一成人无码A片| 少妇大叫太大太粗太爽了A片| 99精品综合视频| 黄色片区子| 无码视频国内精品久久久| 色吊丝av中文字幕| 思思热99er在线视频| 俺去啦综合网| 五月丁香六月成人| 欧美五月婷婷综合| 九九综合精品| 第四色首页| 丁香五月婷婷色| 亚洲成人丁香花| 色9999日韩国产| 五月丁香六月婷婷亚洲视频| 99操逼| 操97在线观看| 翔田千里aV中文字幕| 色欲一区二区三区精品A片| 久久婷婷伊人| 亚洲乱码w在线观看| 狠色狠色狠色狠色狠色网| 99无码视频| 精品夜夜澡人妻无码AV| 久婷| 99热6这里只有精品| 天天日天天色| 性视频久久| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 久草a片| 性按摩玩人妻HD中文字幕| 99ri久久| 五月亭亭直播| 超级久久久| 综合亚洲五月天| 婷婷激情在线| 另类国产区| 五月婷六月天| 精品一二三区久久AAA片| 日韩综合天堂| 久99热在线观看| 深爱五月最新网址| 中文字幕一色哟哟哟哟| 色婷婷基地在线| av五月天婷婷丁香| Av中文在线| 丁香婷婷免费| 亚洲视频在线观看| 丁香六月开心| 九九这里有精品| 精品99在线| 婷婷五月天小说| 五月丁香激情综合网官网| 99热大片| 国产激情久久久| 99re视频在线精品| 欧美成人五月天| 中文字幕丰满孑伦无码专区| 伊人成人宗合网| 激情五月婷婷| 少妇久久诱惑视频| 丁香五月社区| 婷婷亚洲丁香五月| 蜜臀AV在线观看| 俺五月| 成人综合网站| 六月婷婷网站| 色九九中文字幕| 久久这里只精品66| 天天插天天射| 狠狠干天天内射| 亚洲乱码精品久久久久.. | 一起草av在线观看| 六月婷婷色综合| www.婷婷,com| AV成人在线播放| 久久99精品九九久久久婷婷| 97AV在线视频| 超碰久热| 国产欧美精品AAAAAA片| 美女激情婷婷| 国产美女主播vip| 开心五月网 | 久久综合婷婷五月| 欧洲婷婷五月天| 婷婷色在线| 爱婷婷五月| www,99色| 丁香婷婷色五月| 综合激情五月丁香9999久久精| 97香蕉碰碰人妻国产欧美| 天天色天天爽| 丰满少妇猛烈A片免费看观看| 婷婷五月天干干| 六月丁香婷婷大香蕉| 中文字幕黄色片| 久久黄色免费视频| www99精品亚| 免费看欧美成人A片无码| 激情四射五月天| 五月天婷婷激情| 狠狠五月激情丁香六月| 欧美人久久| 99只有精品| 六月丁香婷婷五月| 97视频久久| 99无码视频| 天天天久久人人人合| 色色色婷| 亚洲欧洲另类| 99国产在线| 99A级片| 荡乳尤物3HP1V5| 思思热在线播放| 五月天狠狠网站| 国av网| 99视频久久| 丁香五月色欲| 26uuu国产色| 一级黄色操B| 97在线精品| 日本操B视频| 综合99在线| 五月婷婷狠狠久久| 极品人妻VIDEOSSS人妻| 激情久久丁香| 99热这里只有精品最新| 综合大香蕉| 黄色毛片精品| 啪啪综合网| 超碰免费大香蕉| 五月噜噜| 99久久99九九99九九九| 五月丁香六月婷婷网| 九九热免费观看视频| 色色色色区| 新激情婷婷| 色色色9| 天堂久久性| 亚洲久久婷婷| 久久九九免费大视频| 91视频免费后入强操| 九九爱精品网站| 99热婷婷| www.日日夜夜.com| 99亚洲精品视频| 狠狠色激情综合| 五月天啪啪| 九热...av| 丁香婷婷婷婷十二月在线观看视频| 丰满老熟妇BBBBB搡BBB| 996热re视频精品视频| 俺去也婷婷| 99爱精品视频| 色噜综| sisi热国产| 99re思思| 变态另类9| 日韩色五月| 六月丁香成人| 91九色成人原创视频| 丁香五月五月婷婷欧美大香蕉| 99热首页| 丁香五月电影| 五月天成人小说| 婷婷操超碰| 天天色丁香| 日本美女五月天| 五月婷婷丁香婷婷| 丁香五月婷婷激情中文| 五月宗合激情网| 好好干av| 99视频一区| 亚洲性色XXXXX| 天天舔日日肏夜夜爽| 深爱五月中文字幕| 亚洲综合婷婷| 日韩无码人妻一区二区三区综合 | 婷婷五月丁香六月天亚洲综合| 亚洲视频在线观看99| 九九视频这里只有精品在线播放 | 91一起艹| 热的国产99热| 99er这里只有精品视频| 激情久久久| site:jszngf.com| 老司机午夜福利视频金瓶梅| 日本www五月婷婷| 丁香五月自拍| 亚洲热综合网在线观看| 色情五月天视频网| WWW五月天| 99成人网站| 日本色婷婷综合| 久久 这里只有精品1| 婷婷五月丁香色情| 日韩视频99| 99热这里只有精品在线观看| 欧美 日韩 成人在线| 九九色影院| 丁香六月婷婷综合| 熟惀91九色在线| 免费AV在线网址| 国产1区2区3区| 亚洲丁香五月综合| 五月婷婷六月爱| 丁香六月欧美| 欧洲亚洲免费视频9| 九九碰九九爱97超碰| 天天射网站| 无码九九九九| 色五月琪琪| 色99亚洲| 99热这里只有精品4| 五月丁香操婷逼| WWW.国产| 色婷婷亚洲综合天堂| 五月婷婷天堂| aaaaaa片| 裸体美女丁香五月天。| 无码啪啪| 色逼综合网| 97se视频在线| 99 色色吧| 激情小说婷婷小说| 婷婷五月在线播放| 婷婷亚洲色| 91碰操| 婷婷偷拍网| 色色欧美色色| 青草五月天| 日韩啪啪视品| 亭亭玉立国色天香| 精品色色色| 噜噜五月天综合| 婷婷色五月大香蕉在线| 色综合久久综合中文综合网| 婷婷日日天天| 久久久久久综合88| 天天婬色综合| 丁香色六月| 草综合14| 香蕉AV福利精品导航| 五月婷婷婷综合网| 丁香五月日本| 99精在线| 婷婷丁香五月天操逼| 26uuu四色| www.91婷婷| 爆乳熟妇一区二区三区四区| 九九色逼| 色色色综合色| www婷婷色| 婷婷激情四射| WWW.17C亚洲精品| 黄桃AV无码免费一区二区三区 | 99热大片| 91精品久久久久久77777| 久久一伦| 中文字幕性爱丰满| 青青草成人网| 五月婷婷深深爱| 色六月视频| 成人免费120分钟啪啪| 婷婷亚州综合| 久热这里只有精品66| 六月婷婷色综合| 99热1| 丁香激情网| 99re资源在线视频导航| 丁香六月天婷婷色| 99精品久久| 九九这里是免费的视频5| 六月婷婷在线| 疯狂做受XXXX高潮A片| site:xmssd.com| 棕合影院色色| 激情五月综合久久| 五月激情婷婷开心| 色五月色综合| VA日本视频| 婷婷五月激情综合| av网址在线| 五月综合视频| 国产精品色婷婷99久久精品| 色五月影视| 亚洲中文字幕在线观看| 色色色五月婷| 色五月亚洲| 婷婷久久婷婷色五月| 成人网丁香五月| 婷婷丁香宗合888| 99伊人婷婷在线| 亚洲激情久久| 日韩免费99| 五月天色不卡| 色图亚洲91| 五月丁香在线婷婷美女| 天天婬色综合| 天天撸天天干天天插| 亚洲激情Av| 99爱视频在线播放| Www.狠狠| xx久久| 色欲丁香| 爱射综合| 五丁香激情综合| 五月丁香六月片| 伊人久久五月天综合| 六月婷综合| 激情婷婷啪啪| 日韩精品99久久| 五月丁香久久网| 久久9视频欧美| 五月天偷拍| 99免费视频精品| 狠狠综合| 丁香5月啪啪| 五月丁香色色色| 碰97久久| 色色色欧美| 欧美日韩精品人妻狠狠躁免费视频 | 棕合影院色色| 99自拍网| 无码激情AAAAA片-区区| 天天操电影院色狼性av| 无码色综合| 26uuu在线观看| 五月天 综合 在线| 色婷婷亚洲综合天堂| 丁香蜜臀黄色婷婷五月天| 九九aV| 久久精品A片777777| 婷婷五月天中文字幕.| 国产69精品久久久久999小说| 五月丁香花激情综合网| www.久久久久久久| 色播播五月天| se影音资源在线观看| 婷婷五月丁香花综合| 国产99久久久国产精品免费看| 亚洲六月色| 51成人| 碰超亚洲| 色色狼人综合| 玖玖九九99| 五月丁香亭亭操逼| 五月丁香婷婷啪啪| 丁香五月五月婷婷| 欧美激情丁香五月| 日韩成人无码片| 婷婷爱五月| 99爱在线观看视频| sS丁香五月婷婷| 久久五月情| 日本三级韩三级99久久| 婷婷五月天无码| 久久视这里只有精品| 九热电影av| 成人做爰高潮A片免费视频| 中文av网| 91dy.av| 色爽九九| 人妻在线观看视频| 丁香五月天综合| 天天干天天干天天干天天干天| 欧美日韩一a.无| 91视频久久久| 白人荫道BBWBBB大荫道| 在线中文字幕视频| www.26uuu.com亚洲电影| 国产超碰在线| 色色九九五月天| 日产精品一线二线三线芒果| 99性视频| 婷婷成人五月天成人文学| 婷婷五月丁香高清无码| 九九色热| 青青草Avb在线| 婷婷五月丁香青青草在线| 天天操天天干天天日| 色欧洲| 精品无码视频| 日本特黄aaaaa| 99热在线观看| 色婷婷888| 九九久99免费视频| 另类少妇人与禽zOZZ0性伦| 婷婷五月天色| 色五月综合资源推荐| 六月婷婷久久大全| 99亚洲大片精品永久在线观看| 91九色精品女同系列| 丁香婷婷五月人体| 色色综合五月| 国产偷人爽久久久久久老妇APP| 丁香六月婷婷综合| 大香蕉伊人99| 激情爱爱网站超大免费| 操骚货在线| 天天做天天爱天天综合| 狠狠搞亚洲| 草逼大片| 六月丁香激情婷婷| 五月天日日操夜夜操 | 九九Av| 嫩模aV在线| 亚洲亚洲人成综合网络| 五月天综合在线观看| 这里只有精品视频在线看| 色五月网址| 强奸幻女毛片| 99久久9| 黄色激情五月天| 在线播放成人网站| 九九中文字幕九| 色综合五月婷婷狠狠干| 99热日韩| 亚州欧美黄色电影| 五月婷婷综合热| 激情网婷婷五月天| 人妻AV中文系列| 丁香五月婷婷啪| 丁香五月婷婷色偷偷| 久久五月天综合| 激情亭亭五月| WWW五月婷婷| 色综合天堂| 国产操逼视频网站| 激情综合五月激情17| 日韩一级网站| 色99xx| 色播五月婷婷综合| 99视频35精品视频在线观看| 丁香五月 性爱| 都市激情蜜桃婷婷五月天 | 激情第四色| 亚洲AV日韩在线观看| 色五月开心婷婷| 五月丁香婷婷婷激情爱爱| 亚洲传媒在线观看| 婷丁香五月天| 91色久| 99在线视频免费| 噜噜色噜噜网| 99精品偷自拍| 五月丁香六月色婷婷综合五月天| 欧美 日韩 成人| H亚洲| 色婷婷六月开心中文字| 97干在线| 伊人久久大香网| 六月婷婷激情| 丁香五月婷婷欧美成人色图| 六月婷婷色五月| 丁香五月综合| 九九热这里只有精品23| 午夜激情五月天| 综合色七七| 亚洲婷婷丁香五月视频| 日韩黄黄| 狠狠99| 亚洲欧美婷婷五月色综合| 大香伊人婷婷| 99亚洲色| 成人AV片播放| 99热这里只有精品最新| 无遮挡国产高潮视频免费观看| caopeng超碰| 69精品人人人人| 区区久久妻| 人妻少妇色综合| 这里只有精彩小视频视频网站| 中文字幕人妻在线| 色婷婷啪啪啪啪啪啪| 91视频综合网| 超碰9在| 丁香婷婷性久久| 人妻激情视频| 久久久五月婷婷| 超碰69天堂| 欧美色爱五月天| 性色综合网| 欧美成人色婷婷| 99九九中文字幕视频| 日日干日日| 色婷婷激情四射视频| 日本高清久| 日韩欧美颜射| 91色婷婷综合久久中文字幕二区| 97碰碰人人| 成人丁香| 色婷婷婷av | 五月天激情色色| 美英法精品无码免费视频| www.九九婷婷| 久久六月综合| 婷婷操超碰| 色综合天天综合成人网| Av性爱网站| 欧美交换配乱吟粗大25P| 丁香五月天啪啪激情综合网| 激情五月天之五月婷婷| 国产人妻人伦精品一区二区| 五月婷婷综合网在线播放| 成人做爰黄A片免费看直播室男男 久草热8精品视频在线观看 | 亚洲午夜在线视频| 热久久66| 日韩美一级毛卡片| 国产免费一区二区三区三州老师F1F1.CC | 色综合丁香婷婷| 色999亚洲人成色| 成人精品视频99在线观看免费| 秋霞学生妹一二级| www.色多多婷| 天天日日夜夜| 中文字幕+中文在线| 中文字幕在线不卡| 少妇日麻屄| 超碰一区二区| 婷婷五月成人| 五月丁欧美| 色.五月综合网| 中文在线视频久1| 97久久久久| 亚洲成av人影院| 99热久| 99日本精品视频热| 少妇人妻丰满做爰XXX| 少妇激情五月天| 丁香五月婷婷婷桃花影院| 久综合网| 亚洲另类婷婷五月综合| 91疯狂操操操操| 九九热在线视频观看| 婷婷激情丁五月| 超碰色综合| 思思热在线观看| 五月婷在线视频免费播放| 超碰色婷婷| 丰满人妻妇伦又伦精品国产| 五月丁香婷婷俺| 国产亚洲99久久精品| 五月综合人妻| 97综合在线| 丁香婷五月| 久久停停超碰| 丁香婷婷五月综合欧美另类|