久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

cantools 完整文檔導(dǎo)讀:CAN 總線數(shù)據(jù)庫解析、消息編解碼、CLI 工具與代碼規(guī)范實(shí)戰(zhàn)指南 嵌入式開發(fā)工具【免費(fèi)下載鏈接】cantoolsCAN bus tools.項(xiàng)目地址https://gitcode.com/gh_mirrors/ca/cantools點(diǎn)擊查看免費(fèi)下載本文以 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實(shí)戰(zhàn)的完整技術(shù)棧。閱讀本文后你將能夠直接用 cantools 加載車載網(wǎng)絡(luò)數(shù)據(jù)庫、在腳本或candump管道中實(shí)時解碼 CAN 報文、可視化信號曲線、生成可落地的 C 代碼并理解其 API 設(shè)計與編碼規(guī)范。項(xiàng)目概覽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é)解碼為物理量。簡單與擴(kuò)展的信號多路復(fù)用signal multiplexing支持一個多路復(fù)用信號按取值切換不同的信號子集。診斷 DID 編碼與解碼面向 UDS 等診斷服務(wù)的數(shù)據(jù)DID/Data編解碼。candump輸出解碼直接消費(fèi) Linuxcandump程序抓取的日志流。節(jié)點(diǎn) Tester 工具cantools.tester.Tester提供基于 CAN 數(shù)據(jù)庫的測試輔助。C 源代碼生成器從數(shù)據(jù)庫生成 C 語言的struct、pack/unpack與信號encode/decode函數(shù)。CAN 總線監(jiān)控器文本界面實(shí)時監(jiān)控總線流量。信號圖形化繪圖基于 matplotlib 可視化信號隨時間的變化曲線。上述能力的模塊組織可從源碼結(jié)構(gòu)印證src/cantools/database/下是 CAN 與診斷數(shù)據(jù)庫的加載/序列化邏輯can/formats/含dbc/、kcd.py、sym.py、arxml/diagnostics/formats/cdd.py負(fù)責(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é)點(diǎn)測試。安裝項(xiàng)目使用標(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)部走_(dá)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()校驗(yàn)信號值是否在允許范圍內(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因?yàn)槿萜鲙祷氐氖?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時按擴(kuò)展名自動推斷格式、按格式推斷默認(rèn)編碼擴(kuò)展名大小寫不敏感擴(kuò)展名數(shù)據(jù)庫格式默認(rèn)編碼.arxmlarxmlutf-8.dbcdbccp1252.kcdkcdutf-8.symsymcp1252.cddcddutf-8其他/未知Noneutf-8dbc與sym默認(rèn)使用cp1252編碼是因?yàn)檫@兩種格式在歷史工具鏈中常含 Latin-1 字符源碼_resolve_database_format_and_encoding()中明確映射了這一點(diǎn)。其他重要參數(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自動按擴(kuò)展幀處理、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ù)校驗(yàn)標(biāo)準(zhǔn)幀超過 11 位、擴(kuò)展幀超過 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é)點(diǎn)屬性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 端到端保護(hù)屬性。AutosarNodeSpecifics節(jié)點(diǎn)級 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即其實(shí)現(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 實(shí)現(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é)點(diǎn)測試類。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)、按文件加載的加載失敗不影響其他命令??捎米用畎╠ecode、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該子命令實(shí)現(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等選項(xiàng)說明可用python3 -m cantools list --help查詢實(shí)現(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 位實(shí)踐中幾乎不會超過。$ 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浮點(diǎn)信號使用單精度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的定點(diǎn)代碼$ 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é)點(diǎn)發(fā)送消息的pack函數(shù)、以及信號接收者屬于該節(jié)點(diǎn)的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 生成器核心實(shí)現(xiàn)位于 src/cantools/database/can/c_source.py對應(yīng)測試樣例覆蓋了位域*_bit_fields.*、浮點(diǎn)floating_point.*、多路復(fù)用multiplex.*、輪詢舍入motohawk_use_round.*等多種形態(tài)見 tests/files/c_source。monitor文本界面總線監(jiān)控以 TUI文本用戶界面實(shí)時監(jiān)控總線流量$ python3 -m cantools monitor tests/files/dbc/motohawk.dbc底部菜單提供以下操作Quit退出監(jiān)控器也可用Ctrl-C。Filter只顯示匹配給定正則表達(dá)式的消息或信號輸入行按Enter返回菜單。Play/Pause在播放與暫停運(yùn)行與凍結(jié)之間切換。Reset將監(jiān)控器重置到初始狀態(tài)。實(shí)現(xiàn)見 subparsers/monitor.py相關(guān)單測見 test_monitor.py。convert數(shù)據(jù)庫格式互轉(zhuǎn)convert子命令把數(shù)據(jù)庫從一種格式轉(zhuǎn)換為另一種實(shí)現(xiàn)見 subparsers/convert.py對應(yīng)測試見 test_convert.py 與 test_conversion.py。DBC 互轉(zhuǎn)的正確性由tests/files/dbc/下的“原文件 *_dumped文件”配對驗(yàn)證如 multiplex_2.dbc 與 multiplex_2_dumped.dbc。Coding style編碼規(guī)范文檔以“基于作者個人偏好”的方式定義了本包源碼的編碼風(fēng)格對貢獻(xiàn)者而言是必須遵守的規(guī)則語句if、while、return等前后要有空行除非位于其他語句或文件的開頭/結(jié)尾。文件級定義之間留兩個空行。運(yùn)算符前后留空格關(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是文檔原樣保留的演示代碼并非真實(shí)語法。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等工具進(jìn)行收發(fā)測試。倉庫中decode、plot、monitor各子命令的文檔示例均基于此環(huán)境。貢獻(xiàn)指南Contributing文檔同時給出了向本倉庫提交貢獻(xiàn)的標(biāo)準(zhǔn)流程Fork 倉庫。安裝開發(fā)依賴使用tox可跳過此步python3 -m pip install -e .[dev]。實(shí)現(xiàn)新功能或修復(fù) bug。編寫測試用例防止未來改動破壞既有行為。運(yùn)行 linterruff check src、mypy src或tox -e ruff、tox -e mypy。運(yùn)行測試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 生成代碼的交叉驗(yàn)證由 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 工具鏈的實(shí)戰(zhàn)用法與內(nèi)部機(jī)制。贊分享嵌入式開發(fā)工具【免費(fèi)下載鏈接】cantoolsCAN bus tools.項(xiàng)目地址https://gitcode.com/gh_mirrors/ca/cantools點(diǎn)擊查看免費(fèi)下載相關(guān)推薦CAN總線數(shù)據(jù)處理實(shí)戰(zhàn)從環(huán)境搭建到消息編解碼全指南CAN總線數(shù)據(jù)處理實(shí)戰(zhàn)從環(huán)境搭建到消息編解碼全指南 如何高效解析汽車CAN總線數(shù)據(jù) 在汽車電子和工業(yè)控制領(lǐng)域CAN總線作為一種高可靠性的串行通信協(xié)議被廣嵌入式開發(fā)工具探索CAN總線工具Cantools探索CAN總線工具Cantools 項(xiàng)目介紹 Cantools是一個基于Python 3的CAN總線工具集提供了豐富的功能來處理CAN消息和信號。它支持多種嵌入式開發(fā)工具Cantools工具庫40.1.0版本發(fā)布增強(qiáng)CAN總線數(shù)據(jù)分析能力Cantools工具庫40.1.0版本發(fā)布增強(qiáng)CAN總線數(shù)據(jù)分析能力 Cantools是一個功能強(qiáng)大的Python庫專門用于處理CANController嵌入式開發(fā)工具上一篇gh_mirrors/er/errors深度解析Go語言錯誤處理新范式下一篇如何快速搭建現(xiàn)代化管理后臺Ant Design Vue Pro完整配置指南創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
蜜臀aV午夜一区二区三区| 天天日天天操天天射河南省| 超碰97起碰| 日韩黄色片子| 日韩精品字幕| 欧美 亚洲 第一页| 欧美97爱| 视频在线97| 成人精品一区二区三区| 91色色综合| 欧美三级一级| 大奶啊啊好爽| 99色在线| 久色网| 国产精品ⅴ无码大片在线看.| 91美女精品| 色拍偷亚洲| 久久久久久久久九九久孕交| 亚洲少妇诱惑| 人妻在线大香蕉| 久久精彩视频9| 天天综合色电影| 亚州操逼网| 人人操人人摸avav| 蜜臀无码视频在线观看| 人人操人人爽人人操人人| 久草成人影片| 97中文字幕一区| 色哟哟1区2区| 91N综合网在线| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 少妇99成人麻豆| 国产日韩欧美三级片| 国产亚州精品美女久久久免费| 先锋影音av先锋一区| 大学生美女口爆| 久久久夜夜夜| 97久久久| 青草园大香蕉| 五月婷在线| 日韩噜噜69| 久久久999网站| 亚洲成人碰碰| 旡码电影特区| 1二区9| 91网亚洲| 毛片99-全集电影手机免费观看完整-B029AV | 99热综合| 国产精品久久久蜜臀| 99999精品视频| 九九久久首页| 欧美亚洲AN| 日日做夜狠狠爱欧美黑人| 欧美日韩大陆黑人少妇99| 欧洲一区二区三区免费| 91九色丰满高潮| 欧美,日韩,中文,另类| 国产中午字一暮区| 一区二区三区四区理论片| 搡老熟女免费视频 | 97亚洲色图| 九月伊人中文字幕| 无码人妻精品一区二区中文| 亚洲精品成人| 97在线欧洲| 91女优在线观看| 97亚洲精品超碰| 69XX一中文字幕人妻91| 蜜乳性色无码专日粉嫩骚逼AV| 丁香五月天激情综合| 人人操天天爽| 欧美熟妇精品黑人巨大91| 男女无套 免费网站| 欧美高清18A片| 亚洲无线码一区国产欧美国| 77777亚洲蜜臀精品久久综合蜜臀| 玖玖爱一区在线| 东京热毛片调教| 精品国产av一区二区三区四区入口| 亚洲精品毛片在线观看| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 欧美色图 色综合图| а√天堂资源官网在线资源| 日韩欧美~中文字| 张柏芝国产一区在线观看| 亚洲 自拍偷拍 欧美| 99久久久久| 大香蕉一人在线| 91亚洲欧美激情| 亚洲一曲日韩精品| 九X超碰| 天天射夜夜操| 五月婷婷综合网| 九九拍拍精品视频在线播放 | 亚洲一区二区性爱电影| 亚洲男人的天堂在线看| 日产操逼| 一区二区久久天天干狠狠| 性感美女啊啊啊在线| 内射夫妻三片| www.97在线| 9久9久| 手机在线视频国内精品| 日本伦理一区二区| 亚洲男人天堂网| 桃花色涩综合影院| 九九人妻| 亚洲黄网在哪免费看| 亚洲色图欧美另类在线| 色噜噜国产在线| av天堂加勒比| 七久久久| 日本中文熟女视频| 九九九久千久久激情蜜桃在线看 | 国产精品99精品视频网站| 精品久久久无码| 97操B| 亚洲AV无码国产成人| 97碰碰日本乱偷人妻中文的| 国产又黄又爽又刺激久久久久久| 超碰这里只有精品| 不卡一区二区日本视频| 午夜精品久久999热蜜桃介男人用| 51国产午夜精品视频| 超碰资源亚洲97| 一级片视频啪啪| 久久啊哟| 中文字幕av乱伦| 嫩草 我啊~嗯~在线| 亚洲一卡2卡3卡4卡乱码网站| 9 7超碰在线免费观看| 2017av无码免费无线播| 97视频620| 99亚洲国产精品色一区二区三区| 乱理日韩中文| 大香蕉手机视频| 超碰在线91| 天天综合~91入口| 欧美天天弄| 色呦呦、国产精品| 亚欧高清在线| 欧美91变态| 伊人影院在线理论播放| 人人操人人搞人人草| 成人久久久精品| www.婷婷| 日韩免费福利在线观看| 东京热熟女亚洲视频网站| h无码动漫在线观看| 欧美天天在线| 久久久999日本大片| 极品色| 97看操| 欧美一级做a爰片免费视频| 午夜经典| 久插不卡| 宅男午夜在线视频| 亚洲日韩一区电影| 免费一级黄色录像影片| 欧美综合中文| 绑缚麻绳人妻寝取完整版| 人人操人人叉人人插人人| 91欧| 91五月天| 67914在线精品观看| 无码丰满熟妇一区二区浪潮AV| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 男人天堂站| 激情干在线| 青草一区二区| 男人天堂 天天射| 国产欧美日韩在线观看麻豆传媒公司| 婷婷去俺也去六月色| dy888午夜老子影视达达兔| 人妻无码久久一区二区三区免费| 天天日夜夜爽| 抽插无码高清一区| 91午夜无码| 在线观看中文字幕| 加勒比色99999| 亚州色站 日韩电影| 开心五月激情网| 国产自产一区视频在线| 免费A片三p视频| 99re6在线视频播放免费精品| 加勒比伊人影院| 大香蕉伊人网WWWn0n| 国产欧美亚洲精品a第2页| 欧美色www亚洲国产阿娇要播| 99福利社| 久久精品成人一区二区三区蜜臀 | 波多野42部激情无码喷潮| 先锋女优在线观看视频| 中文字幕一二三av| 后入式福利| 日本大香蕉| 夜夜高潮夜夜爽| 天综合网| 人夜夜精品网站香蕉嫩草| 成人午夜无码视频| 高清在线偷拍自拍视频| 亚洲成人免费电影| 免费观看的av| AA丁香综合激情| 91日本在线观看| 久久久国产成人一区二区三区在线| 强奸乱伦大香蕉| 国产在线强奸视频| 精品成人亚洲午夜电影| 免费毛片在线播放| A久久| 亚洲五月丁香花狠狠干一区二区三区 | 久久久久久久久成人av解说| 乳欲人妻办公室奶水| 日韩性爱视频在线免费观看| 久久久久9999| 亚洲 日韩 欧美 国产综合体| 99热精品在线播放| 夜夜騷av、一區二區| 日韩在线97| 使劲用力艹少妇视频一区二区| 国产丰满熟夫69mpp| 嗯嗯啊啊用力视频免费| 亚洲情色在线| 九t超碰| 超碰在线一区二区| 久久免费99精品久久久久久| 国产理论视频在线播放| 日本一级性爱| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 美女爽到高潮91| 色97干| 久久永久无码人妻视频| 亚洲日韩精品一区视频在线| 超碰精品在线| 亚洲中文人妻色| 欧美亚洲AN| 四虎影视国产精品| 手机午夜电影神马久久| 国产福利精品最新在线| 天天色悠悠激情| surenchaopeng| 激情久久日韩精品中文字幕麻豆| 97综合在线| 亚洲免费成人在线高清无码视频| 屌逼麻豆| 夜夜免费视频| 国产精品com| 性色av蜜臀av色欲aV| 国内精品久久久久影院亚洲| 无码欧美有限公司| 情色五月天就去干| 久操凹凸视频| 超碰综合色| 91熟女丨91老女人| 日韩AV熟女乱伦| 日韩av熟女一区二区三区成人| 亚洲视频二区| 边做饭边操逼逼| av凤凰久久久| 午夜福利区| 亚洲综合欧美| 久操精品网| 中文字幕精品久久久久人妻红杏ⅰ| 久久老熟女| 超碰色男人操熟女| 330dv亚洲成年视频网| 中文字幕三四五区| 蜜桃无码AV一区二区| 欧美激情欧美精品| 被男人吃奶很爽的毛片| 天天综合91在线| 久久久久久久综合,国产| 自拍偷拍第26| 亚洲。日韩。欧美| 极品色综合| 亚洲第一在线视频| 久久是精品| 亚洲国产91精品一区二区久久| 天天爽天天操| 精品人妻久久久久一区二区三区| 手机看片1024你懂的国产| 爱啪精品一区| 亚洲成人黄色在线观看| 大香蕉综合| 成人免费性爱视视| 九九久久一区二区三区| 天天综合网91| 天美国产精品| 懂色Av| 四虎永久在线精品免费网址| 欧美真人抽搐一进一出gif | 老熟女网站| 婷婷五月天基地| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 国产丝袜啪啪| 日韩精品99999| 久久九色| 动漫片子网站3黄| 日本人妻丰满熟妇久久久久久| 亚洲精品99| 国产精品丝袜在线| 67914亚洲精品| 在线不欧美| 一区二区激情国产熟女| 农村女一级毛卡片| 97精品视频网站| 八戒无码国产午夜福利| 超碰社区97| 五月天丁香网| 色综合国产在线观看| 九九九久千久久激情蜜桃在线看| 欧美激情性久久久久久| 加勒比AV天堂| 男人的天堂亚洲| 国产在线视频午夜精华在| 色爱综合网欧美| 免费一级特黄特色大片在线观看看| 麻豆一区在线| 青青草九九九九九| 岛国激情视频在线观看| 男人成人黄色视频在线观看免费下载| 超碰在线看| 日韩熟女三十乱伦| 人妻天天爽| 激情五月综合网| 无码动漫av中文字幕| 91精品又粗又猛又爽| 动漫爆乳3D奶水一区在线观看| 男人的天堂1024| 超碰97资源中文字幕| 国产黄片精品在线| 亚洲丝袜少妇在线| 日韩丝袜高跟制服在线观看| 偷窥自拍A片| 天天看天天日天天操| 操b网站亚洲无码| 一起草精品人妻| 免费操逼91| 9999久久久久| 亚州成人a∨| 蜜臀操逼黄色视频操的好爽| 国产肏逼网站| 超碰吊日色| 97欧美日韩中文| 九九综合久久| 狠狠操夜夜| 美女久久久| 日日日日做夜夜夜夜做无码97| 91男女啊啊啊| 男人亚洲91首页在线| 中日韩欧美精品无码AⅤ一区二区| 欧美人妻少妇| 日日玩天天干| 91欧美综合在线| 日韩熟女三十乱伦| 午夜毛片亚洲精品片国产久久久| 国产天天噜一噜久久久| AV99热18这里只有精品| 精爱久久| 久久熟女人| 日本高清久久| 丁香九月激情啪| 日本免费专区| 欧亚乱色熟女一区二区| 欧美黄色大片在线观看| 芊芊操逼视频无码| 色黄污美女啪啪啪免费网站| 97免费视频在线观看| 偷拍导航视频网站| 嗯嗯不要 视频| 精品熟妇视频一区二区| 成人无码欧美一级A片狼牙直播| 成熟熟女国产精品一区二区| 欧美在线l亚洲| 日韩欧亚太美不卡| 久久婷婷在线观看视频| 无码视频一区二区| 婷婷九月国产| 蜜臀99久久精品久久久久久| 男女香蕉一区二区| 亚洲色图欧美色图在线播放| 91制服丝袜中文字幕| 安微少妇操BBB| 2020中文字幕在线| 久久久久久久久久久久97| 视频在线97| 日本一卡二区在线| 天天操天天舔| 亚洲网站一区二区在线| av绯色| 岛国片国产成人亚洲播放| 人人操人人摸人人看人人干| 日韩乱伦影音先锋| 婷婷亚洲色| 激情五月综合网| 99少妇精品视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 精品免费一区| 99无码精品| 97天天日| 中文字幕第9页萱萱影音先锋| 久久久少妇| 国产精品久久久久无码Av网曝门| 在线综合 亚洲 欧美中文字幕| 日韩美女啪啪一区| 亚欧性爱ab| 俺去也婷婷| 偷拍网站久久男女男| 综合网欧| 欧洲站一级二级三级h| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 国内一区二区三区| 久久久久久加勒比| 亚洲 欧美 精品专区 极品| 久久久久久电影| 色综合网1| 91女在线观看| 日本黄色XXX| 97Ai亚洲| 黄色网址在线免费观看| 久久香蕉国产传媒一区剧情天美| 青青草白白色| 亚洲毛片久久| 午夜无遮挡男女啪啪视频| 性爱乱伦一区| 男人的天堂2018.| 91碰碰| 亚洲欧美天堂| 九九久久99| 久久伊人青青草| 青青操在线视频| 欧美亚洲国产91在线| 日韩欧美字幕亚洲一区二区 | 国产亚洲福利第一页丝袜| 国产不卡免费在线视频| 日韩三级久久久| 欧美在线|亚洲| 国产在线视频二区| 国产伊人自拍| 久久久久九九九九九| 日本在线观看网址| 日本在线一二| 超碰色美女| 欧美性爱第一区| 懂色AV一区二区三区| 破处bbq| 国产一进一出视频网站| 九九久久一区二区三区| 校园春色亚洲色图| 亚洲午夜av| 中国的操老妇女| 欧美一二三级精品在线| 亚洲,欧美,春色,另类| 蜜乳AV.COM| 激情四射婷婷四五月天| 麻豆精品.欧美精品.日韩精品.| 成人aⅴ一区二区三区| 久久色激情一区二区三区| 上床啊啊啊| 天堂8在线新版官网| 裸体美女久久久| 无码人妻精品一区二区三区99不卡| 五月丁香激情综合| 午夜福利 成人 91| 国产99 中文字幕日韩小视频| 五月天加勒比啪| 欧美日韩免费性爱| 极品AV网站在线观看| 日逼视频日本| 天天干夜夜肏| 手机看片1025| 97色综合中文网| 精品超碰中文在线| 欧美激情久操网| 熟妇高潮一区二区免费视频| 最新日本中文字幕| 大香蕉在线86| 亚洲精品无码成人久久久99| 欧美国产操逼| 久久五月综合| 久久大| 狠插 制服 自拍| 伊人黄色片| 国产欧洲精品亚洲午夜拍精品| 久久国内| 欧美日韩在线小说| 91伊人大香蕉| 日韩乱伦影音先锋| 91少妇高潮| 久久久久13| 九九精品99| 九九九草| 欧美超碰9798| 亚洲精品国产专区在线观看| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 色色色色综合网| 亚洲97超碰| 日han少妇无码| 把腿张开老子CAO烂你| 精品十八在线观看| 肉丝网站91| 国产 亚洲 丝袜 制服| 欧日韩一二三f区| 婷婷国产精品九区| 天天操天天舔| 国产精品久久aV| 死我十八禁| 按摩中文字幕| 亚洲 欧美日韩 另类| 97综合国产| 欧美亚洲成人在线一区二区三区| 伊人91| heyZO天然素人无码AⅤ专区| 97久久超碰日韩精品| 久操 高清| 超碰久热| 粉嫩不卡一区二区性爱| 色在线视频导航| 青青草原成人| 二对二中文字幕。| 亚码激情| 99操逼| 亚洲精品国产熟女| 测评在线观看AV| 亚洲激情深爱文学小说网站| 丝袜天堂| av在线人气| 激情色播| 欧美性爱在线无码| 风流老熟女一区二区三区l| 2024年最新色情网站在线观看| 亚洲图片欧美另类综合免费视频大大香| 99re这里只有精品中心播放 | 91天天综合在线观看| 久热精品色情| 久久伊人网视频一区二区三区| 岛国成人av在线播放网址| 高清国产性猛交xxxx乱大交| 成人性爱免费播放| 91情色| 加勒比综合88| 狠久久| 久热精品在线| 超碰色大香蕉| 国产成人五月天丁香花| 亚洲性综合11| 日韩欧美麻豆| 一区二区三区男人的天堂| 黄色片G G G| 日欧毛片久久| 午夜综合在线| 国产妇女精品视频青青草| 91新在线欧美| 白丝少妇一区二区| 久久这里| 成人天天爽| 日韩av情韩国爱禁区av一区二区| 色哟哟1区2区| 国产精品乱码久久久久久| AV中文字幕剧情1区2区3| 伊人 俄罗斯 a v| 亚洲综合性网址| 大香蕉欧美国产日韩高潮| 亚熟hd视频在线| 亚洲精品97中文字幕| 亚州男人的天堂| 色五月AV在线| 欧美高清91| 亚洲另类天堂| 女性喷水高潮在线观看| 国产精品久久久久久久久久梁医生| 黄色免费一级在线毛片| 国产隔壁老王影院在线| 亚洲最新av无码成人精品区| 国产精品自拍欧美在线| 色区久久| 99re9这里只有精品| 屌妞视频久久久久久久久久久久| 91丝袜美腿片| 天天拍夜夜| 亚洲精品国语在线播放| 中文字幕一区二区三区高清| 日韩性爱视频免费在线| 亚洲 图片 综合91| 啊啊啊不要啊啊受不了了视频在线| 中文字幕超碰CAO| 亚洲日本大香蕉1| 欧洲精品一级二级精品综合视频综合| 国产精品一区二区手机看片| 能直接看AV的网站| 97视频网站在线观看| 欧美综合在线91| 欧美亚洲在线| 人人操人人色人人摸| 国产精品蜜乳AV| 开心激情站| 欧美国产一区二区三区麻豆传媒| 91操熟女视频| 国产精品 久久久精品一牛| 国产粉嫩出水在线播放| 中文字幕在线观看第二页| 亚洲天堂美臀在线| 国产精品com| 亚洲精品亚洲人成在线麻豆| 啊啊啊com| 韩国嫰模上门援交视频| 91精品无码久久久久久久| 日本在线播放不卡一区| 中文字幕乱碼在线| 欧美高清16| h4610国产人妻| 精品久久99| 欧美少妇高潮| 啪啪资源网| av操操不卡| 校园春色 亚洲| 日韩久久.一级黄色片| 欧美日韩情色一区二区| 男生通女生屁股| 18禁网站在线播放| 天天享受天天看| 亚洲综合在线第一页| AV无码久久久精品| 国产亚洲精品美女| 欧美一区二区三区互相| 97日本超碰综合| 美女黄页网站| 翔田千里av一区二区三区| 加勒比海成人视频网| www久久国产精品| 日韩另类色图| 97色综合中文网| 人人扣人人操| 蜜桃午夜视频一区二区| 在线无码操| 丰满人妻一区| 国产福利在线视频网站| 黑人与人妻| 久久精品中文字幕观看| 啊啊好多水| 岛国在线免费视频| 精品然女一区二区| 东京热视频网| 国产乱弄免费在线视频。| 欧美传媒| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | AV丝袜少妇| 人人看人人插| 色www精品视频在线观看| 成人性爱av| 夜夜福利| 另类一区| 欧美丝袜91| 日韩久久三区| 亚洲天天综合| 欧美日韩人人早| 高潮的A片激情扒开一区| 国产白丝在线| 激情干在线| 欧中美三级一区二区三区| 欧美日韩99| 诱惑网综合| 欧美综合第一| 亚洲精品啪视频| 夜夜黄| 天综合网| 国内偷自视频区视频综合| 久久国语| 91久久久久久| 亚洲AV无码乱码| 青木玲在线不卡| 97人人模人人爽人人| 啊啊嗯嗯好爽| 欧美性生活内射| 伊人色综合网电影| 青青在线视频日韩欧美| 热久日综合| 久久99精品视频| 国产精品不卡高清在线观看| 少妇精品久久久| 成人日韩欧美| 免费?级毛片无码?∨蜜芽试看| 婷婷精品国产欧美精品亚洲人人爽| 九九色逼| 人人摸.人人色| 91热热色| 青青草成人视频在线观看二区| 无码国产精品久久久久| 国产400孕妇孕交群| 9久久美女首页| 中文字幕一区日韩精| 91欧洲国产成人久久精品网站| 九九国产| 久久色激情一区二区三区| 综合免费无码中文| 天天综合网网欲色| 青青青草伊人精品| 熟妇亚洲一区二区三区| 性爱av在线免费观看| 成人av毛片在线观看| 亚洲人精品久久久| 日韩久久艹| 黑操B| 男男H黄动漫啪啪无遮挡网站| 91天天看| 日韩三级av片| 久久精品一区二区三区蜜桃臀| 嗯嗯嗯啊啊啊在线免费观看| 欧美啪啪女女| 少妇人妻好深太紧了vr91| 好爽视频在线观看视频 | 国内伊人久久久久久网站视频| 亚洲精品白丝| 91精品成人| 亚洲日韩一区电影| 国产精品免费视频人成| 国产黄色在线播放观看| 91亚洲欧美| 午夜经典| 久久久999国产精品| 天天内射| 欧美青青视频| 亚洲人妖网| 日本A级视频| 亚洲AV乱码专区国产噜噜亚洲| 色色色欧美| 亚洲国产欧美中日韩成人综合视频| 精品人体无圣光凹凸| 无码不卡八戒| 在线亚洲 欧美 日本专区| 99热| 欧美精品二区视频在线| 中文字幕97| 大香蕉伊人网| 在线视频97| 青春草莓视频在线观看网址| 中文字幕在线观| 亚洲在线欧美| 亚洲成a人v欧美综合天堂下载| 久久久久久久唑| 亚洲熟女av中文字幕| 97se亚洲综合自| 人爽不卡视频| 操国产高清| 国产主播福利| 青女在线| 久湿久久| 欧美性高潮| 欧美色另类| 男人天堂2017| 免费av高清无码| 无码丰满熟妇一区二区浪潮AV| 亚洲一区二区久久久久| 99精品视频在线观看免费| 日韩一性一交一A片俄罗斯| 国产强上视频在线观看| 国产成人久久久精品免费AV| 色婷婷综合网站| 久久久98网站免费视频| 超碰激情808| 久久超碰98| 国产精品一二三| 日韩射精| 吖在线不卡一区二区国产剧情| 美国一区二区三区视频| 在线观看精品国产免费| 亚洲欧美成人在线| 欧美亚洲综合色| 操人妻逼91| 综合97久久| 亚洲资源站| 欧美日韩午夜精品一区二区三区| 性在久久久久久| 色999亚洲人成色| 中文字幕一区二区三区人妻少妇在线| 日日夜夜草草草| 四虎精品亚洲| 超碰97人人cao| 黄色av片三级三级三级免费看| 婷婷五月天基地| 神马久久网| 激情在线青青操| 91精品微拍福利| 欧美国产日韩高清在线| 日韩AV一区二区三区三州三州| 成人久久久精品| 97超碰中文在线| AV不卡在线| 黄页18禁| 伊人在线大香蕉视频久久| 92一区二区| 亚洲欧美日韩精品久| 久久侵犯人妻爽爽爽| 色香综合天天影视综合 | 亚洲精品九九九九九九| 国产女s强制榨精视频| 五月丁香激情综合| av在线观看不卡网站| 99热这里只有精品9| 99热 按摩 日韩| 福利视频网站| 欧美很很操视频| 日韩美女,国产传媒,视频一区| 97资源久久| 色综合久| 九七毛片九九毛片| 69av一区二区三区| 麻豆久久久一区二区| 一区二区三区在线日韩影院观看| www.99色| 超碰爽人妻熟女Av| 夜夜欢天天干| 久久老子无码午夜伦不卡| 亚洲成人妻日韩在线| 欧美精品二区视频在线| 综合色图亚洲欧美| 欧美综合色| 亚洲欧美在线观看2021 | 91伊人久| 超碰在线974| 日韩欧美加勒比| 亚洲无码色| 久久久精选| 人人考人人摸人人干| 伊人96在线| 免费在线黄片视频| 亚洲精品一区二区免费在线观看| 黑人精品XXX一区一二区| 日韩美脚一区二区网站| 97视频在线播放| 色丁香五月婷婷| 九九热av| 性爱动态120秒| 花花AV导航| 丁香六月婷婷综合| 欧美天天干| 欧美性猛交美女自慰91| 国产精品96| 久久久久久久九九九九九九| 国产在线综合福利网站| 大香蕉手机在线视频| 日本影视久久免费| 中文字幕视频一区视频二区| 亚洲巨爆乳一区二区三区四季网| 国产精品一区二区在钱播放| 超碰在线人人射| 精品国产一区二区三区久久久蜜臀| 亚洲精品一区二区日本| 欧美色图偷拍另类| 人妻啪| 玖玖超碰熟| 色五月综合| 免费视频一二三区| 日日夜夜骚| 日韩亚洲中文有码视频| 熟妇高潮二区三区| 五月丁香网站| 成人五月天丁香激情综合| 久久中日麻豆| 熟女人妻一区二区三区| 综合色区偷拍| 国产精品熟女AV中文字幕在线播放| 黄视频免费| 亚洲在钱| 亚码激情| 亚洲伊人a线观看视频| 欧美一区二区三熟女剧情| 中文字幕 人妻不满 在线视频| 立川理惠被中出无码| 制服中出中文人人精品| 大香蕉啪啪网| 欧美激情视频在线一区| 综合网亚洲1| 国产人妻精品久久久一区二区三区 | 啊啊啊免费| 少妇极品熟妇人妻无码| 国产无套粉嫩白浆在| 狠狠婷婷亚洲中文综合久久| 九九av| 亚洲欧洲美腿丝袜| 人人摸人人叼| 日韩有码 一区二区三区| 久久久噜噜噜久久人妻| 人妻天天操天天爽视频免费| 日本操大逼| 97综合久久| 熟女高潮精品一区二区| 欧美日本久久精品一区 | 亚洲超碰综合网| 青青草视频久久| 永久免费发布性爱网| 国产老太乱伦一区| 亚洲情色 无码专区| 欧美日韩人人早| 能看的AV| 亚洲av影院在线观看| 国产强奸AV在线| 亚洲色电影在线| 久久久久久久综合,国产| 亚洲色性情三级| 91久久精品蜜臀| 日韩中文字幕在线视频观看| 国产成人 综合亚洲 天堂| 91欧美经典| 熟妇一区,二区,三区。| www.91欧美| 无码一区二区三区四区五区六区七区八区九区十区视频 | 女优免费一区二区永久| 911粉嫩人妻| 波多野42部无码喷潮在线观看| 97免费在线| 欧美丝袜中文字幕07在线| 日韩97视频| 美女主播色欲91抠b在线播放| 色av中文字| 久久,精品一二三| 操逼日韩无码 | 国产噜噜噜噜噜久久久久久久久| 99r九九| 人人天天欧洲| 99精品在线| 久久婷婷影院| 免费一级视频特黄色大片| 操逼片中文| 操逼逼中文字幕| 亚洲免费成人在线高清无码视频| 91福利网在线观看| 神马九九| 国产免费黄色一级大片| 久久老女人| 福利视频合集| 天天看天天日天天操| 久久超碰97| 东北女人操逼| av影片在线观看不卡| 久久久蜜桃臀无码视频| 亚洲国产97| 麻豆天美一区二区| 精品视频在线观看| 精品欧美老熟女一二区| 熟妇乱伦一区二区| 欧美 精品国产制服第一页| 69XX一中文字幕人妻91| 久久成人国产精品| 无码人妻精品一区二区中文| 天天看天天在线精品| 日本性爰一道本| 国产一级作爱毛片| 丁香九月激情啪| 天天干,天天日| 九色 人妻 大香蕉| 亚洲成人精品久久久| 熟女AV一区| 亚洲熟妇AV日韩熟妇在线| 草B在线| 97亚洲欧美| www.99色| 日本一区二区不卡精品| 九九色热| 成人女人国产| 日韩一级二级三级免费看完整版国语版 | 久久久久精| 色五月第四色| 91在线丝袜| 超碰色综合| 国产精品毛片?v一区二区三区 | 春色91| 久久亚洲中文字幕视频| 白天啪啪晚上啪啪视频| 久久激情网| 97 超碰 人人做 人人爱| 中文字幕伊人| 蜜桃久久一区二区| 香蕉久久AⅤ...| 97人人干| 亚洲国产中文字幕| 97视频在线观看免费高清| 天天日天天搞天天干| 精品久久久九九九孕妇| 五月丁香啪啪| 久久偷拍人| 9ⅰ久久久天天| 久久天堂| 天天日天天干天天整| 国产又黄又猛又粗又爽的网站| 天天色怡春院| 好吊色综合| 日韩一区二区高清在线观看的| 激情综合五月| 97操在线| 热99这里有精品综合久久| 国产高清MV操逼视频| 男人的天堂在线有码| 操逼无毒无码免费视频| 欧美色www亚洲国产阿娇要播| 婷婷AV一区二区三区| 肥臀熟女福利视频一区二区| 超碰综合97在线| 久久国产逼| 久久综合婷婷| 亚洲宗合网| 青娱乐999| 久久99久久99精品免视看婷婷| 性性欧美| 无码高清操逼| 人妻丝袜无 码视频专区| 97网址97| 亚洲高清无毛一区二区| 婷婷日韩一区二区三区中文字幕在线| 天天激色| 岛国激情视频软件| 日本裸体久久色噜噜| 亚洲男人天堂网站| 91在线精品| 熟女网站最新| 中文字幕人成乱码熟女香港| 欧州色图区| 欧美成人精品欧美一级乱黄一区二…| 精品一区二区综合熟妇| 九九英色视频| 国产品精品自在在线午夜免费| 超碰狠狠操| 密臀国产在线| 人妻中文字幕日韩电影| 日韩视频小说在线观看| 99久久精品无码一区二区毛片免费 | 看日韩操逼| 色网1| 国产精品爽爽v| 欧美日本天堂| 一级性爱啪啪视频| 天天舔九色婷婷| 国产精品高清2021在线| 97硬碰| 久综合国内精品自在自线| 亚洲影院小综合| 中文字幕高清精品一区| 一及黄久一点| 国产亚洲精品久久久久小| 极品内射| 国产女人高潮嗷嗷嗷叫小说 | 国产亚洲精品美女久久久久久2021| 天天综合欧美综合| 精品人妻1区| 天天综合网1| 国产精品欧美日韩久久| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 小说区 图片区色 综合区| ss久久| 国产v片在线免费观看| 97露脸精品丝袜| 色色色色日本| 国产成人啪一区二区| 国产精品国产拍高清AV| 日本精品一区二区不卡| 欧美熟女少妇| 久久av无码| 加勒比伊人综合| 99热只有这里有精品| 久久精品超碰| 日韩97视频!在线| 另类小说综合网| 国产精品午夜精品| www.狠狠| 中文字幕一区二区三区字幕| 欧美日韩天堂| 色情婷婷| 日本人妻伦在线中文字幕| 中亚黄色三级大片| 久热大香蕉| 亚洲在线网站| 日本精品九九九| 97超碰碰碰| 交换娇妻呻吟声不停中文字幕| 欧美 日韩第一性色| 亚洲最大91网| 国产日韩精品人妻久久久久色欲网站| 激情久久日韩精品中文字幕麻豆| 人妻久久久久久| 老熟女搡BBBB搡BBBB视频| 人妻 欧美亚洲| 97亚洲性爱| 国产美女mm131爽爽爽爽| 午夜毛片亚洲精品片国产久久久| 啊啊啊在线观看免费视频| **一级毛片国产| 中文字幕精品免费一区二区| 亚洲极品| 91av天美性媒精品视频| 韩国一级婬片A片AAAAA| 波多野结衣之双飞调教在线播放| 熟女91网| 天天摸夜夜摸| 色色五月婷| 岛国免费黄色网址| 好吊色综合| 好爽要喷了| 九九成人精品| 九九热视频在线观看| 91社操逼| 高清无码久操视频| a啊啊啊啊啊啊啊啊一区二区| 色欲人妻一区二区在线| 综合久久99| 国产99久久99热这里只有精品15| 强奸乱伦AV网址| 免费1级a做爰片观看| 加勒比综合88| 操淫穴亚洲五月丁香 | 大香蕉性欧美| 操逼内射干逼白丝91| 婷婷五月天色| 在线强奷到舒服的无码视频| 日本黄色精品专区网站| 欧美成人精品欧美一级乱黄一区二…| 亚洲色情在线影视| 亚州精品丝袜-不卡成人免费| 丁香五月婷婷基地| 色综合久| 风流老熟女一区二区三区l| 五月天久久综合网| 国产无码精品久久久久久| 久热伊人| 日韩BBN| 蜜桃臀一区二区三区久久| 91久久久老司机| 另类av综合久久| 国产精品熟女一区二区三区| 青青草影视蜜久久| 后入式五六区| 风骚少妇视频中文字幕| 亚州综合色图| 97超碰亚洲| 60秒免费小视频| 四虎视频在线观看| 神马久久久久久久久久久久| 嗯阿好爽好紧| 麻豆久久久久久久久丝袜 | 色老牛| 人妻少妇精品久久久| 国产成人天堂| 色天堂在线观看| 麻豆天美在线喷水AV| 日本熟妇色熟妇在线视频播放| av72网| 囯产精品强| 99国产精品自在自在| 麻豆a'v电影| 久草色在线观看| 国产999精品久久久| 日韩欧美女求操每天更新| 97精品在线视频| 97欧美精品| 秋霞网无码| 人人贴人人摸| 免费在线观看国内色片网站网址| 亚洲综合中文字幕有码| 欧美视频在线视频免费va| 天天操天天插|