{"id":141,"date":"2026-06-16T14:12:19","date_gmt":"2026-06-16T06:12:19","guid":{"rendered":"https:\/\/www.deartester.com\/index.php\/2026\/06\/16\/%e6%95%b4%e8%bd%a6%e9%80%9a%e8%ae%af%e4%b8%80%e8%87%b4%e6%80%a7%e6%b5%8b%e8%af%95%e6%96%b9%e6%a1%88%ef%bc%9a%e5%ae%9e%e6%88%98%e6%95%99%e7%a8%8b\/"},"modified":"2026-06-16T14:12:19","modified_gmt":"2026-06-16T06:12:19","slug":"%e6%95%b4%e8%bd%a6%e9%80%9a%e8%ae%af%e4%b8%80%e8%87%b4%e6%80%a7%e6%b5%8b%e8%af%95%e6%96%b9%e6%a1%88%ef%bc%9a%e5%ae%9e%e6%88%98%e6%95%99%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/www.deartester.com\/index.php\/2026\/06\/16\/%e6%95%b4%e8%bd%a6%e9%80%9a%e8%ae%af%e4%b8%80%e8%87%b4%e6%80%a7%e6%b5%8b%e8%af%95%e6%96%b9%e6%a1%88%ef%bc%9a%e5%ae%9e%e6%88%98%e6%95%99%e7%a8%8b\/","title":{"rendered":"\u6574\u8f66\u901a\u8baf\u4e00\u81f4\u6027\u6d4b\u8bd5\u65b9\u6848\uff1a\u5b9e\u6218\u6559\u7a0b"},"content":{"rendered":"<p><span leaf=\"\">\u57fa\u4e8e Python \u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u7cfb\u7edf\u5f00\u53d1\u2014\u2014\u5b9e\u6218\u6559\u7a0b<\/span><\/p>\n<h2 data-doubao-line=\"124\" data-doubao-column=\"13\" data-doubao-key=\"28\" style=\";\" data-pm-slice=\"0 0 []\"><span data-doubao-line=\"125\" data-doubao-column=\"17\" data-doubao-key=\"29\" style=\";\"><span leaf=\"\">\ud83c\udfaf<\/span><\/span><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">\u5e94\u7528\u573a\u666f\u4e0e\u6d4b\u8bd5\u76ee\u6807<\/span><\/span><\/h2>\n<h2 data-doubao-line=\"124\" data-doubao-column=\"13\" data-doubao-key=\"28\" style=\";\" data-pm-slice=\"0 0 []\"><span leaf=\"\"><br  \/><\/span><\/h2>\n<p data-doubao-line=\"130\" data-doubao-column=\"17\" data-doubao-key=\"31\" style=\";\"><span leaf=\"\">\u672c\u65b9\u6848\u9002\u7528\u4e8e<\/span><strong data-doubao-line=\"130\" data-doubao-column=\"42\" data-doubao-key=\"32\" style=\";\"><span leaf=\"\">\u6574\u8f66\u7f51\u7edc\u5f00\u53d1\u5b8c\u6210\u540e\u7684\u9a8c\u8bc1\u9636\u6bb5<\/span><\/strong><span leaf=\"\">\uff1a<\/span><\/p>\n<section><span data-doubao-line=\"135\" data-doubao-column=\"29\" data-doubao-key=\"36\" style=\";\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">1&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"136\" data-doubao-column=\"29\" data-doubao-key=\"37\" style=\";\"><span leaf=\"\">\u6574\u8f66\u7f51\u7edc\u67b6\u6784\u8bbe\u8ba1\u5b8c\u6210\uff0c\u5404ECU\u4e13\u4e1a\u8fdb\u5165\u5f00\u53d1\u9636\u6bb5<\/span><\/span><\/section>\n<section><span data-doubao-line=\"139\" data-doubao-column=\"29\" data-doubao-key=\"39\" style=\";\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">2&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"140\" data-doubao-column=\"29\" data-doubao-key=\"40\" style=\";\"><span leaf=\"\">\u8bd5\u5236\u8f66\u8f86\u88c5\u8f66\u5b8c\u6210\uff0c\u5404\u63a7\u5236\u5668\u8f6f\u4ef6\u5237\u5199\u5c31\u7eea<\/span><\/span><\/section>\n<section><span data-doubao-line=\"143\" data-doubao-column=\"29\" data-doubao-key=\"42\" style=\";\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">3&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"144\" data-doubao-column=\"29\" data-doubao-key=\"43\" style=\";\"><span leaf=\"\">\u901a\u8baf\u4e00\u81f4\u6027\u6d4b\u8bd5\u6b63\u5f0f\u542f\u52a8<\/span><\/span><\/section>\n<h3 data-doubao-line=\"149\" data-doubao-column=\"17\" data-doubao-key=\"44\" style=\";\"><span leaf=\"\">\u6838\u5fc3\u9a8c\u8bc1\u76ee\u6807<\/span><\/h3>\n<p data-doubao-line=\"150\" data-doubao-column=\"17\" data-doubao-key=\"45\" style=\";\"><span leaf=\"\">\u9a8c\u8bc1\u5404\u7f51\u6bb5\u5b9e\u9645\u53d1\u9001\u7684\u62a5\u6587ID\u4e0e\u6574\u8f66\u77e9\u9635\u5b9a\u4e49\u7684\u4e00\u81f4\u6027\uff0c\u5168\u9762\u6392\u67e5\u4ee5\u4e0b\u95ee\u9898\uff1a<\/span><\/p>\n<table><\/table>\n<table>\n<caption><\/caption>\n<colgroup>\n<col style=\"width: 287px;\"  \/>\n<col style=\"width: 287px;\"  \/><\/colgroup>\n<tbody>\n<tr>\n<td data-colwidth=\"287\">\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\">\u274c&nbsp;<span textstyle=\"\" style=\"color: #ff4c41;\">\u6f0f\u53d1\u68c0\u6d4b<\/span><\/span><\/p>\n<p data-doubao-line=\"155\" data-doubao-column=\"25\" data-doubao-key=\"49\" style=\";\"><span leaf=\"\">\u77e9\u9635\u5b9a\u4e49\u7684\u62a5\u6587\u672a\u5728\u5b9e\u9645\u603b\u7ebf\u4e0a\u51fa\u73b0<\/span><\/p>\n<\/td>\n<td data-colwidth=\"287\">\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\">\u274c&nbsp;<span textstyle=\"\" style=\"color: #ff4c41;\">\u9519\u53d1\u68c0\u6d4b<\/span><\/span><\/p>\n<p data-doubao-line=\"159\" data-doubao-column=\"25\" data-doubao-key=\"52\" style=\";\"><span leaf=\"\">\u62a5\u6587\u5c5e\u6027\uff08\u5e27\u683c\u5f0f\u3001DLC\u3001\u5468\u671f\uff09\u4e0d\u7b26\u5408\u5b9a\u4e49<\/span><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"287\">\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\">\u274c&nbsp;<span textstyle=\"\" style=\"color: #ff4c41;\">\u7f51\u5173\u6f0f\u8f6c\u53d1<\/span><\/span><\/p>\n<p data-doubao-line=\"163\" data-doubao-column=\"25\" data-doubao-key=\"55\" style=\";\"><span leaf=\"\">\u5e94\u8f6c\u53d1\u7684\u62a5\u6587\u672a\u5728\u76ee\u6807\u7f51\u6bb5\u51fa\u73b0<\/span><\/p>\n<\/td>\n<td data-colwidth=\"287\">\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\">\u274c&nbsp;<span textstyle=\"\" style=\"color: #ff4c41;\">\u591a\u53d1\u68c0\u6d4b<\/span><\/span><\/p>\n<p data-doubao-line=\"167\" data-doubao-column=\"25\" data-doubao-key=\"58\" style=\";\"><span leaf=\"\">\u603b\u7ebf\u51fa\u73b0\u77e9\u9635\u672a\u5b9a\u4e49\u7684\u5197\u4f59\u62a5\u6587<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<h2 data-doubao-line=\"175\" data-doubao-column=\"13\" data-doubao-key=\"60\" style=\";\" data-pm-slice=\"0 0 []\"><span data-doubao-line=\"176\" data-doubao-column=\"17\" data-doubao-key=\"61\" style=\";\"><span leaf=\"\">\ud83d\udcc8<\/span><\/span><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">\u6d4b\u8bd5\u65b9\u6848\u6f14\u8fdb\u5386\u7a0b<\/span><\/span><\/h2>\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"576\">\n<h3 data-doubao-line=\"186\" data-doubao-column=\"25\" data-doubao-key=\"67\" style=\"\" data-pm-slice=\"2 3 []\"><span leaf=\"\">\u7b2c\u4e00\u9636\u6bb5\uff1a\u7eaf\u4eba\u5de5\u68c0\u6d4b<\/span><\/h3>\n<p data-doubao-line=\"187\" data-doubao-column=\"25\" data-doubao-key=\"68\" style=\"\"><span leaf=\"\">\u6700\u539f\u59cb\u7684\u5de5\u4f5c\u65b9\u5f0f\u2014\u2014\u4eba\u5de5\u9010\u6761\u6bd4\u5bf9\u62a5\u6587<\/span><\/p>\n<p data-doubao-line=\"187\" data-doubao-column=\"25\" data-doubao-key=\"68\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: rgb(214, 168, 65);\">\u6548\u7387\u6781\u4f4e &nbsp;&nbsp;<\/span><\/span><span data-doubao-line=\"190\" data-doubao-column=\"29\" data-doubao-key=\"71\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: rgb(214, 168, 65);\">\u6613\u51fa\u9519 &nbsp;&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"191\" data-doubao-column=\"29\" data-doubao-key=\"72\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: rgb(214, 168, 65);\">\u67af\u71e5\u7e41\u91cd<\/span><\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"576\">\n<h3 data-doubao-line=\"201\" data-doubao-column=\"25\" data-doubao-key=\"77\" style=\"\" data-pm-slice=\"2 3 []\"><span leaf=\"\">\u7b2c\u4e8c\u9636\u6bb5\uff1aCANoe \u534a\u81ea\u52a8\u5206\u6790<\/span><\/h3>\n<p data-doubao-line=\"202\" data-doubao-column=\"25\" data-doubao-key=\"78\" style=\"\"><span leaf=\"\">\u501f\u52a9 CANoe \u5206\u6790\u529f\u80fd + CAPL \u7f16\u7a0b\u5b9e\u73b0\u534a\u81ea\u52a8\u5316<\/span><\/p>\n<p><span data-doubao-line=\"204\" data-doubao-column=\"29\" data-doubao-key=\"80\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: #d6a841;\">\u6548\u7387\u63d0\u5347 &nbsp;&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"205\" data-doubao-column=\"29\" data-doubao-key=\"81\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: #d6a841;\">License\u6210\u672c\u9ad8 &nbsp;&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"206\" data-doubao-column=\"29\" data-doubao-key=\"82\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: #d6a841;\">\u5b66\u4e60\u66f2\u7ebf\u9661\u5ced<\/span><\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"576\">\n<h3 data-doubao-line=\"216\" data-doubao-column=\"25\" data-doubao-key=\"87\" style=\"\" data-pm-slice=\"2 3 []\"><span leaf=\"\">\u7b2c\u4e09\u9636\u6bb5\uff1aPython \u5168\u81ea\u52a8\u5316\u65b9\u6848 \u2728<\/span><\/h3>\n<p data-doubao-line=\"217\" data-doubao-column=\"25\" data-doubao-key=\"88\" style=\"\"><span leaf=\"\">\u672c\u6587\u63a8\u8350\u65b9\u6848\u2014\u2014\u4f4e\u6210\u672c\u3001\u9ad8\u6548\u7387\u7684\u5168\u81ea\u52a8\u6d4b\u8bd5<\/span><\/p>\n<p><span data-doubao-line=\"219\" data-doubao-column=\"29\" data-doubao-key=\"90\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: #d6a841;\">\u96f6License\u6210\u672c &nbsp;&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"220\" data-doubao-column=\"29\" data-doubao-key=\"91\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: #d6a841;\">\u6570\u79d2\u5b8c\u6210\u6d4b\u8bd5 &nbsp;&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"221\" data-doubao-column=\"29\" data-doubao-key=\"92\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: #d6a841;\">\u81ea\u52a8\u751f\u6210\u62a5\u544a &nbsp;&nbsp;<\/span><\/span><\/span><span data-doubao-line=\"222\" data-doubao-column=\"29\" data-doubao-key=\"93\" style=\"\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;color: #d6a841;\">\u652f\u6301\u77e9\u9635\u76f4\u8bfb<\/span><\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 data-doubao-line=\"175\" data-doubao-column=\"13\" data-doubao-key=\"60\" style=\";\" data-pm-slice=\"0 0 []\"><span leaf=\"\"><br  \/><\/span><\/h2>\n<h4 data-doubao-line=\"229\" data-doubao-column=\"17\" data-doubao-key=\"95\" style=\"text-align: left;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 20px;\">\ud83d\udca1&nbsp;<\/span><span textstyle=\"\" style=\"font-size: 20px;color: #7b0c00;font-weight: bold;\">\u65b9\u6848\u4eae\u70b9<\/span><\/span><\/h4>\n<p data-doubao-line=\"230\" data-doubao-column=\"17\" data-doubao-key=\"96\" style=\";\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 18px;font-weight: bold;\">\u53ea\u9700\u4e09\u6b65\uff1a<\/span>&nbsp; &nbsp;&nbsp;<span textstyle=\"\" style=\"color: #0080ff;\">\u7f16\u5236\u6d4b\u8bd5\u7528\u4f8b<\/span>&nbsp;\u2192&nbsp;<span textstyle=\"\" style=\"color: #0080ff;\">\u5f55\u5236\u603b\u7ebf\u62a5\u6587<\/span>&nbsp;\u2192&nbsp;<span textstyle=\"\" style=\"color: #0080ff;\">\u4e00\u952e\u8fd0\u884c\u811a\u672c<\/span><\/span><\/p>\n<p data-doubao-line=\"231\" data-doubao-column=\"17\" data-doubao-key=\"97\" style=\";\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 15px;\">\u82e5\u516c\u53f8\u77e9\u9635\u683c\u5f0f\u89c4\u8303\uff0c\u8fde\u6d4b\u8bd5\u7528\u4f8b\u90fd\u65e0\u9700\u4eba\u5de5\u7f16\u5199\uff0c\u76f4\u63a5\u8bfb\u53d6\u77e9\u9635\u5373\u53ef\u8fd0\u884c\uff01<\/span><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<h2 data-doubao-line=\"237\" data-doubao-column=\"13\" data-doubao-key=\"99\" style=\";\" data-pm-slice=\"0 0 []\"><span data-doubao-line=\"238\" data-doubao-column=\"17\" data-doubao-key=\"100\" style=\";\"><span leaf=\"\">\ud83d\udccb<\/span><\/span><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u89c4\u8303<\/span><\/span><\/h2>\n<p data-doubao-line=\"242\" data-doubao-column=\"13\" data-doubao-key=\"101\" style=\";\"><span leaf=\"\">\u6d4b\u8bd5\u7528\u4f8b\u91c7\u7528\u6807\u51c6 Excel \u683c\u5f0f\uff0c\u4ee5\u4e0b\u4e3a\u62a5\u6587\u5b9a\u4e49\u5b57\u6bb5\u8bf4\u660e\uff1a<\/span><\/p>\n<table style=\";\">\n<caption><\/caption>\n<colgroup>\n<col  \/>\n<col  \/>\n<col  \/><\/colgroup>\n<thead>\n<tr style=\";\">\n<th style=\";\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;\">\u5b57\u6bb5\u540d<\/span><\/span><\/section>\n<\/th>\n<th style=\";\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;\">\u8bf4\u660e<\/span><\/span><\/section>\n<\/th>\n<th style=\";\">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;\">\u793a\u4f8b<\/span><\/span><\/section>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\";\">\n<td style=\";\">\n<section><span leaf=\"\">ID<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">\u62a5\u6587ID\uff08\u5341\u516d\u8fdb\u5236\uff09<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">0x123<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\";\">\n<td style=\";\">\n<section><span leaf=\"\">\u62a5\u6587\u53d1\u9001\u7c7b\u578b<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">\u5468\u671f\u578b \/ \u4e8b\u4ef6\u578b<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\";\">\n<td style=\";\">\n<section><span leaf=\"\">\u671f\u671b\u5468\u671f(ms)<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">\u62a5\u6587\u53d1\u9001\u5468\u671f\uff08\u4ec5\u5468\u671f\u578b\uff09<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\";\">\n<td style=\";\">\n<section><span leaf=\"\">\u671f\u671bDLC<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">\u6570\u636e\u957f\u5ea6\u7f16\u7801<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\";\">\n<td style=\";\">\n<section><span leaf=\"\">BCAN\/PCAN\/CCAN\/ICAN<\/span><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">\u5404\u7f51\u6bb5\u914d\u7f6e\uff0c\u683c\u5f0f\uff1a<\/span><strong data-doubao-line=\"276\" data-doubao-column=\"60\" data-doubao-key=\"129\" style=\";\"><span leaf=\"\">A\/B\/C<\/span><\/strong><\/section>\n<\/td>\n<td style=\";\">\n<section><span leaf=\"\">FaSong\/CAN\/BCM<\/span><\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4 data-doubao-line=\"284\" data-doubao-column=\"17\" data-doubao-key=\"132\" style=\";\"><span leaf=\"\">\ud83d\udd0d&nbsp;<span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">\u7f51\u6bb5\u914d\u7f6e\u683c\u5f0f\u8be6\u89e3 (A\/B\/C)<\/span><\/span><\/h4>\n<table>\n<caption><\/caption>\n<colgroup>\n<col style=\"width: 191px;\"  \/>\n<col style=\"width: 191px;\"  \/>\n<col style=\"width: 191px;\"  \/><\/colgroup>\n<tbody>\n<tr>\n<td data-colwidth=\"191\">\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(0, 128, 255);\">A &#8211; \u53d1\u9001\u65b9\u5411<\/span><\/span><\/p>\n<p><strong data-doubao-line=\"289\" data-doubao-column=\"29\" data-doubao-key=\"137\" style=\";\"><span leaf=\"\">FaSong<\/span><\/strong><span leaf=\"\">\uff1a\u6e90\u5934\u53d1\u9001<\/span><span leaf=\"\"><br  \/><\/span><strong data-doubao-line=\"290\" data-doubao-column=\"29\" data-doubao-key=\"139\" style=\";\"><span leaf=\"\">JieShou<\/span><\/strong><span leaf=\"\">\uff1a\u7f51\u5173\u8f6c\u53d1<\/span><\/p>\n<\/td>\n<td data-colwidth=\"191\">\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(0, 128, 255);\">B &#8211; \u5e27\u7c7b\u578b<\/span><\/span><\/p>\n<p><strong data-doubao-line=\"296\" data-doubao-column=\"29\" data-doubao-key=\"143\" style=\";\"><span leaf=\"\">CAN<\/span><\/strong><span leaf=\"\">\uff1a\u6807\u51c6CAN\u5e27<\/span><span leaf=\"\"><br  \/><\/span><strong data-doubao-line=\"297\" data-doubao-column=\"29\" data-doubao-key=\"145\" style=\";\"><span leaf=\"\">CANFD<\/span><\/strong><span leaf=\"\">\uff1aCAN FD\u5e27<\/span><\/p>\n<\/td>\n<td data-colwidth=\"191\">\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\"><span textstyle=\"\" style=\"color: rgb(0, 128, 255);\">C &#8211; \u63a7\u5236\u5668<\/span><\/span><\/p>\n<p><span leaf=\"\">\u53d1\u9001ECU\u540d\u79f0<\/span><span leaf=\"\"><br  \/><\/span><span leaf=\"\">\u5982\uff1a<span textstyle=\"\" style=\"font-size: 15px;\">BCM\u3001ECM\u3001ABS<\/span><\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<h2 data-doubao-line=\"313\" data-doubao-column=\"13\" data-doubao-key=\"151\" style=\";\" data-pm-slice=\"0 0 []\"><span data-doubao-line=\"314\" data-doubao-column=\"17\" data-doubao-key=\"152\" style=\";\"><span leaf=\"\">\ud83d\udcca<\/span><\/span><span leaf=\"\"><span textstyle=\"\" style=\"color: #0080ff;font-weight: bold;\">\u5b8c\u6574\u6574\u8f66\u901a\u8baf\u77e9\u9635\u6d4b\u8bd5\u7528\u4f8b\u8868<\/span><\/span><\/h2>\n<p data-doubao-line=\"318\" data-doubao-column=\"13\" data-doubao-key=\"153\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span leaf=\"\">\u4ee5\u4e0b\u4e3a\u5b8c\u6574\u7684\u6574\u8f66\u901a\u8baf\u77e9\u9635\u6d4b\u8bd5\u7528\u4f8b\u8868\u683c\uff08\u5168\u90e8\u6570\u636e\u5c55\u793a\uff09\uff1a<\/span><\/p>\n<p><span data-doubao-line=\"321\" data-doubao-column=\"17\" data-doubao-key=\"155\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span data-doubao-line=\"322\" data-doubao-column=\"21\" data-doubao-key=\"156\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><\/span><span leaf=\"\">FaSong = \u6e90\u5934\u53d1\u9001<\/span><\/span><span data-doubao-line=\"325\" data-doubao-column=\"17\" data-doubao-key=\"157\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span data-doubao-line=\"326\" data-doubao-column=\"21\" data-doubao-key=\"158\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><\/span><span leaf=\"\">JieShou = \u7f51\u5173\u8f6c\u53d1<\/span><\/span><\/p>\n<table style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<thead>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<th data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">ID<\/span><\/span><\/section>\n<\/th>\n<th data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">\u7c7b\u578b<\/span><\/span><\/section>\n<\/th>\n<th data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">\u5468\u671f(ms)<\/span><\/span><\/section>\n<\/th>\n<th data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">DLC<\/span><\/span><\/section>\n<\/th>\n<th style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">BCAN<\/span><\/span><\/section>\n<\/th>\n<th style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">PCAN<\/span><\/span><\/section>\n<\/th>\n<th style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">CCAN<\/span><\/span><\/section>\n<\/th>\n<th style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"font-size: 12px;color: #021eaa;\">ICAN<\/span><\/span><\/section>\n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x001<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x002<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x003<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">20<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">ECM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x004<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">20<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">ABS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x005<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">50<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">ICM<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x006<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u4e8b\u4ef6\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">&#8211;<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x007<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">100<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">AC<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x008<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">PEPS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x009<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">500<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">TCU<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x00A<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">1000<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">BMS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x00B<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u4e8b\u4ef6\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">&#8211;<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">SRS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x00C<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">200<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">MCU<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x010<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x011<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">20<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">64<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">ADAS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x012<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">32<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">ESC<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x013<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">50<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">16<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">EPB<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x014<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">16<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">SAS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x015<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">100<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">Cluster<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x016<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x017<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">20<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">ECM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x018<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">50<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">TCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x019<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">EMS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x01A<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">100<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">HVAC<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x01B<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">200<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">OBC<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x01C<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">500<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">VCU<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x01D<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">1000<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x01E<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u4e8b\u4ef6\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">&#8211;<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">DCDC<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x01F<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u4e8b\u4ef6\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">&#8211;<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">ESP<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x020<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x021<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">20<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">ECM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x022<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">50<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">ABS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x023<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">100<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">ICM<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x024<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">200<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">AC<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x025<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">500<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">PEPS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x026<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">1000<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">TCU<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x027<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u4e8b\u4ef6\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">&#8211;<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">BMS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x028<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u4e8b\u4ef6\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">&#8211;<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">SRS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x029<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">MCU<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x02A<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">20<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CAN<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x100<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">10<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">16<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">VCU<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x101<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">20<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">32<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">BCM<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x102<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">50<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">64<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">ADAS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x103<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">100<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">16<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">ESC<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x104<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">200<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">SAS<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x105<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">500<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">EPB<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">JieShou<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">GW<\/span><\/section>\n<\/td>\n<\/tr>\n<tr style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<td data-colwidth=\"52\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">0x106<\/span><\/section>\n<\/td>\n<td data-colwidth=\"56\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u5468\u671f\u578b<\/span><\/section>\n<\/td>\n<td data-colwidth=\"62\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">1000<\/span><\/section>\n<\/td>\n<td data-colwidth=\"49\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">8<\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\"><br  \/><\/span><\/section>\n<\/td>\n<td style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">FaSong<\/span><\/section>\n<section><span leaf=\"\">CANFD<\/span><\/section>\n<section><span leaf=\"\">Cluster<\/span><\/section>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4 data-doubao-line=\"811\" data-doubao-column=\"17\" data-doubao-key=\"587\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span leaf=\"\"><br  \/><\/span><\/h4>\n<h4 data-doubao-line=\"811\" data-doubao-column=\"17\" data-doubao-key=\"587\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span leaf=\"\">\ud83d\udcdd \u8868\u683c\u7edf\u8ba1\u4fe1\u606f<\/span><\/h4>\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"143\">\n<p data-pm-slice=\"0 0 []\" style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #ffa900;font-weight: bold;\">45<\/span><\/span><\/p>\n<p style=\"text-align: center;\"><span leaf=\"\">\u62a5\u6587\u603b\u6570<\/span><\/p>\n<\/td>\n<td data-colwidth=\"143\">\n<p data-pm-slice=\"0 0 []\" style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #3da742;font-weight: bold;\">37<\/span><\/span><\/p>\n<p style=\"text-align: center;\"><span leaf=\"\">\u5468\u671f\u578b\u62a5\u6587<\/span><\/p>\n<\/td>\n<td data-colwidth=\"143\">\n<p data-pm-slice=\"0 0 []\" style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #0052ff;font-weight: bold;\">8<\/span><\/span><\/p>\n<p style=\"text-align: center;\"><span leaf=\"\">\u4e8b\u4ef6\u578b\u62a5\u6587<\/span><\/p>\n<\/td>\n<td data-colwidth=\"143\">\n<p data-pm-slice=\"0 0 []\" style=\"text-align: center;\"><span leaf=\"\"><span textstyle=\"\" style=\"color: #ac39ff;font-weight: bold;\">4<\/span><\/span><\/p>\n<p style=\"text-align: center;\"><span leaf=\"\">\u7f51\u6bb5\u6570\u91cf<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<h2 data-doubao-line=\"835\" data-doubao-column=\"13\" data-doubao-key=\"602\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span data-doubao-line=\"836\" data-doubao-column=\"17\" data-doubao-key=\"603\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u2699\ufe0f<\/span><\/span><span leaf=\"\">\u6280\u672f\u9009\u578b\u4e0e\u5b9e\u73b0\u8def\u5f84<\/span><\/h2>\n<h3 data-doubao-line=\"842\" data-doubao-column=\"21\" data-doubao-key=\"606\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u6838\u5fc3\u516c\u5f0f<\/span><\/h3>\n<p><span data-doubao-line=\"845\" data-doubao-column=\"29\" data-doubao-key=\"609\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">BLF\u65e5\u5fd7<\/span><\/span><span data-doubao-line=\"846\" data-doubao-column=\"29\" data-doubao-key=\"610\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">+<\/span><\/span><span data-doubao-line=\"847\" data-doubao-column=\"29\" data-doubao-key=\"611\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">Excel\u7528\u4f8b<\/span><\/span><span data-doubao-line=\"848\" data-doubao-column=\"29\" data-doubao-key=\"612\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u00d7<\/span><\/span><span data-doubao-line=\"849\" data-doubao-column=\"29\" data-doubao-key=\"613\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">Python\u811a\u672c<\/span><\/span><span data-doubao-line=\"850\" data-doubao-column=\"29\" data-doubao-key=\"614\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">=<\/span><\/span><span data-doubao-line=\"851\" data-doubao-column=\"29\" data-doubao-key=\"615\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u6d4b\u8bd5\u62a5\u544a<\/span><\/span><\/p>\n<h3 data-doubao-line=\"856\" data-doubao-column=\"17\" data-doubao-key=\"616\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\"><br  \/><\/span><\/h3>\n<h3 data-doubao-line=\"856\" data-doubao-column=\"17\" data-doubao-key=\"616\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\"><span textstyle=\"\" style=\"color: #7b0c00;\">Python vs LabVIEW \u9009\u578b\u7b56\u7565<\/span><\/span><\/h3>\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"287\">\n<h4 data-doubao-line=\"860\" data-doubao-column=\"25\" data-doubao-key=\"619\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span leaf=\"\">\ud83d\udda5\ufe0f \u63a8\u8350\u4f7f\u7528 LabVIEW \u7684\u573a\u666f<\/span><\/h4>\n<ul style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" class=\"list-paddingleft-1\">\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713 \u5927\u578b\u590d\u6742\u7cfb\u7edf\u5f00\u53d1<\/span><\/section>\n<\/li>\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713 \u7ed3\u5408\u786c\u4ef6\u7684\u5b9e\u65f6\u6027\u8981\u6c42<\/span><\/section>\n<\/li>\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713 \u9700\u8981\u9891\u7e41\u5fae\u8c03\u4fee\u6539<\/span><\/section>\n<\/li>\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713 HIL\u4eff\u771f\u6d4b\u8bd5\u7cfb\u7edf<\/span><\/section>\n<\/li>\n<\/ul>\n<\/td>\n<td data-colwidth=\"287\">\n<h4 data-doubao-line=\"869\" data-doubao-column=\"25\" data-doubao-key=\"626\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span leaf=\"\">\ud83d\udc0d \u63a8\u8350\u4f7f\u7528 Python \u7684\u573a\u666f \u2705<\/span><\/h4>\n<ul style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" class=\"list-paddingleft-1\">\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713 \u529f\u80fd\u7eaf\u7cb9\u4e14\u4e13\u6ce8<\/span><\/section>\n<\/li>\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713 \u4e00\u6b21\u6027\u5f00\u53d1\uff0c\u540e\u7eed\u5c11\u4fee\u6539<\/span><\/section>\n<\/li>\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713 \u7eaf\u8f6f\u4ef6\u6216\u7f51\u7edc\u76f8\u5173\u4efb\u52a1<\/span><\/section>\n<\/li>\n<li style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \">\n<section><span leaf=\"\">\u2713&nbsp;<\/span><strong data-doubao-line=\"874\" data-doubao-column=\"35\" data-doubao-key=\"632\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u672c\u9879\u76ee\uff1a\u62a5\u6587\u4e00\u81f4\u6027\u5206\u6790<\/span><\/strong><\/section>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" data-colwidth=\"287,287\">\n<h4 data-doubao-line=\"880\" data-doubao-column=\"21\" data-doubao-key=\"634\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span leaf=\"\">\ud83d\udca1 \u6838\u5fc3\u7406\u5ff5<\/span><\/h4>\n<p data-doubao-line=\"881\" data-doubao-column=\"21\" data-doubao-key=\"635\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u5728 AI \u65f6\u4ee3\uff0c\u6700\u6709\u4ef7\u503c\u7684\u4e0d\u662f\u4ee3\u7801\u672c\u8eab\uff0c\u800c\u662f<\/span><strong data-doubao-line=\"881\" data-doubao-column=\"70\" data-doubao-key=\"636\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u529f\u80fd\u6a21\u578b\u4e0e\u7cfb\u7edf\u9700\u6c42\u67b6\u6784<\/span><\/strong><span leaf=\"\">\uff0c\u5c24\u5176\u662f\u4f01\u4e1a\u771f\u5b9e\u5de5\u4f5c\u573a\u666f\u4e0b\u7684\u529f\u80fd\u6a21\u578b\u3002\u4ee3\u7801\u53ef\u4ee5\u8ba9 AI \u751f\u6210\uff0c\u4f46\u7cfb\u7edf\u8bbe\u8ba1\u601d\u7ef4\u65e0\u6cd5\u66ff\u4ee3\u3002<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<h2 data-doubao-line=\"888\" data-doubao-column=\"13\" data-doubao-key=\"638\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \" data-pm-slice=\"0 0 []\"><span data-doubao-line=\"889\" data-doubao-column=\"17\" data-doubao-key=\"639\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\ud83d\udcbb<\/span><\/span><span leaf=\"\">\u5b8c\u6574\u6e90\u4ee3\u7801\u5b9e\u73b0<\/span><\/h2>\n<h3 data-doubao-line=\"895\" data-doubao-column=\"21\" data-doubao-key=\"642\" style=\"  ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; \"><span leaf=\"\">\u73af\u5883\u4f9d\u8d56\uff1a<\/span><span style=\"color: rgb(74, 222, 128);font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(31, 41, 55);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;\" data-pm-slice=\"0 0 []\"><span leaf=\"\">pip install python-can<\/span><\/span><span leaf=\"\">&nbsp; &nbsp;&nbsp;<\/span><span style=\"color: rgb(74, 222, 128);font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, monospace;font-size: 14px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(31, 41, 55);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;\" data-pm-slice=\"0 0 []\"><span leaf=\"\">pip install openpyxl<\/span><\/span><\/h3>\n<section class=\"code-snippet__fix code-snippet__js\">\n<ul class=\"code-snippet__line-index code-snippet__js\">\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<\/ul>\n<pre class=\"code-snippet__js\" data-lang=\"python\"><code><span leaf=\"\"><span class=\"code-snippet__comment\">#!\/usr\/bin\/env python3<\/span><\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__comment\"># -*- coding: utf-8 -*-<\/span><\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__string\">\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">\u6574\u8f66CAN\u62a5\u6587\u53d1\u9001\u4e0e\u7f51\u5173\u8f6c\u53d1\u6d4b\u8bd5\u5de5\u5177<\/span><\/code><code><span leaf=\"\">\u529f\u80fd\u8bf4\u660e\uff1a<\/span><\/code><code><span leaf=\"\">- \u8bfb\u53d6BLF\u65e5\u5fd7\u6587\u4ef6\u548cExcel\u6d4b\u8bd5\u7528\u4f8b\uff08\u62a5\u6587\u5b9a\u4e49sheet\uff09<\/span><\/code><code><span leaf=\"\">- \u6309ID+\u7f51\u6bb5\u7edf\u8ba1\u5b9e\u9645\u62a5\u6587\u4fe1\u606f<\/span><\/code><code><span leaf=\"\">- \u6267\u884c\u6f0f\u53d1\u3001\u591a\u53d1\u3001\u5e27\u683c\u5f0f\u3001DLC\u3001\u5468\u671f\u7b49\u5168\u9762\u68c0\u67e5<\/span><\/code><code><span leaf=\"\">- \u751f\u6210\u5305\u542b\u6d4b\u8bd5\u6982\u8981\u3001\u7efc\u5408\u68c0\u67e5\u3001\u591a\u53d1\u68c0\u67e5\u7684Excel\u62a5\u544a<\/span><\/code><code><span leaf=\"\">\u4f9d\u8d56\u5e93\uff1a<\/span><\/code><code><span leaf=\"\">&nbsp; python-can - CAN\u603b\u7ebf\u6570\u636e\u5904\u7406<\/span><\/code><code><span leaf=\"\">&nbsp; openpyxl &nbsp; - Excel\u6587\u4ef6\u64cd\u4f5c<\/span><\/code><code><span leaf=\"\">\u4f7f\u7528\u65b9\u6cd5\uff1a<\/span><\/code><code><span leaf=\"\">&nbsp; python can_gateway_test.py [--blf ] [--xlsx ]<\/span><\/code><code><span leaf=\"\">\u82e5\u4e0d\u6307\u5b9a\u53c2\u6570\uff0c\u81ea\u52a8\u9009\u53d6\u5f53\u524d\u76ee\u5f55\u4e0b\u552f\u4e00\u7684.blf\u548c.xlsx\u6587\u4ef6\u3002<\/span><\/code><code><span leaf=\"\">\"\"\"<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">import<\/span>&nbsp;argparse<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">import<\/span>&nbsp;sys<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">from<\/span>&nbsp;pathlib&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;Path<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">from<\/span>&nbsp;datetime&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;datetime<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">from<\/span>&nbsp;collections&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;defaultdict<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">from<\/span>&nbsp;statistics&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;median, stdev, mean<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">try<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;can<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">from<\/span>&nbsp;can&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;BLFReader<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">except<\/span>&nbsp;ImportError:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__built_in\">print<\/span>(<span class=\"code-snippet__string\">\"\u8bf7\u5b89\u88c5 python-can \u5e93: pip install python-can\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; sys.exit(<span class=\"code-snippet__number\">1<\/span>)<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">try<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">from<\/span>&nbsp;openpyxl&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;Workbook, load_workbook<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">from<\/span>&nbsp;openpyxl.styles&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;PatternFill, Font, Alignment<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">from<\/span>&nbsp;openpyxl.utils&nbsp;<span class=\"code-snippet__keyword\">import<\/span>&nbsp;get_column_letter<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">except<\/span>&nbsp;ImportError:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__built_in\">print<\/span>(<span class=\"code-snippet__string\">\"\u8bf7\u5b89\u88c5 openpyxl \u5e93: pip install openpyxl\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; sys.exit(<span class=\"code-snippet__number\">1<\/span>)<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__comment\"># ========================== \u56fa\u5b9a\u901a\u9053\u6620\u5c04 ==========================<\/span><\/span><\/code><code><span leaf=\"\">CHANNEL_MAP = {<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"0\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"BCAN\"<\/span>,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"1\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"PCAN\"<\/span>,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"2\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"CCAN\"<\/span>,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"3\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"ICAN\"<\/span>,<\/span><\/code><code><span leaf=\"\">}<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__comment\"># ========================== \u8f85\u52a9\u51fd\u6570 ==========================<\/span><\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">hex_id_str<\/span>(<span class=\"code-snippet__params\">can_id:&nbsp;<\/span><span class=\"code-snippet__params\"><span class=\"code-snippet__built_in\">int<\/span><\/span>) -&gt;&nbsp;<span class=\"code-snippet__built_in\">str<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u5c06CAN ID\u8f6c\u4e3a\u4e09\u4f4d\u5341\u516d\u8fdb\u5236\u5b57\u7b26\u4e32\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__string\">f\"0x<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{can_id:03X}<\/span><\/span><span class=\"code-snippet__string\">\"<\/span><\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">parse_a_b_c<\/span>(<span class=\"code-snippet__params\">cell_value:&nbsp;<\/span><span class=\"code-snippet__params\"><span class=\"code-snippet__built_in\">str<\/span><\/span>) -&gt;&nbsp;<span class=\"code-snippet__built_in\">tuple<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u89e3\u6790\u5f62\u5982 'FaSong\/CAN\/BCM' \u7684\u5355\u5143\u683c\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;cell_value:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">None<\/span>,&nbsp;<span class=\"code-snippet__literal\">None<\/span>,&nbsp;<span class=\"code-snippet__literal\">None<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; parts = cell_value.split(<span class=\"code-snippet__string\">'\/'<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__built_in\">len<\/span>(parts) !=&nbsp;<span class=\"code-snippet__number\">3<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">None<\/span>,&nbsp;<span class=\"code-snippet__literal\">None<\/span>,&nbsp;<span class=\"code-snippet__literal\">None<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;parts[<span class=\"code-snippet__number\">0<\/span>].strip(), parts[<span class=\"code-snippet__number\">1<\/span>].strip(), parts[<span class=\"code-snippet__number\">2<\/span>].strip()<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">calc_period_stats<\/span>(<span class=\"code-snippet__params\">timestamps_ms:&nbsp;<\/span><span class=\"code-snippet__params\"><span class=\"code-snippet__built_in\">list<\/span><\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u8ba1\u7b97\u5468\u671f\u7edf\u8ba1\u91cf\uff1a\u4e2d\u4f4d\u6570\u3001\u5e73\u5747\u503c\u3001\u6807\u51c6\u5dee\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__built_in\">len<\/span>(timestamps_ms) &lt;&nbsp;<span class=\"code-snippet__number\">2<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">None<\/span>,&nbsp;<span class=\"code-snippet__literal\">None<\/span>,&nbsp;<span class=\"code-snippet__literal\">None<\/span>, []<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; periods = [timestamps_ms[i] - timestamps_ms[i-<span class=\"code-snippet__number\">1<\/span>]&nbsp;<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;i&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;<span class=\"code-snippet__built_in\">range<\/span>(<span class=\"code-snippet__number\">1<\/span>,&nbsp;<span class=\"code-snippet__built_in\">len<\/span>(timestamps_ms))]<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; med = median(periods)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; avg = mean(periods)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; std = stdev(periods)&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__built_in\">len<\/span>(periods) &gt;&nbsp;<span class=\"code-snippet__number\">1<\/span>&nbsp;<span class=\"code-snippet__keyword\">else<\/span>&nbsp;<span class=\"code-snippet__number\">0.0<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;med, avg, std, periods<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">check_period<\/span>(<span class=\"code-snippet__params\">periods, expected_cycle_ms<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u68c0\u67e5\u5468\u671f\u662f\u5426\u7b26\u5408\u89c4\u8303\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;expected_cycle_ms&nbsp;<span class=\"code-snippet__keyword\">is<\/span>&nbsp;<span class=\"code-snippet__literal\">None<\/span>&nbsp;<span class=\"code-snippet__keyword\">or<\/span>&nbsp;<span class=\"code-snippet__built_in\">len<\/span>(periods) ==&nbsp;<span class=\"code-snippet__number\">0<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">True<\/span>,&nbsp;<span class=\"code-snippet__literal\">None<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u65e0\u5468\u671f\u6837\u672c\u6216\u671f\u671b\u5468\u671f\u4e3a\u7a7a\"<\/span><\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; max_dev =&nbsp;<span class=\"code-snippet__built_in\">max<\/span>(<span class=\"code-snippet__built_in\">abs<\/span>(p - expected_cycle_ms)&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;p&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;periods)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; avg_period = mean(periods)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; abs_avg_err =&nbsp;<span class=\"code-snippet__built_in\">abs<\/span>(avg_period - expected_cycle_ms)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u5468\u671f\u8d8a\u77ed\uff0c\u5bb9\u5dee\u8d8a\u5c0f<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;expected_cycle_ms &lt;&nbsp;<span class=\"code-snippet__number\">10<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;abs_avg_err &gt;&nbsp;<span class=\"code-snippet__number\">1.0<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">False<\/span>, max_dev,&nbsp;<span class=\"code-snippet__string\">f\"\u5468\u671f\u5e73\u5747\u503c\u504f\u5dee<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{abs_avg_err:<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\"><span class=\"code-snippet__number\">.2<\/span><\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">f}<\/span><\/span><span class=\"code-snippet__string\">ms &gt; 1ms\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">else<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;abs_avg_err &gt; expected_cycle_ms *&nbsp;<span class=\"code-snippet__number\">0.05<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">False<\/span>, max_dev,&nbsp;<span class=\"code-snippet__string\">f\"\u5468\u671f\u5e73\u5747\u503c\u504f\u5dee<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{abs_avg_err:<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\"><span class=\"code-snippet__number\">.2<\/span><\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">f}<\/span><\/span><span class=\"code-snippet__string\">ms &gt; \u671f\u671b\u5468\u671f*5%\"<\/span><\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;max_dev &gt; expected_cycle_ms *&nbsp;<span class=\"code-snippet__number\">0.5<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">False<\/span>, max_dev,&nbsp;<span class=\"code-snippet__string\">f\"\u6700\u5927\u504f\u5dee<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{max_dev:<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\"><span class=\"code-snippet__number\">.2<\/span><\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">f}<\/span><\/span><span class=\"code-snippet__string\">ms &gt; \u671f\u671b\u5468\u671f*50%\"<\/span><\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">return<\/span>&nbsp;<span class=\"code-snippet__literal\">True<\/span>, max_dev,&nbsp;<span class=\"code-snippet__literal\">None<\/span><\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__comment\"># ========================== \u4e3b\u6d4b\u8bd5\u7c7b ==========================<\/span><\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">class<\/span>&nbsp;<span class=\"code-snippet__title\">CANGatewayTester<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">__init__<\/span>(<span class=\"code-snippet__params\">self, blf_path: Path, xlsx_path: Path<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.blf_path = blf_path<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.xlsx_path = xlsx_path<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.test_items = []<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.actual_stats = {}<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.definition_keys =&nbsp;<span class=\"code-snippet__built_in\">set<\/span>()<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">load_testcases<\/span>(<span class=\"code-snippet__params\">self<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u52a0\u8f7dExcel\u4e2d\u7684\u62a5\u6587\u5b9a\u4e49\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; wb = load_workbook(<span class=\"code-snippet__variable\">self<\/span>.xlsx_path, data_only=<span class=\"code-snippet__literal\">True<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__string\">\"\u62a5\u6587\u5b9a\u4e49\"<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;wb.sheetnames:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">raise<\/span>&nbsp;ValueError(<span class=\"code-snippet__string\">f\"Excel\u7f3a\u5c11'\u62a5\u6587\u5b9a\u4e49'sheet\"<\/span>)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ws = wb[<span class=\"code-snippet__string\">\"\u62a5\u6587\u5b9a\u4e49\"<\/span>]<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; headers = [cell.value&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;cell&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;ws[<span class=\"code-snippet__number\">1<\/span>]]<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; col_idx = {h: i+<span class=\"code-snippet__number\">1<\/span>&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;i, h&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;<span class=\"code-snippet__built_in\">enumerate<\/span>(headers)&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;h}<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;row&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;ws.iter_rows(min_row=<span class=\"code-snippet__number\">2<\/span>, values_only=<span class=\"code-snippet__literal\">True<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;row[<span class=\"code-snippet__number\">0<\/span>]:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">continue<\/span><\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; can_id =&nbsp;<span class=\"code-snippet__built_in\">int<\/span>(row[col_idx[<span class=\"code-snippet__string\">\"ID\"<\/span>]-<span class=\"code-snippet__number\">1<\/span>],&nbsp;<span class=\"code-snippet__number\">16<\/span>)&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__built_in\">isinstance<\/span>(row[col_idx[<span class=\"code-snippet__string\">\"ID\"<\/span>]-<span class=\"code-snippet__number\">1<\/span>],&nbsp;<span class=\"code-snippet__built_in\">str<\/span>)&nbsp;<span class=\"code-snippet__keyword\">else<\/span>&nbsp;<span class=\"code-snippet__built_in\">int<\/span>(row[col_idx[<span class=\"code-snippet__string\">\"ID\"<\/span>]-<span class=\"code-snippet__number\">1<\/span>])<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id_str = hex_id_str(can_id)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;seg&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;[<span class=\"code-snippet__string\">\"BCAN\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"PCAN\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"CCAN\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"ICAN\"<\/span>]:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cell_val = row[col_idx[seg]-<span class=\"code-snippet__number\">1<\/span>]<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;cell_val:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">continue<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; A, B, C = parse_a_b_c(<span class=\"code-snippet__built_in\">str<\/span>(cell_val))<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;A:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.test_items.append({<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"id\"<\/span>: can_id,&nbsp;<span class=\"code-snippet__string\">\"id_str\"<\/span>: id_str,&nbsp;<span class=\"code-snippet__string\">\"segment\"<\/span>: seg,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"expected_direction\"<\/span>: A,&nbsp;<span class=\"code-snippet__string\">\"expected_frame_type\"<\/span>: B,&nbsp;<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"expected_ecu\"<\/span>: C,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.definition_keys.add((id_str, seg))<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">parse_blf<\/span>(<span class=\"code-snippet__params\">self<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u89e3\u6790BLF\u6587\u4ef6\uff0c\u7edf\u8ba1\u62a5\u6587\u4fe1\u606f\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.actual_stats = defaultdict(<span class=\"code-snippet__keyword\">lambda<\/span>: {<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"timestamps_ms\"<\/span>: [],&nbsp;<span class=\"code-snippet__string\">\"frame_types\"<\/span>:&nbsp;<span class=\"code-snippet__built_in\">set<\/span>(),<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"dlc_values\"<\/span>: [],&nbsp;<span class=\"code-snippet__string\">\"count\"<\/span>:&nbsp;<span class=\"code-snippet__number\">0<\/span>,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; })<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">with<\/span>&nbsp;BLFReader(<span class=\"code-snippet__variable\">self<\/span>.blf_path)&nbsp;<span class=\"code-snippet__keyword\">as<\/span>&nbsp;reader:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;msg&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;reader:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; segment = CHANNEL_MAP.get(<span class=\"code-snippet__built_in\">str<\/span>(msg.channel),&nbsp;<span class=\"code-snippet__string\">f\"UNKNOWN_<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{msg.channel}<\/span><\/span><span class=\"code-snippet__string\">\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id_str = hex_id_str(msg.arbitration_id)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key = (id_str, segment)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stat =&nbsp;<span class=\"code-snippet__variable\">self<\/span>.actual_stats[key]<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stat[<span class=\"code-snippet__string\">\"timestamps_ms\"<\/span>].append(msg.timestamp *&nbsp;<span class=\"code-snippet__number\">1000.0<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stat[<span class=\"code-snippet__string\">\"frame_types\"<\/span>].add(<span class=\"code-snippet__string\">\"CANFD\"<\/span>&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__built_in\">getattr<\/span>(msg,&nbsp;<span class=\"code-snippet__string\">\"is_fd\"<\/span>,&nbsp;<span class=\"code-snippet__literal\">False<\/span>)&nbsp;<span class=\"code-snippet__keyword\">else<\/span>&nbsp;<span class=\"code-snippet__string\">\"CAN\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stat[<span class=\"code-snippet__string\">\"dlc_values\"<\/span>].append(msg.dlc)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stat[<span class=\"code-snippet__string\">\"count\"<\/span>] +=&nbsp;<span class=\"code-snippet__number\">1<\/span><\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;key, stat&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;<span class=\"code-snippet__variable\">self<\/span>.actual_stats.items():<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stat[<span class=\"code-snippet__string\">\"timestamps_ms\"<\/span>].sort()<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; med, avg, std, periods = calc_period_stats(stat[<span class=\"code-snippet__string\">\"timestamps_ms\"<\/span>])<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stat.update({<span class=\"code-snippet__string\">\"period_median_ms\"<\/span>: med,&nbsp;<span class=\"code-snippet__string\">\"period_avg_ms\"<\/span>: avg,&nbsp;<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"period_stddev_ms\"<\/span>: std,&nbsp;<span class=\"code-snippet__string\">\"periods\"<\/span>: periods})<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">check_and_generate_report<\/span>(<span class=\"code-snippet__params\">self<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u6267\u884c\u5168\u9762\u68c0\u67e5\u5e76\u751f\u6210\u62a5\u544a\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; comprehensive_rows = []<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; extra_rows = []<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u7efc\u5408\u68c0\u67e5<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;item&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;<span class=\"code-snippet__variable\">self<\/span>.test_items:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; key = (item[<span class=\"code-snippet__string\">\"id_str\"<\/span>], item[<span class=\"code-snippet__string\">\"segment\"<\/span>])<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; actual =&nbsp;<span class=\"code-snippet__variable\">self<\/span>.actual_stats.get(key)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row_info = {<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"ID\"<\/span>: item[<span class=\"code-snippet__string\">\"id_str\"<\/span>],&nbsp;<span class=\"code-snippet__string\">\"\u7f51\u6bb5\"<\/span>: item[<span class=\"code-snippet__string\">\"segment\"<\/span>],<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\u53d1\u9001\u8def\u5f84\"<\/span>:&nbsp;<span class=\"code-snippet__string\">f\"<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{item[<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\"><span class=\"code-snippet__string\">'expected_direction'<\/span><\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">]}<\/span><\/span><span class=\"code-snippet__string\">\/<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{item[<\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\"><span class=\"code-snippet__string\">'expected_ecu'<\/span><\/span><\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">]}<\/span><\/span><span class=\"code-snippet__string\">\"<\/span>,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;actual:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row_info.update({<span class=\"code-snippet__string\">\"\u95ee\u9898\u7c7b\u578b\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"\u6f0f\u53d1\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"FAIL\"<\/span>,&nbsp;<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\u5907\u6ce8\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"\u5468\u671f\u578b\u62a5\u6587\u672a\u5728BLF\u4e2d\u51fa\u73b0\"<\/span>})<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">else<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; problems = []<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u5e27\u683c\u5f0f\u68c0\u67e5<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;item[<span class=\"code-snippet__string\">\"expected_frame_type\"<\/span>] ==&nbsp;<span class=\"code-snippet__string\">\"CAN\"<\/span>&nbsp;<span class=\"code-snippet__keyword\">and<\/span>&nbsp;<span class=\"code-snippet__string\">\"CANFD\"<\/span>&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;actual[<span class=\"code-snippet__string\">\"frame_types\"<\/span>]:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; problems.append(<span class=\"code-snippet__string\">\"\u5e27\u683c\u5f0f\u5f02\u5e38\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># DLC\u68c0\u67e5<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;item.get(<span class=\"code-snippet__string\">\"expected_dlc\"<\/span>)&nbsp;<span class=\"code-snippet__keyword\">and<\/span>&nbsp;<span class=\"code-snippet__built_in\">any<\/span>(d != item[<span class=\"code-snippet__string\">\"expected_dlc\"<\/span>]&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;d&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;actual[<span class=\"code-snippet__string\">\"dlc_values\"<\/span>]):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; problems.append(<span class=\"code-snippet__string\">\"DLC\u5f02\u5e38\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u5468\u671f\u68c0\u67e5<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;item.get(<span class=\"code-snippet__string\">\"expected_cycle_ms\"<\/span>)&nbsp;<span class=\"code-snippet__keyword\">and<\/span>&nbsp;actual[<span class=\"code-snippet__string\">\"periods\"<\/span>]:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ok, _, err = check_period(actual[<span class=\"code-snippet__string\">\"periods\"<\/span>], item[<span class=\"code-snippet__string\">\"expected_cycle_ms\"<\/span>])<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;ok:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; problems.append(<span class=\"code-snippet__string\">\"\u5468\u671f\u5f02\u5e38\"<\/span>)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row_info[<span class=\"code-snippet__string\">\"\u95ee\u9898\u7c7b\u578b\"<\/span>] =&nbsp;<span class=\"code-snippet__string\">\"\u3001\"<\/span>.join(problems)&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;problems&nbsp;<span class=\"code-snippet__keyword\">else<\/span>&nbsp;<span class=\"code-snippet__string\">\"\u65e0\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row_info[<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>] =&nbsp;<span class=\"code-snippet__string\">\"FAIL\"<\/span>&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;problems&nbsp;<span class=\"code-snippet__keyword\">else<\/span>&nbsp;<span class=\"code-snippet__string\">\"PASS\"<\/span><\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; comprehensive_rows.append(row_info)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u591a\u53d1\u68c0\u67e5<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;(id_str, seg), stat&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;<span class=\"code-snippet__variable\">self<\/span>.actual_stats.items():<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;(id_str, seg)&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;<span class=\"code-snippet__variable\">self<\/span>.definition_keys:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; extra_rows.append({<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"ID\"<\/span>: id_str,&nbsp;<span class=\"code-snippet__string\">\"\u7f51\u6bb5\"<\/span>: seg,&nbsp;<span class=\"code-snippet__string\">\"\u95ee\u9898\u7c7b\u578b\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"\u591a\u53d1\"<\/span>,<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"FAIL\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u5907\u6ce8\"<\/span>:&nbsp;<span class=\"code-snippet__string\">\"BLF\u4e2d\u51fa\u73b0\u4f46\u7528\u4f8b\u672a\u5b9a\u4e49\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; })<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__variable\">self<\/span>.write_report(comprehensive_rows, extra_rows)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">write_report<\/span>(<span class=\"code-snippet__params\">self, comp_rows, extra_rows<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__string\">\"\"\"\u751f\u6210Excel\u6d4b\u8bd5\u62a5\u544a\"\"\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; timestamp = datetime.now().strftime(<span class=\"code-snippet__string\">\"%Y%m%d_%H%M%S\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; report_name =&nbsp;<span class=\"code-snippet__string\">f\"<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{timestamp}<\/span><\/span><span class=\"code-snippet__string\">_\u6574\u8f66\u62a5\u6587\u6d4b\u8bd5\u62a5\u544a.xlsx\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; wb = Workbook()<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u6d4b\u8bd5\u6982\u8981<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ws_summary = wb.active<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ws_summary.title =&nbsp;<span class=\"code-snippet__string\">\"\u6d4b\u8bd5\u6982\u8981\"<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; summary_data = [<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span class=\"code-snippet__string\">\"\u751f\u6210\u65f6\u95f4\"<\/span>, datetime.now().strftime(<span class=\"code-snippet__string\">\"%Y-%m-%d %H:%M:%S\"<\/span>)),<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span class=\"code-snippet__string\">\"\u7efc\u5408\u68c0\u67e5\u6761\u76ee\"<\/span>,&nbsp;<span class=\"code-snippet__built_in\">len<\/span>(comp_rows)),<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span class=\"code-snippet__string\">\"PASS\"<\/span>,&nbsp;<span class=\"code-snippet__built_in\">sum<\/span>(<span class=\"code-snippet__number\">1<\/span>&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;r&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;comp_rows&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;r[<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>] ==&nbsp;<span class=\"code-snippet__string\">\"PASS\"<\/span>)),<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span class=\"code-snippet__string\">\"FAIL\"<\/span>,&nbsp;<span class=\"code-snippet__built_in\">sum<\/span>(<span class=\"code-snippet__number\">1<\/span>&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;r&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;comp_rows&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;r[<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>] ==&nbsp;<span class=\"code-snippet__string\">\"FAIL\"<\/span>)),<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<span class=\"code-snippet__string\">\"\u591a\u53d1\u6761\u76ee\"<\/span>,&nbsp;<span class=\"code-snippet__built_in\">len<\/span>(extra_rows)),<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ]<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;row_idx, (k, v)&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;<span class=\"code-snippet__built_in\">enumerate<\/span>(summary_data,&nbsp;<span class=\"code-snippet__number\">1<\/span>):<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ws_summary.cell(row=row_idx, column=<span class=\"code-snippet__number\">1<\/span>, value=k)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ws_summary.cell(row=row_idx, column=<span class=\"code-snippet__number\">2<\/span>, value=v)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u7efc\u5408\u68c0\u67e5Sheet<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ws_comp = wb.create_sheet(<span class=\"code-snippet__string\">\"\u7efc\u5408\u68c0\u67e5\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ws_comp.append([<span class=\"code-snippet__string\">\"ID\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u7f51\u6bb5\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u95ee\u9898\u7c7b\u578b\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u53d1\u9001\u8def\u5f84\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u5907\u6ce8\"<\/span>])<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;row&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;comp_rows:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ws_comp.append([row[<span class=\"code-snippet__string\">\"ID\"<\/span>], row[<span class=\"code-snippet__string\">\"\u7f51\u6bb5\"<\/span>], row[<span class=\"code-snippet__string\">\"\u95ee\u9898\u7c7b\u578b\"<\/span>],&nbsp;<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row[<span class=\"code-snippet__string\">\"\u53d1\u9001\u8def\u5f84\"<\/span>], row[<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>], row.get(<span class=\"code-snippet__string\">\"\u5907\u6ce8\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\"<\/span>)])<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u591a\u53d1\u68c0\u67e5Sheet<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ws_extra = wb.create_sheet(<span class=\"code-snippet__string\">\"\u591a\u53d1\u68c0\u67e5\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; ws_extra.append([<span class=\"code-snippet__string\">\"ID\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u7f51\u6bb5\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u95ee\u9898\u7c7b\u578b\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>,&nbsp;<span class=\"code-snippet__string\">\"\u5907\u6ce8\"<\/span>])<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;row&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;extra_rows:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ws_extra.append([row[<span class=\"code-snippet__string\">\"ID\"<\/span>], row[<span class=\"code-snippet__string\">\"\u7f51\u6bb5\"<\/span>], row[<span class=\"code-snippet__string\">\"\u95ee\u9898\u7c7b\u578b\"<\/span>],&nbsp;<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;row[<span class=\"code-snippet__string\">\"\u7ed3\u679c\"<\/span>], row[<span class=\"code-snippet__string\">\"\u5907\u6ce8\"<\/span>]])<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; wb.save(report_name)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__built_in\">print<\/span>(<span class=\"code-snippet__string\">f\"\u62a5\u544a\u5df2\u751f\u6210:&nbsp;<\/span><span class=\"code-snippet__string\"><span class=\"code-snippet__subst\">{report_name}<\/span><\/span><span class=\"code-snippet__string\">\"<\/span>)<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__comment\"># ========================== \u4e3b\u5165\u53e3 ==========================<\/span><\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">def<\/span>&nbsp;<span class=\"code-snippet__title\">main<\/span>():<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; parser = argparse.ArgumentParser(description=<span class=\"code-snippet__string\">\"\u6574\u8f66CAN\u62a5\u6587\u4e00\u81f4\u6027\u6d4b\u8bd5\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; parser.add_argument(<span class=\"code-snippet__string\">\"--blf\"<\/span>,&nbsp;<span class=\"code-snippet__built_in\">type<\/span>=<span class=\"code-snippet__built_in\">str<\/span>,&nbsp;<span class=\"code-snippet__built_in\">help<\/span>=<span class=\"code-snippet__string\">\"BLF\u6587\u4ef6\u8def\u5f84\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; parser.add_argument(<span class=\"code-snippet__string\">\"--xlsx\"<\/span>,&nbsp;<span class=\"code-snippet__built_in\">type<\/span>=<span class=\"code-snippet__built_in\">str<\/span>,&nbsp;<span class=\"code-snippet__built_in\">help<\/span>=<span class=\"code-snippet__string\">\"Excel\u6d4b\u8bd5\u7528\u4f8b\u8def\u5f84\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; args = parser.parse_args()<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; cur_dir = Path.cwd()<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__comment\"># \u81ea\u52a8\u67e5\u627e\u6587\u4ef6<\/span><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; blf_path = Path(args.blf)&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;args.blf&nbsp;<span class=\"code-snippet__keyword\">else<\/span>&nbsp;<span class=\"code-snippet__built_in\">next<\/span>((f&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;f&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;cur_dir.iterdir()&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;f.suffix ==&nbsp;<span class=\"code-snippet__string\">'.blf'<\/span>),&nbsp;<span class=\"code-snippet__literal\">None<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; xlsx_path = Path(args.xlsx)&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;args.xlsx&nbsp;<span class=\"code-snippet__keyword\">else<\/span>&nbsp;<span class=\"code-snippet__built_in\">next<\/span>((f&nbsp;<span class=\"code-snippet__keyword\">for<\/span>&nbsp;f&nbsp;<span class=\"code-snippet__keyword\">in<\/span>&nbsp;cur_dir.iterdir()&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;f.suffix ==&nbsp;<span class=\"code-snippet__string\">'.xlsx'<\/span>),&nbsp;<span class=\"code-snippet__literal\">None<\/span>)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp;&nbsp;<span class=\"code-snippet__keyword\">if<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;blf_path&nbsp;<span class=\"code-snippet__keyword\">or<\/span>&nbsp;<span class=\"code-snippet__keyword\">not<\/span>&nbsp;xlsx_path:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<span class=\"code-snippet__built_in\">print<\/span>(<span class=\"code-snippet__string\">\"\u8bf7\u786e\u4fdd\u5f53\u524d\u76ee\u5f55\u6709BLF\u548cExcel\u6587\u4ef6\uff0c\u6216\u4f7f\u7528\u53c2\u6570\u6307\u5b9a\"<\/span>)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; &nbsp; &nbsp; sys.exit(<span class=\"code-snippet__number\">1<\/span>)<\/span><\/code><code><span leaf=\"\"><br  \/><\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; tester = CANGatewayTester(blf_path, xlsx_path)<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; tester.load_testcases()<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; tester.parse_blf()<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; tester.check_and_generate_report()<\/span><\/code><code><span leaf=\"\"><span class=\"code-snippet__keyword\">if<\/span>&nbsp;__name__ ==&nbsp;<span class=\"code-snippet__string\">\"__main__\"<\/span>:<\/span><\/code><code><span leaf=\"\">&nbsp; &nbsp; main()<\/span><\/code><\/pre>\n<\/section>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<hr style=\"border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);\"  \/>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<p data-pm-slice=\"0 0 []\"><span leaf=\"\">\ud83c\udfaf<\/span><b><span leaf=\"\">&nbsp;\u5199\u5728\u6700\u540e<\/span><\/b><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\">\u4eff\u771f\u6d4b\u8bd5\u662f\u6c7d\u8f66\u7535\u5b50\u5f00\u53d1\u7684\u6838\u5fc3\u80fd\u529b\uff0c\u6d4b\u8bd5\u5f00\u53d1\u5c24\u5176\u5177\u6709\u5e7f\u9614\u7684\u804c\u4e1a\u524d\u666f\u3002\u672c\u6559\u7a0b\u5c55\u793a\u7684\u4e0d\u4ec5\u662f\u4e00\u6bb5\u4ee3\u7801\uff0c\u66f4\u662f\u4e00\u79cd<\/span><b><span leaf=\"\">\u5de5\u7a0b\u5316\u601d\u7ef4<\/span><\/b><span leaf=\"\">\u2014\u2014\u5982\u4f55\u5c06\u7e41\u7410\u7684\u4eba\u5de5\u5de5\u4f5c\u8f6c\u5316\u4e3a\u9ad8\u6548\u7684\u81ea\u52a8\u5316\u6d41\u7a0b\u3002<\/span><\/p>\n<p style=\"text-indent: 2em;\"><span leaf=\"\">\u5728<\/span><span><span leaf=\"\">&nbsp;AI&nbsp;<\/span><\/span><span leaf=\"\">\u65f6\u4ee3\uff0c\u5b66\u4f1a\u6307\u6325<\/span><span><span leaf=\"\">&nbsp;AI<\/span><\/span><span leaf=\"\">\u3001\u8bbe\u8ba1\u7cfb\u7edf\u67b6\u6784\uff0c\u6bd4\u5355\u7eaf\u5199\u4ee3\u7801\u66f4\u6709\u4ef7\u503c\u3002\u638c\u63e1\u8fd9\u79cd\u65b9\u6cd5\u8bba\uff0c\u4f60\u5c06\u5728\u6c7d\u8f66\u667a\u80fd\u5316\u6d6a\u6f6e\u4e2d\u5360\u636e\u6709\u5229\u4f4d\u7f6e\u3002<\/span><\/p>\n<p><span leaf=\"\"><br  \/><\/span><\/p>\n<p style=\"display: none;\"><mp-style-type data-value=\"3\"><\/mp-style-type><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u57fa\u4e8e Python \u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u7cfb\u7edf\u5f00\u53d1\u2014\u2014\u5b9e\u6218\u6559\u7a0b \ud83c\udfaf\u5e94\u7528\u573a\u666f\u4e0e\u6d4b\u8bd5\u76ee\u6807 \u672c\u65b9\u6848\u9002\u7528\u4e8e\u6574\u8f66\u7f51\u7edc\u5f00\u53d1\u5b8c\u6210\u540e\u7684\u9a8c [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":140,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-141","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automotive-electronic"],"_links":{"self":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/posts\/141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/comments?post=141"}],"version-history":[{"count":0,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/posts\/141\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/media\/140"}],"wp:attachment":[{"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/media?parent=141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/categories?post=141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deartester.com\/index.php\/wp-json\/wp\/v2\/tags?post=141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}