欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

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
返回資訊列表
婷婷九月激情| 丁香六月综合激情| 天天肏屄夜夜爽| 国产精品国产成人国产三级| 狠狠插狠狠插| 亚洲Av入口| 色九九九综合| 五月丁香综合| 久9无码视频| 久久精品色| 人与禽A片啪啪| 深爱激情五月婷婷| 26uuu四色| 狠狠色综合五月人人| 日日爽日日| 色色丁香婷婷| 久久久色情| 草草视频91| 青青草六月丁香| www色婷婷com| 国内裸舞二区| 色婷婷色99国产综合精品| 国产精品久久久爽爽爽麻豆色哟哟| 色婷婷激情五月天| 成人AV在线网站| 五月天丁香综合在线| 91操碰| 亚洲久久婷婷| 日日婷婷不卡| 天天色天天爱天天舔| 五月天伊人久久| 亚洲色五月婷婷| 色婷婷视频在线| 97色婷婷| 欧美色色色| 久久综合26p| 亚洲永久免费| 九九色大香蕉| 丁香五月欧美| 欧美大香蕉视频| 17.c黄色| 五月停停激情网| 亚洲综人色综网| 一区二区三区XXXXXX| 大陆极品少妇内射AAAAAA| 超碰99热精品| 丁香六月激情| 五月婷婷狠狠干| 精品久久久久久久久久久久人妻| 婷婷综合成人五月天| 色碰碰| 久久美女五月天| 天天色伊人| 色呦呦美女| 九色视频九色九色91jiuseshipin| 亚洲热久久| 9热在线观看| 操你av| 婷婷五月激情丁香激情| 天天射射夜| 天天爽成人综合网站| 操操自拍| 欧美日韩99| 亚洲欧洲国产精品| 五月丁香婷婷无码中文| yazhou seshipin| 亚洲视频二区| 情婷婷五月天在线| 丁香五月婷婷骚视屏| 欧美综合丁香网| 丁香五月综合色婷婷| 亚洲色碰| 五月丁香网中文字幕| 激情五月天婷婷久久久久久久久久久| 综合色天天| 婷婷爱综合| 九九色逼| 久久精品无码一区| caopeng97人人| 青青操成人福利| 六月色丁香婷婷| 九月丁香很很色| 五月丁香婷婷狠狠操| 青草青草视频2免费观看| 日本久久网| 专区无日本视频高清8| 日本人妻伦在线中文字幕| 人妻丰满精品一区二区A片| 超碰在线99| 日本久久99| 国产亚洲精品久久久久久豆腐| 五月婷婷性爱| 天天综合五月天| 97碰超级人人看| 青青.com| 五月天色婷婷伊人网| 欧美日韩aaa| 自拍偷窥99热| 怎么样可以看免费的一级av| 99视频网址| 久久婷婷五月天激情新地址| 亚洲色情网站| 久久免费精彩视频| g00d人体西西| 夫妇交换刺激做爰| 色九月欧美| 久久久com| 夜夜噜夜夜奇| 91一起操| 日日操夜夜操中国无码| 国产色丁香| A色色| 538在线精品| 激情九月综合| 亚洲综合成人网站| 五月色精品| 精品网站:999WWW| 中文字幕在线日亚洲9| 婷婷丁香六月天| 久久婷婷五月综合成人d啪| 丁香五月六月久久综合| 午夜亚洲国产精品av一区二区| 色9999日韩国产| 亚洲成人电影在线免费观看| 日日操夜夜操狠狠操| 婷婷五月成人系列| 精品国产AV色一区二区深夜久久 | 日日夜夜婷婷| 黄色91在线观看| 久久久人妻人伦| 另类小说激情五月天| 狠狠干天天日| 色综合九九| 婷婷五月天在婷| 丁香色婷婷| 九月婷婷综合在线| 狠狠狠狠操| 狠狠色丁香| 97自拍99| 色婷婷综合影院| 五月婷婷色色爱| 婷婷丁香久久| 婷婷丁香色五月| 欧美啪啪五月天| 丁香五月婷婷丫| 四虎成人精品永久免费AV九九| 九热网站| 开心激情网在线| 婷婷五月天丁香| 九九精品热播| 五月天激情综合| 久久久宗合视频88| 久久色这里只有精品| 国色天香成人网| 欧美日韩91| 九九热精品视频在线观看| 婷婷丁香五月综合久久| 79色色色色| 亚洲精品国产熟女久久久| 婷婷丁香社区网| 天天操无码| cao久久| 五月婷婷久| 风流少妇A片一区二区蜜桃| 久久九九怡红院| 五月婷婷综合激情网| 一级无码作爱片| 色色哒五月婷婷六月丁香| 99热国品| 久久机热/这里只有精品| 久久久91精品| www久久艹| 2015超碰| 99这里只有精品| 欧美欧盟性爱网| 久久这里只有精品热在99| 碰碰女| 成人丁香五月天| 91人人爽狠狠狠| 久热成人| 激情丰满熟妇五月| 久久全色| 婷婷中文字幕| 天天色综合综合| 亚洲天堂碰碰婷婷| 五月丁香| 伊人狠狠综合| 97碰超级人人看| www.99热视频| 操逼福利视频| 五月丁香网站| 欧美顶级少妇做爰HD| 天天干夜夜b| 色婷插| 婷婷丁香人妻天天爽| 婷婷综合在线播放| 色婷婷亚洲婷婷| 色色色.COM| 1024婷婷综合久久五月天| 色综合激情| 深爱激情网五月| 国产AV一区二区三区最新精品| 青草激情在线| 97资源碰碰| 亚洲亚洲人成综合网络| 亚洲操操操| 久久五月婷| 五月激情综合网| 五月丁香激情深爱婷婷| 99在线精品观看99| 五月丁香六月婷婷激情四射| 人妻久久久| 丁香色综合| 日韩一级A片黄色| CHINESE熟女老女人HD视频| www.热99热| 色色色9 9 9| 久久综合丁香激情五月| 99er精品视频| 99在线看片| 97色色综合| 人妻少妇色综合| 26uuu亚洲精品国产| 五月婷婷综合久久| 艹色18p| 婷婷色五月天在线| 亚洲激情另类| 日日夜夜天天综合| 26uuuavcom| 黑人熟妇一区二区三区| 67194线路二在线观看| 玖玖婷婷色五月| 色婷激情网| 97色天堂| 激情五月综合久久| av五月丁香婷婷网| 五月婷婷黄网站大全| 色噜噜狠狠色综合成人网| 婷婷五月天综合蜜桃| 日日操夜夜操无码免费| 丁香五月综合激情久久潮喷| 综合天堂AV久久久久久久| 99久久综合网| 亚洲啪啪啪啪| 中文字幕在线播放视频| 色婷六月| 毛片新网地| 色五月婷婷在线观看| 色香五月天| 婷婷开心深爱五月天| 欧美操逼天堂| 丁香五月AV| 欧美日本99| 九九99九九99偷拍视频免费看| 五月综合激情网| 婷婷五月天亚洲综合| 狠狠狠狠狠草| 色五月综合网| 婷婷情色激情| 99热这里只有精品4| 婷婷五月色网| 99av视频| 五月婷婷综合丁香视频| 丁香五月婷婷AV在线| 天天干天天射色综合| 五月天色官网| 99只有这里是精品| Www.狠狠| 伊人玖玖网| 五月天天爽| 五月丁香婷婷潮喷中文字幕| 色婷婷久久综合中文久久一本| 战争与艾拉电影免费观看| 丁香五月激情综合在线观看| 思思久热6| 精品人妻久久久| 丁香五月天在线直播观看| 丁香五月天天| 丁香五月天视频在线播放| 婷婷深爱网| 婷婷五月激情在线| 天天操夜夜操| 97色干| www.天天干| 久久99久久99精品免视看婷婷| 五月亭亭开心网| 99热网站| 五月婷婷性爱网| 丁香五夜激情四射夜夜夜| 欧美激情 日韩无码 婷婷 五月天| 99久久精品视频女神1| 亚洲另类婷婷五月综合| 精品人妻伦一二三区久久| 看全色黄大色大片| 狠狠色婷婷7777久| 99ri国产精品| 久久欧洲久久| 婷婷综合五月天亚洲综合| 婷婷五月激情五月激情| 色丁香久久| 婷婷色五月激情| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | 91大屁股在线| 99热99久久| 欧美精品99久久久| 天天干天天爽天天操| 天天色天天操天天射| 丁香五月激情综合| 香蕉99网| 激情开心五月婷婷| 美女精品一级不卡视频| 性爱激情五月| 久久五月视频| 丁香五月婷婷大香蕉| 99这里有精品| 秋霞日本免费毛片A片| 激情六月下句是什么| 九九九九九999999| 亚洲精品影视| 五月天婷婷在线AN| 免费视频WWW在线观看网站| 丁香社92视频| 久久久人人人妻丝丝丝| 成人av免费观看| 丁香六月婷婷色XXXXX| 激情综合婷婷| 婷婷俺去也| 天天拍天天操| 金桔一区二区ab地址| 综合伊人狠狠| 久久久国产精品黄毛片| 婷婷久久五月天| 99热这里只有精品青草| 欧美午夜乱妇午夜福利| 国产精品久久久99视频| 99久久玖玖| 97干干干丁香| 六月丁香深深爱| 99热国内精品| a色婷婷| 99色热综合| 五月天综合视频| 9久热在线精品| 99这里只有免费的小视频在线观看| 99热只有| 99热超| 五月丁香九九九综合| 五月婷婷丁香成人网| 成人丁香婷婷| 超碰免费观看| 日本va欧美va欧美| AV在线不卡播放| 一起草AV| 久久久这里有精品| 亚洲婷婷在线播放十月| 中文字幕综合网| 欧美日韩中国| 久久久性爱视频| 夜夜嗨一区二区三区直播内容 | 青草青草视频2免费观看| 久久婷婷青草五月天| www.色婷婷| 亚洲a片免费观看| 亚洲AAAA网| 九九黄色网| 六月丁香花婷婷| 99熟女| 99视频久久| 97碰在线| 日韩草草草草草草草草草草草草| 婷色五月| 大地资源色婷婷视频在线| 五月成人丁香av91| 丁香五月亚洲| 丁香五月婷婷Av| www.激情| 成人做爰A片免费看网站找不到了| 99热老司机| 97碰久久| 中文字幕永久在线| 狠狠色综合五月| 一级内射毛片| 丁香五月婷婷基地| 91婷婷在线| 91九色首页| 色99在线| 婷婷五月丁香综合亚洲| 婷婷 色 丁香 夜| 五月天婷婷激情在线色图| www.99热这里精品| 欧美性二区| 女人高潮内射99精品| 亚洲久久婷婷丁香五月天| A片天天| 日韩爱操视频| 日本欧美在线| caop视频| 超级碰碰91| 激情综合亚洲| 日操熟女| 久久激情网| 超黄亚洲瑟瑟网站| www.一起草av| 伊人五月天| 思思精品久久艹| 97操男人的天堂| 欧洲不卡视频| 国产午夜精品一区二区三区四区| 秋霞三及片| 男人天堂 久久| 996热| 99热这里只有精品23| 五月婷婷黄色毛片| 狠狠精品干练久久久无码中文字幕| 婷婷综合色五月天| 久久久精品99亚洲综合| 中文字幕不卡视频| 影音先锋女人AA鲁色资源| 丁香五月播播| 最新精品视频99| 伊人网啪啪| 99网| 色色色色色色色色网站| 天天久| 天天摸天天舔在线视频| 九九九午夜视频| 51精品国自产在线| 这里只有精品在线观看视频| 欧美色频| 五月婷在线视频免费看| 丁香六月婷婷综合麻豆| 伊人www22综合色| 亚洲乱码w在线观看| 熟妇人妻中文字幕无码老熟妇 | 综合网啪| 五月色丁香视频精品| 婷婷色在线| 人人操 色| 国产成人精品一区二三区熟女在线| 九九热免费视频| 五月天激情综合10p| 九九久久综合| 色色色婷婷五月天| 1234操逼网| 天天爱天天天射AV| 全部老头和老太XXXXX| 亚洲啪啪视频| 97色啪| 久热这里只有精品在线| 精品色色网| 九九热视频精品2| 色噜噜狠狠色综合网| 色婷婷丁香五月色综合网| AV伊人青草丁香六月| 91日韩美女被插视频| 亚洲午夜在线视频| 亚洲三A| 任你草| 婷婷天天色| 九九人人精品| 91久久精品无码一区二区三区| 噜噜色噜噜网| 欧美激情综合五月色丁香| ss99热| 99色丁香婷婷综合网| 欧美va国产va| 久久久区区一久久久久久| 天天色天天爱天天舔| bbwcuckold精品熟妇| 性爱AV天堂| 日韩九九视频| 激情综合网之激情五月| 色五月在线| 欧美天天五月丁香免费观看| 亚洲第一色网站| 婷婷天天舔| 亚洲色五月天在线| 99久久99热这里只有精品| www.日日日.com| 五月人人丁香婷婷五月人人丁香| VA婷婷亚洲| 婷婷网五月| wwwwww.色| www,99热| 久99久视频| 久久538| 亚洲操操| 天天色色天天| 婷婷丁香五月综合| 中文字幕永久在线| 无码人妻AV久久久一区二区三区| 5月丁香综合图区| 婷婷五月天最新网址| 婷婷五月天久| 五月丁香啪啪激情| 极品人妻videosss人妻| 色爱亚洲| 91色久| A片试看120分钟做受图片| 任我干视频在线观看| 丁香花操逼| 成人视屏在线观看| 人妻操操色| 亭亭玉月丁香| 五月天社区| 天堂久久久久天堂网| 影音先锋天天日| 日本综合色图| 亚洲操b| 99综合在线| 黄桃AV无码免费一区二区三区| 老司机视频lsj爱就色| 碰碰碰91| 五月激情婷婷开心五月| 亚洲婷婷欧美婷婷| 内射人妻视频国内| 亚洲色图五月丁香| A网在线欧洲| 婷婷五月激情欧美| 666555。COm毛片| 久9视频免费播放| 婷婷激情六月综合| 五月丁香久人妻中文| 亚洲第一综合| 九九婷婷综合| 婷婷.com| 极品人妻VIDEOSSS人妻| 爱操人妻| 久久9RE热视频精品98| 久思思久视频| 激情综合五月婷婷丁香| 大香蕉久久综合网| 久久五月天婷婷视频| 五月天色婷婷激情| 亚洲视频在线观看| 久久97| 五月婷婷丁香俺日污视频| 伊人久久艹| 五夜丁香| 色视频五月天| 玖玖爱伊人网| 五月婷伊人| 99自拍网| Www99热| 激情婷婷网| 91狠狠综合久久久久久| www.久久爱| 婷婷狠狠操| 久久婷婷一级片| 日本婷婷网| 大香蕉人妻| 日韩淑女人妻luan伦激情精品一区二 | 婷婷五月婷婷五月天| 亚洲另类在线观看| 综合激情在线| 激情视频综合| 中文在线成人| 婷婷六月激情| 久久超级碰视频| 五月天六月婷婷电影| 蜜臀AV在线观看| 操操操www.com| 色色五月天婷婷| 在线中文亚洲| 久久激情五月婷婷| 67194中文字幕| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 婷婷五月在线影院| 天天色伊人| 91chinese在线| 久久视屏这里只有久久| 婷婷五月天激情网| 婷婷丁香午夜综合影视| 嫩草AV久久伊人妇女超级A| 青草性爱视频| 农村熟妇高潮精品A片| 激情开心五月婷婷| 亚洲熟妇AV乱码在线观看| 亚洲视频在线观看99| 久久婷婷色| 美女va| 最近中文字幕2019视频1| 91热er| 亚洲日韩一页精品发布| er99免费视频在线| 热99视频精品在线| 丁香婷婷五月天在线视频| 人人妻人人澡人人爽| 丁香婷婷激情五月天无毒不卡蜜桃| 国产精品岛国片在线观看免费| 日日爽夜夜爽| 看婷婷五月天网| 五月综合激情| 天天做天天爱天天做| 免费在线a| 99视频在线播放大全| 狠狠爱综合| 婷婷五月天小说| 狠狠色综合777| 碰碰碰97国产| 色五月欧美| 亚洲色啪| 婷婷综合网伊人| 婷婷成人av| 激情综合五| 久久无码激情视频| 1024久婷| 久久机热/这里只有精品| 五月婷高清视频| 日本偷拍九九九| 五月停停999| 九九九精品视频免费观看| 国产熟妇乱子伦hd| 亚洲熟妇无码乱子AV电影| 无码啪啪| 九九精品丁香花| 9久视频| 五月婷婷之六月丁香| 中文字幕天天干| 丁香五月天啪啪| 丁香婷婷综合激情五月色| 97久人人| 色婷婷丁香花五月天| 欧美在线视频免费播放| 色婷婷伦理| 久久在线大香蕉| 狠狠精品干练久久久无码中文字幕| 久机视频这只有精品| 异能之下短剧免费观看全集| 久热精彩视频98| 五月丁香网站| 大香蕉久热| 欧美英丁香开心快乐六月天网| 丁香五月婷婷综合精品素人| 亚洲国产精品二二三三区| 婷婷五月色惰| 99综合免费视频| 亚洲性天天| 综合玖玖偷拍| 97人碰人操| 亚洲热视频| 色五婷婷在线视频| 性色99| 五月开心婷婷中文字幕| 欧美在线看| 91碰碰碰久久久久| 午夜精品人妻无码一区二区三区| 丁香激情网| 婷婷五月另类网站| 激情五月天色婷婷综合| 丁香五月婷婷亚洲色图| 九九热中文| 一区二区传媒视频| www.9色色色| 无码少妇高潮喷水A片免费| 久久伊人婷婷| 人妻久热| www.婷婷,com| 五月丁香婷婷导航视频| 五月婷婷二月丁香| 色情一区二区播放| 91婷婷五月天综合视频| 99re这里只有精品国产99| 激情婷婷五月| 五月丁香久| 久久久久激情网| 五月丁香综合久久夜夜| 婷婷丁香五月在线观看91| 成人做爰黄A片免费看直播室男男| 五月天伊人网| 天天色视频| 91成人性爱视频| 日本99久久| 五月丁香999| 亚洲六月婷婷| 天天操婷婷| 久久网日本| 九九这里是免费的视频5| 精品久久这里热66| 婷婷色在线视频| 狠狠爱婷婷| 日韩色五月| 97干免费视频| 久久免费精彩视频| 五月婷婷六月丁香| 搡BBBB搡BBB搡18 | 日B日潘金莲BB| 色婷婷精| 超碰av天堂| 亚洲成人网站在线| 国产成人综合在线| 亚洲五月天综合色| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 色婷婷视频在线| 色色色色色色网站| 日韩av在线免费观看| 爽极品色| 另类少妇人与禽zOZZ0性伦| 国产精品第一国产精品| 丁香五月婷婷综合激情哟哟哟| 久久久久久9热不雅视频| 四射综合网| 色五月婷婷av| 天天做天天爰天天爽天天无遮挡| 丁香五月婷婷欧美成人色图| 99热这里只有精品8| 91人人爽狠狠狠| 99热综合| 卡视频1区2区| 看婷婷五月天网| 五月天色网站| 情色婷婷五月天| av九九| 超级碰碰一区| 色激情综合| 影音先锋人妻出差| Av九九| 福利视频在线播放| 亚洲人妻电影| 五月丁香少妇A| 丁香五月婷婷在线观看| 91久久久久久久久18| 99色综合久久| 六月婷婷久久| 婷婷五月免费在线| 婷婷激情综合| 香蕉久久国产AV一区二区| 在线综合91| 五月丁香六月综合情在线观看 | 欧美婷婷综合| 熟女人妻一区二区三区免费看| 五月香蕉网| 综合亚洲五月天| 五月天亚洲综合网| 嫩BBB搡BBBB榛BBBB| 色玖玖综合| 色综合久久伊伊婷婷五月| 婷婷五月天激情网| A片试看120分钟做受图片| 久久婷婷五月综合激情国产| 色五月天在线| 日本三级日本三级99| 亚洲另类AV| 婷婷亚洲激情在线观看视频| 色五月激情| 任你弄在线视频免费| 久久久精品视频79| 天堂五月婷婷| 十二区无码| 亚洲激情高潮| 色五月婷婷丁香五月| 丁香五月ⅤA久久久| 狠狠草婷婷| 五月激情六月宗合| 99热1| 五月综合激情视频在线| 4399无码视频| 热久久77777| 久草婷婷| AV在线大香蕉| 97操碰在线视频| 五月丁香A片| 婷婷综合在线观看视频| 精品一二三区久久AAA片| 91九九| 丁香五月网址| 色欲婷婷五月天丁香| 五月婷婷丁香网| 区欧美日韩成人| 亚洲无码成人性爰网| 久久这里有精品| 99日本精品视频热| 色综合色五月| 久9久9热久热| 激情婷婷色色| 欧美日朝成人| 色999亚洲人成色| 人人97碰| 超碰碰碰碰| 99婷婷| 岛国AV网| 久久欧洲久久| 欧美韩国日本| 人人爽人人爽人人爽人人爽| 粉嫩AV久久一区二区三区| 多精窝99在线视频| 亚洲亚洲人成综合网络| 五月婷婷激情色情网| AA片在线观看视频在线播放| 99色1| www.99riav99| 天天插AV丝袜中| 丁香五月97视频| 亚洲婷婷五月| 日本三级中国三级99| 99爱爱| 99热欧美在线观看| 2018国产大陆天天弄| 五月的婷婷六月丁香| 欧美三级巜人妻互换| 新激情五月天色播| 欧美久人人| 国产熟女一区二区三区五月婷| 天天久久狠狠色综合| 99re6久热只有精品6在线直播| 综合五月丁香久久| 久爱综合| 五月综合视频| 天天做天天要天天爱| 婷婷伊人激情婷婷| 9色天堂| 久久五月天色婷婷| 只有精品在线观看| 91午夜婷婷狠狠久久综合9色| 99精品视频网站| 国产婷婷五月天| 色色婷婷五月| 亚洲色情在线| 97精品综合久久| 大地资源色婷婷视频在线| 思思热在线免费视频| 黄网在线观看免费| 色情五月丁香| 人人爱国产| 伊人激情| 精品五月花| 91丨九色丨熟女高潮| 艹| 婷婷网影院| 久青草影院| 婷婷五月天开心网| 丁香五月天欧洲在线| 久久婷婷艹| 婷婷六月色开| 99小视频网站| 五月婷成人| 中文字幕成人日韩| 九九热精品视频| 99成人免费热视频| 日日爱678| 国产人人操| 久久丁香五月天| 日日夜夜爽| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 亚洲五月婷婷在线| 日本婷婷在线| 亚洲丁香婷婷| 色婷婷激情| 婷婷丁香人妻天天爽| 婷婷丁香色五月天久久88| 五月天色色色色色| 久热在线中文字幕色999舞| 99热丁香| 激情婷婷色五月| 成人色站,在线视频,看片-SS1AV| 97色图片中文字幕视频在线观看| 97久久人人人干| 俺去也综合| 婷婷欧美激情| 五月丁香婷婷色啪| 久久婷婷色| 91色涩| 激情www| 日韩激情人伦人| 五月丁香婷婷啪啪| 桃色激情五月天| 就爱日五月天| 在线成人va| 丁香五月偷拍| 久久香蕉网| 99熟女啪啪视频| 激情五月婷婷丁香| 日本激情五月天‘| 日韩av干| 日操五月婷| 五月丁香日本一抹本| 成人五月天丁香婷| 色一情一乱一乱一区9| 免费色婷婷| 六月婷婷毛片| 成人αV视频免费观看| 久久婷婷视频| 九九热最新| 99热地址| 色优久久| 色播五月网| 亚洲天天| 丁香五月伊人| 99热这里只有精品55| 91精品丝袜久久久久久| 色婷久九| 大香蕉婷婷色| 综合色图区| 二色AV| 亚州操人在线视频| 天天日天天爽夜夜爽| 玖玖无码中文| 99久久婷婷| 欧美日韩成人| 婷婷五月天视频| 色五月婷婷网| 久久免费精彩视频| 色色色欧美| 国产毛片欧美毛片久久久| 99免费在线视频| 国产乱人偷精品人妻A片| 国产99久久久国产精品免费看| 五月天激情四射| 秋霞免费视频| 青青草青青草五月天| 97人碰人操| 激情五月婷婷色色| 婷婷久久精品| 婷婷丁香五月麻豆| 久久久久婷婷五月热综合| 视色网在线播放| 婷婷五月天成人基地| 五月婷婷丁香在线| 色色五月婷婷久久| 激情五月综合网| 最近中文字幕大全免费版在线| 少妇人妻偷人精品无码视频新浪| 色色色色色色色色色影院| 丁香花狠狠婷婷亚洲中文字幕| 一级无码作爱片| 欧美 日韩 成人在线| 激情四射五月天偷偷看婷婷| 日本特黄aaaaa| 激情五月视频在线婷婷| 热五月婷婷| 亚洲色啪| 青吴乐视频| 激情五月天啪啪| 九九热这里只有精品556| 欧美噜一噜| 99热在线播放| 91久久久久久久| 亚洲色区17| 一本久道综合色婷婷五月| 丁香色啪综合| 九九热最新| 五月综合视频| 婷五月天| 66精品国产成人| 天天爽夜夜爽天天爽夜夜爽| 久久婷婷网站| 国产成人精品一区二区三区视频| 最新久久99视频网站| 亚洲色综合| 五月婷婷丁香色播网| 久久五月丁香婷婷| 丁香婷婷九月在线| 九九九热精品| 99热精品6| 欧美日朝成人| 91丨九色丨老熟女激情| 亚洲综合激情五月久久| 激情五月天色婷婷| 亚洲精品99| 九九九九九九九九九九九九九国产精品| 亚洲色啪| 99免费热视频在线| 六月丁香五月婷婷| 久婷婷五月综合欧美| 亚洲另类婷婷五月综合| 操碰99| 香蕉99网| 色婷婷婷综合五月天| 色五月天成人| 99视频| AV在线免费网站| 天天夜夜爽| 色色色综合| 五月婷婷影院| 丁香五月天成人网站| 青青久在线视频免费观看| 99在线视频播放| 九九久热| 久久五月天激情| 六月丁香婷婷色狠狠久久| 中文字幕 中文字幕明步| 99超超碰| 美妞av| 丁香久久| 91碰碰视频| 五月天综合色| 久久5 9视频免费观看| 爱爱色五月天| 色色色99| 大香蕉综合| 超碰在线综合| 丁香五月婷婷亚洲激情四射| 激情五月丁香激情综合网| 网站免费一站二站| 深夜男女福利刺激影院一区完整| 五月丁香成人视频| 久久丁香综合精品综合| 天天插天天日天天爽| 青青草五月天| 日本老女人黄页在线播放| 性天堂久久| 国产AV不卡福利| 婷婷五月六月| 91av无码| 天天综合亚洲| 日本97人人| 五月天六月婷婷电影| 五月天sesese| 97婷婷丁香五月| 丁香五月五月婷婷欧美大香蕉| 精品99久久久久成人网站免费| 天天日天天摸| 五月六月播婷婷| 色综合色色| 婷婷开心深爱五月天| 大香蕉久操| 99色综合| 丁香六月婷婷久久综合| 人人干天天舔| 成人片黄网站色大片免费毛片 | 99ri在线观看视频| 91黄址| 97福利视频| 亚州精品色情无码A片| 亚洲色另类| 深爱五月婷婷开心中文字幕| 天天操天天插| 久草九一| 丁香五月婷婷色| 久婷视频| 婷婷激情人妻| 91操人视频| 亚洲1区| 襙逼网| 亚洲色区17| 成人永久免费视频在线观看| 91人人操人人| 久久九色| 五月停停丁香| 综合爱久久| 色婷婷综合亚洲| 99er这里只有精品| 午夜精品人妻无码一区二区三区| 六月丁香婷婷尤物| 丁香9月婷婷| 变态另类9| 天天舔夜夜操www com| 色婷婷丁香花五月天| 国产婷婷五月色情综合| a九九热www| 性无码专区无码| 思思 热 99| 亚洲五月天婷婷| 国产看真人毛片爱做A片| 天天爽天天摸| 久久婷婷色色| 欧美性色A片免费免费观看的 | 国产日日夜夜操| 888久久久| 久久久97| 婷婷五月情天| 成人丁香五月| 男人操女人高潮91视频| 色婷婷六月| 色五月婷婷少妇人妻| 爆乳熟女-区二区三区| 香蕉久久国产AV一区二区| 六月婷婷私欲| 天天肏在线观看| 欧美成人猛片AAAAAAA| 欧美大道不卡| 六月丁香综合999| 婷婷五月激情的图片| 农村熟妇高潮精品A片| 久久九九99桃花视频| 色婷婷电影网| 五月婷婷第四色| 成人五月天在线观看| 色综合久久无码| 91啪啪视频| 六月婷婷五月丁香| 26uuuavcom| 伊人五月婷婷| 欧美人人草草| 欧美精品18| 亚洲熟妇无码乱子AV电影| 婷婷五日b| 色五月婷婷在线| 婷婷五月激情欧美大胆视频| 色区久久| 婷婷五月天国产在线播放| 亚洲婷婷丁香五月亚洲| 一区二区免费看| 天堂久热| 人妻久久久久久| 五月久久婷婷丁香| 激情小说视频图片| 熟女重口味αV| 色丁香五月天| 国产美女主播vip| 日曰躁夜夜躁2026| 久久精品人妻| 操碰99| 丁香五月五月婷婷| 高清无码一区二区三区四区| jiujiu热在线视频| 小泽玛利亚视频一区二区| 百度一下国产精品A| 97在线精品| 国产无套精品一区二区| 丁香五月六月| 五月天另类图片| 五月花婷婷最新| 精品一区二区三区四区五区六区介绍| 亚州激情九月| aa久久| 小色小蛇伊人婷婷色香五月| 久久婷婷七月丁香| 深爱激情五月天| 五月丁香婷婷啪啪| www.久久久久久久| 国产精品色婷婷久久久精品| 久热这里只有精品99re| 五月天色婷婷基地| 欧美性爱特黄一级aaaassss| 538在线| 久热久色| 婷香五月网在线| 丁香五月天啪啪| 亚洲九区| AV九九| a网站免费观看| 337p大胆噜噜噜噜噜91Av| 琪琪色五月天| 九色自拍| 九九精品综合| 天天噜| 亚洲综合另类| 神马欧美精| 任你日视频| 色欲丁香| 亚洲色99| 久久五月视频| 亚洲A片成人无码久久精品青桔| 可以免费观看的av| 精品一二三区久久AAA片| 国产午夜精品一区二区三区嫩草| 精品夜夜澡人妻无码AV| 97caop| 色综合五月| 丁香婷婷五月人体| 色九月欧美| 丁香五月天激情| 欧美大奶熟女噜噜噜噜| 激情五月激情综合网一级丸片| 91dy.av| 色5月婷婷| 日本色视| 久久新地址| 婷婷伊人网| 日韩av手机在线观看| 精品国产a| 狠狠色丁香婷婷久久综合| 九九青青草成人| 九热在线这里有精品6| 婷婷丁香激情| 色五月婷婷小说亚洲中文字幕组| 91九色熟女| 九九精品免费| 色色色com| 五月丁香婷婷啪啪网| 久久婷婷综合基地| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 精久久色| 色五月五月天色婷婷色五月| 色色色综合网| 日本精品人妻无码77777| 日韩av高清| 婷婷97碰碰| 高清无码 一区 二区 三区| 99国产小视频| 欧洲亚洲免费视频9| 国产精品色色| 国产色香蕉精品五夜婷| 香蕉综合在线| 丁香婷婷五月综合影院| 日本天堂免费99| 99综合| 大香久久综合网| 丁香五月婷婷色情综合| 五月丁香婷婷激情在线| 婷婷久久综合| 欧美色综合天天久久综合精品| 久久婷婷东京热大香樵| 天堂婷婷五月在线| 亚洲综合激情五月久久| 色五月网址| 永久热91| 婷婷五月天国产手机在线视频观看| 色五月天成人| 亚洲综合激情五月久久| 婷婷色五月天色| 精品九九在线观看| 国产亚洲精品久久一区二区三区| 五月婷婷六月丁香| 99久精品视频| 婷婷丁香成人网址| 九九热中文| 久草婷妨| 日本的α片xxxwww| 日本3级片一区2区| 丁香五月激动深爱欧美| 九九色影视| 五月天婷婷无码视频| 婷婷五月婷婷| 永久免费一区二区三区| 久久人妻情侣| 五月丁香| 1024成人在线观看| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 午夜成人综合| 91狼友视频网页更新| 26uuu色噜噜精品一区| 久久婷网| www.一起草av| 色婷婷六月开心中文字| 亚洲操b| 天天操中文字幕| 思思re99视频在线观看| 欧亚成人A片一区二区| 色综合久久天天综合网| 婷婷五月激情视频在线| 日曰躁夜夜躁2026| 婷婷激情伍月网| 亚洲综合五月天婷婷丁香| 丁香五月www| 99视频网| 草草色情综合网| 亚洲婷婷月丁香五月| 天天日天天摸| 秋霞性爱AV| 综合另类视频| 久草狼人| 五月丁香激情综合久久| 色综合网页| 这里只有精品在线看| αv中文字幕在线观| 婷婷六月婷婷| 国产亚洲精品久久久久久豆腐| 91viP在线看| 日韩成人av在线| 久久精品99久久| 久久婷五月综合| 婷婷五月天综合久久| 五月天婷婷久久| 激情视频综合| 婷婷五月激情网| 91人人操| 97婷婷丁香| 欧美乱码国产一级A片| 玖玖五月丁香| 九色啦蜜臀| 免费亚洲成人电影AV| 色色色在线观看| 中文字幕九九九九| 婷婷色在线观看|