車載以太網網絡測試 -25【SOME/IP-報文格式-1】

1 摘要

本專題接著上一專題對SOME/IP進行介紹,主要對SOME/IP報文格式以及定義的字段進行詳細介紹,有助于在實際項目過程中對SOME/IP報文的理解。
上文回顧:
車載以太網網絡測試 -24【SOME/IP概述】

2 SOME/IP-報文格式

通過上個專題介紹,SOME/IP是一個通信中間件,位于傳輸層之上,因此SOME/IP的數據封裝在傳輸層頭部的后面。如下圖所示,SOME/IP也有幀頭部分。
在這里插入圖片描述

SOME/IP報頭的總長度為16個字節,共有9個字段。
各字段說明:

2.1 Service ID / 16 bits

服務標識,Service ID 是一個核心標識符,用于唯一標識車載網絡或分布式系統中的服務(Service)。
唯一標識服務
Service ID 是一個16位的無符號整數(0x0000~0xFFFF),用于在系統中唯一區分不同的服務。例如:

  • 0x1234 可能代表“車速服務”,
  • 0x5678 可能代表“電池管理服務”。
    通過Service ID,客戶端和服務端可以明確識別通信的目標服務,避免混淆。

2.2 Method ID / Event ID / 16 bits

Method IDEvent ID 是用于標識服務通信中不同操作和事件的關鍵標識符。

  • Method ID(方法標識符)
    作用:唯一標識服務接口中的可調用方法(遠程過程調用,RPC)。
    功能
    • 客戶端通過發送包含 Method ID 的請求報文,調用服務端的特定方法。
    • 服務端根據 Method ID 確定需要執行的方法,并返回響應(如方法返回值或狀態)。
      示例場景
    • 車輛ECU提供“獲取車速”服務,客戶端通過 Method ID = 0x1234 調用該方法,服務端返回當前車速值。
  • Event ID(事件標識符)
    作用:唯一標識服務接口中的事件(由服務端主動通知客戶端的數據)。
    功能
    • 服務端通過 Event ID 標記特定事件(如傳感器數據變化、狀態更新)。
    • 客戶端訂閱(Subscribe)指定 Event ID 后,服務端會在事件觸發時推送通知(Notification)。
      示例場景
    • 車載溫度傳感器服務通過 Event ID = 0x5678 定期發布溫度數據,客戶端訂閱后即可接收實時更新。

說明
這個字段的第一個bit是標志位,如果標志位為0,表示后面15位為Method ID(Method、Field.Getter及Field.Setter);如果標志位為1,表示后面15位為Event ID(包括Event和Field.Notify)
Method/Event ID部分:
若最高位=0(ID < 0x8000)→ Method ID
若最高位=1(ID ≥ 0x8000)→ Event ID
因此,Method和Event可以從該字段的值來區分:

  • Method ID的范圍為0x0000 ~ 0x7FFF
  • Event ID的范圍為0x8000 ~ 0xFFFF。

Method和Event為SOME/IP的兩種通信方式,后面專題介紹。
Service ID和Method ID/Event ID兩個字段可以組成Message ID,每個Message ID在車內網絡都是唯一的,可以用來標識某個服務的某個接口。

2.3 Length / 32 bits

  • 位置:位于SOME/IP Header的第5-8字節(即從第4字節開始,前4字節為Message ID和Length字段本身)。

  • 數據類型:32位無符號整數(大端序,Big-endian)。

  • 單位:字節(Byte)。

  • 計算范圍:從Client ID字段開始到整個報文結束(包括Payload)的總字節數。
    服務 ID(Service ID) 和 方法/事件 ID(Method/Event ID) 屬于 SOME/IP 報文頭 的一部分,位于 Length 字段之前,因此不被計入 Length。

  • 作用:

    • 報文邊界識別:接收方通過Length字段確定報文的結束位置,尤其在TCP等流式傳輸中區分多個連續的SOME/IP報文。
    • 完整性校驗:驗證接收到的數據是否完整(實際接收的字節數是否與Length字段匹配)。
    • 協議解析:幫助解析器正確分離Header和Payload部分

2.4 Client ID / 16 bits

Client ID是一個用于標識客戶端實例的唯一標識符,服務器可通過該字段區分不同的客戶端,在多個客戶端同時請求或使用同一個服務器中的同一個服務時可使用。Client ID也可以設置為車內網絡唯一的,這樣可以直接用于標識出具體的節點。它是一個16位的字段。

  • Client ID的作用
    Client ID在SOME/IP通信中扮演著重要角色:

    • 服務實例識別:幫助服務端識別和區分不同的客戶端實例
    • 會話管理:在請求-響應交互中維護客戶端與服務端之間的會話狀態
    • 消息路由:確保響應能夠正確返回到發起請求的客戶端
    • 負載均衡:在多個服務實例場景下,幫助實現請求的合理分配
    • 狀態跟蹤:服務端可以跟蹤不同客戶端的狀態和生命周期
  • 分配方式

    • 可以由客戶端自行生成(需確保唯一性)
    • 可以由中間件或服務端分配
    • 通常采用遞增或隨機方式生成
  • 應用場景

    • 服務發現:在服務發現過程中,客戶端使用Client ID標識自己
    • 方法調用:在RPC調用中標識調用方
    • 事件訂閱:標識事件訂閱的客戶端
    • 錯誤處理:幫助定位問題發生的客戶端

Client ID是SOME/IP實現多客戶端并發訪問同一服務的基礎機制之一,確保了服務端能夠正確處理來自不同客戶端的并行請求。

2.5 Session ID / 16 bits

會話標識,可以用來區分來自同一發送者的多條請求,表示請求或消息的順序。如果使用,應在每次調用后遞增,其范圍為0x0001到0xFFFF,當達到0xFFFF后,則循環至0x0001重新開始計數。對于請求/響應的method,客戶端可通過Session ID來識別正確的響應,如果響應的Session ID與其發送的請求中不一致,應忽略。對于Event,有多種不同場景下的應用,如果不使用該字段,可置為0x0000,接收端直接忽略即可。

  • Session ID的作用

    • 會話標識:唯一標識客戶端與服務端之間的特定交互會話
    • 請求-響應匹配:幫助客戶端將響應與正確的請求關聯起來
    • 多路復用支持:允許多個并發會話通過同一連接進行
    • 狀態跟蹤:協助跟蹤長時間運行的交互狀態
  • 對于不同的通信模式有不同的使用方式:

    • 請求/響應模式:用于匹配請求和響應
    • 事件/通知模式:可能用于標識訂閱會話
    • 字段通信:可能用于跟蹤字段更新會話

在SOME/IP-SD(服務發現)中,Session ID可能有特殊用途,用于標識服務實例

  • 實際應用
    在汽車電子系統中,Session ID幫助管理復雜的服務交互,特別是在以下場景:
    • 多個ECU之間的并發服務調用
    • 長時間運行的操作(如固件更新)
    • 需要保持狀態的交互序列

2.6 Protocol Version / 8 bits

協議版本,表示SOME/IP協議的版本,即SOME/IP的頭部格式版本。發送端和接收端所支持的協議版本應一致,如果不一致則無法處理,主要用于版本控制和兼容性管理。以下是其詳細定義與作用:
長度:1字節(8位)。
取值:通常為 0x01(表示SOME/IP協議版本1),這是當前廣泛實現的版本。
標準參考:根據AUTOSAR規范,SOME/IP協議版本需嚴格定義以確保互通性。

  • 作用
    (1) 協議版本標識
  • 標識數據包遵循的SOME/IP協議版本,確保通信雙方使用相同的協議規則(如消息格式、序列化方式等)。
  • 例如:0x01 表示版本1,可能支持基礎RPC和事件通知;未來版本可能擴展新功能(如增強的QoS機制)。
    (2) 兼容性控制
  • 接收方檢查:若接收方不支持該版本,可拒絕處理或觸發錯誤響應(如返回 NOT_OK 狀態)。
  • 多版本共存:網關或中間件可能根據此字段對消息進行轉換或路由(如版本1與版本2互通時)。
    (3) 未來擴展性
  • 保留字段為未來協議升級提供可能(例如:0x02 可能引入新的頭部字段或優化序列化效率)。

實際應用示例:

  • 場景:ECU A(版本1)向ECU B(版本2)發送請求。
  • 處理流程
    1. ECU B檢測到 Protocol Version=0x01,判斷自身是否支持向后兼容。
    2. 若不支持,通過SOME/IP錯誤響應通知ECU A;若支持,則按版本1規則處理消息。

2.7 Interface Version / 8 bits

接口版本,用于標識服務接口的版本號,在AUTOSAR等車載系統中,Interface Version通常與服務接口描述文件(ARXML)中定義的版本一致,確保通信雙方對接口定義的理解一致。

  • 作用
  1. 版本控制:標識服務接口的版本,允許服務接口在不破壞向后兼容性的情況下進行演進。

  2. 兼容性管理:客戶端和服務端可以通過版本號判斷是否兼容,避免因版本不匹配導致的通信問題。

  3. 多版本支持:系統可以同時部署同一服務的多個版本,通過版本號區分。

  • 使用場景
  1. 當服務接口有重大變更時(如新增方法、事件或字段),遞增主版本號。

  2. 當服務接口有向后兼容的修改時(如bug修復或性能優化),遞增次版本號。

  3. 客戶端在請求時可以指定它能處理的最高版本,服務端可以選擇使用兼容的版本進行響應。

  • 注意事項

  • 版本號遞增策略應由服務接口設計者明確定義

  • 版本號比較通常采用簡單的數值比較

  • 版本不匹配時應定義明確的錯誤處理機制

2.8 Message Type / 8 bits

報文類型,用于表示SOME/IP報文的類型。它在SOME/IP協議頭中占據重要位置,直接影響通信雙方對消息的處理邏輯,通過該字段可以識別該報文是請求、響應、通知或者錯誤等。其中第三位為分段標志位(TP-Flag),用于表示該條報文是否被分段。
在這里插入圖片描述

說明:
TP指SOME/IP-TP(Transport Protocol),是SOME/IP的傳輸協議,可以簡單的理解為是分段傳輸機制,在后續專題中會詳細介紹。

以下是完整的Message Type取值及其含義(十六進制表示):

Type Value名稱描述
0x00REQUEST客戶端到服務的請求(請求并期望響應)。
0x01REQUEST_NO_RETURN客戶端到服務的請求(不期望響應)。
0x02NOTIFICATION事件通知(無響應)。
0x40REQUEST_ACKREQUEST的ACK確認。
0x41REQUEST_NO_RETURN_ACKREQUEST_NO_RETURN的ACK確認。
0x42NOTIFICATION_ACKNOTIFICATION的ACK確認。
0x80RESPONSE服務端對REQUEST的響應(Bit 7=1表示響應)。
0x81ERROR響應中包含錯誤。
0xC0RESPONSE_ACKRESPONSE的ACK確認。
0xC1ERROR _ACKERROR的ACK確認。
0x20TP_REQUEST分塊傳輸(TP)的請求報文(期待響應)。
0x21TP_REQUEST_NO_RETURN分塊傳輸(TP)的請求報文(無響應)。
0x22TP_NOTIFICATION一個TP通知/事件回調的請求,不期待有響應。
0xA0TP_RESPONSETP請求的響應報文。
0xA1TP_ERRORTP請求的錯誤響應。

關鍵說明

  1. Bit 7 (最高位)
    • 0: 表示請求或通知(客戶端→服務端)。
    • 1: 表示響應或錯誤(服務端→客戶端)。
  2. Bit 6
    • 1時表示響應(如RESPONSEERROR)。
  3. TP前綴
    • 標識報文使用分塊傳輸(Transport Protocol),用于超過SOME/IP默認MTU的數據。

2.9 Return Code / 8 bits

Return Code字段是一個8位(1字節)的無符號整數,用于表示遠程方法調用(RPC)或事件通知的處理結果狀態。它的定義和作用類似于HTTP狀態碼,用于指示請求是否成功、失敗或需要進一步處理。所以只會在響應或者錯誤類型的報文中才有意義。對于請求和通知類報文(REQUEST, REQUEST_NO_RETURN, NOTIFICATION) 該字段不使用,應置0x00。
SOME/IP協議規范(如AUTOSAR標準)定義了以下常見的Return Code值:

值(十進制)名稱描述
0x00 (0)E_OK請求成功完成。
0x01 (1)E_NOT_OK通用錯誤(未明確指定的失敗)。
0x02 (2)E_UNKNOWN_SERVICE請求的服務ID不存在。
0x03 (3)E_UNKNOWN_METHOD請求的方法ID在服務中不存在。
0x04 (4)E_NOT_READY服務/方法尚未準備好(例如初始化未完成)。
0x05 (5)E_NOT_REACHABLE服務端不可達(網絡或通信問題)。
0x06 (6)E_TIMEOUT請求超時(未在指定時間內收到響應)。
0x07 (7)E_WRONG_PROTOCOL_VERSION協議版本不匹配。
0x08 (8)E_WRONG_INTERFACE_VERSION接口版本不匹配。
0x09 (9)E_MALFORMED_MESSAGE消息格式錯誤(如字段長度或類型不符)。
0x0A (10)E_WRONG_MESSAGE_TYPE消息類型不匹配(如期望請求但收到響應)。
0x0B–0x7F保留協議規范保留的代碼,未來可能擴展。
0x80–0xFF供應商特定供廠商自定義使用(如特定ECU或中間件的擴展錯誤碼)。

Return Code的作用

  1. 反饋調用狀態
    客戶端通過Return Code快速判斷請求是否成功,或定位失敗原因(如服務不可用、參數錯誤等)。

  2. 錯誤處理與恢復
    客戶端可根據不同Return Code采取不同策略(如重試、回退、日志記錄等)。例如:

    • 遇到E_NOT_READY可延遲重試。
    • 遇到E_UNKNOWN_METHOD需檢查方法ID配置。
  3. 協議兼容性

    • 版本不匹配(如E_WRONG_PROTOCOL_VERSION)提示雙方升級協議。
    • 供應商特定代碼(0x80以上)支持私有擴展。
  4. 調試與診斷
    在開發和測試階段,Return Code幫助快速定位通信或邏輯問題。

示例場景

  • 成功請求
    客戶端調用方法0x1234,服務端返回Return Code = 0x00 (E_OK),表示執行成功。

  • 服務不存在
    客戶端請求一個未注冊的服務(如ID0x9999),服務端返回0x02 (E_UNKNOWN_SERVICE)

  • 超時處理
    客戶端未在設定時間內收到響應,本地SOME/IP棧生成0x06 (E_TIMEOUT)

注意事項

  • AUTOSAR兼容性:不同AUTOSAR版本可能擴展Return Code,需參考對應標準文檔(如AUTOSAR_SWS_SOMEIPProtocol)。
  • 自定義代碼:供應商特定代碼需確保收發雙方約定一致,避免沖突。
  • 與Response Code區別:Return Code是協議層狀態,而Response Code可能用于應用層錯誤(如參數校驗失敗)。

2.10 通信過程示例

以下是一個詳細的SOME/IP報文通信過程示例,包含報頭結構解析和交互流程:

1. SOME/IP報文頭結構(12字節)

字段長度(字節)示例值說明
Message ID40x12345678高16位:Service ID (0x1234)
低16位:Method ID (0x5678)
Length40x00000010從Request ID開始的剩余長度
Request ID40xDEADBEEF高32位:Client ID (0xDEAD)
低32位:Session ID (0xBEEF)
Protocol Version10x01SOME/IP版本(通常為1)
Interface Version10x02服務接口版本
Message Type10x00 (REQUEST)0x80=REQUEST, 0x40=RESPONSE
Return Code10x00 (E_OK)0x00=成功,其他為錯誤碼

2. 通信流程示例(客戶端調用服務端方法)

步驟1:客戶端發送REQUEST

SOME/IP Header:Message ID:    0x12345678 (Service ID=0x1234, Method ID=0x5678)Length:        0x00000010 (16字節,含Request ID后的數據)Request ID:    0xDEADBEEF (Client ID=0xDEAD, Session ID=0xBEEF)Protocol Ver:  0x01Interface Ver: 0x02Message Type:  0x80 (REQUEST)Return Code:   0x00Payload:0x11223344 (示例數據:輸入參數)

步驟2:服務端回復RESPONSE

SOME/IP Header:Message ID:    0x12345678 (與請求匹配)Length:        0x0000000C (12字節,僅含返回值)Request ID:    0xDEADBEEF (與請求匹配)Protocol Ver:  0x01Interface Ver: 0x02Message Type:  0x40 (RESPONSE)Return Code:   0x00 (E_OK)Payload:0xAABBCCDD (示例數據:計算結果)

3. 異常場景示例
場景:方法調用失敗(服務不可用)

SOME/IP Header:Message Type:  0x40 (RESPONSE)Return Code:   0x07 (E_NOT_READY)# 其他字段與請求匹配
Payload: 無

4. 關鍵字段說明

  • Message ID:唯一標識服務和方法(如0x1234:0x5678表示服務A的Method X)。
  • Request ID:匹配請求與響應(同一Client ID + 自增Session ID)。
  • Message Type
    • 0x80 = REQUEST(需要響應)
    • 0x40 = RESPONSE
    • 0x20 = ERROR
  • Return Code:常見值:
    • 0x00 (E_OK):成功
    • 0x01 (E_NOT_OK):通用錯誤
    • 0x07 (E_NOT_READY):服務未初始化

5. 通信流程圖示

Client                  Server| --- REQUEST (0x80) ---> || <-- RESPONSE (0x40) --- || (ReturnCode=0x00)       |

通過上述示例,可以清晰理解SOME/IP協議中報頭如何標識服務、匹配請求/響應及處理異常。實際應用中需結合服務發現(SOME/IP-SD)實現動態服務訂閱。

3 總結

以上是對SOME/IP報文的格式以及各字段的定義進行了介紹,并且通過列舉實例來幫助大家對SOME/IP通信過程的理解,希望能有所幫助!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73921.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73921.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73921.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【區塊鏈安全 | 第五篇】DeFi概念詳解

文章目錄 DeFi1. DeFi 生態概覽2. 去中心化交易所&#xff08;DEX&#xff09;2.1 AMM&#xff08;自動做市商&#xff09;模型2.2 訂單簿模式&#xff08;現貨交易&#xff09; 3. 借貸協議3.1 Aave3.2 使用閃電貸&#xff08;Flash Loan&#xff09; 4. 穩定幣&#xff08;St…

問題:md文檔轉換word,html,圖片,excel,csv

文章目錄 問題&#xff1a;md文檔轉換word&#xff0c;html&#xff0c;圖片&#xff0c;excel&#xff0c;csv&#xff0c;ppt**主要職責****技能要求****發展方向****學習建議****薪資水平** 方案一&#xff1a;AI Markdown內容轉換工具打開網站md文檔轉換wordmd文檔轉換pdfm…

代碼隨想錄刷題day53|(二叉樹篇)106.從中序與后序遍歷序列構造二叉樹(▲

目錄 一、二叉樹理論知識 二、構造二叉樹思路 2.1 構造二叉樹流程&#xff08;給定中序后序 2.2 整體步驟 2.3 遞歸思路 2.4 給定前序和后序 三、相關算法題目 四、易錯點 一、二叉樹理論知識 詳見&#xff1a;代碼隨想錄刷題day34|&#xff08;二叉樹篇&#xff09;二…

前端知識點---用正則表達式判斷郵箱(javascript)

// 全面的正則&#xff08;兼容大多數情況&#xff09; const emailRegex /^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$/;// 或直接使用瀏覽器內置驗證 <input type"email" required>/&#xff1a;正則表達式的起始和結束標志。 ^&#xff1a;匹配字符串的…

PyQt6實例_批量下載pdf工具_界面開發

目錄 前置&#xff1a; 代碼&#xff1a; 視頻&#xff1a; 前置&#xff1a; 1 本系列將以 “PyQt6實例_批量下載pdf工具”開頭&#xff0c;放在 【PyQt6實例】 專欄 2 本系列涉及到的PyQt6知識點&#xff1a; 線程池&#xff1a;QThreadPool,QRunnable&#xff1b; 信號…

在word中使用zotero添加參考文獻并附帶超鏈接

一、引言 在寫大論文時&#xff0c;為了避免文中引用與文末參考文獻頻繁對照、修改文中引用順序/引用文獻時手動維護參考文獻耗易出錯&#xff0c;擬在 word 中使用 zotero 插入參考文獻&#xff0c;并為每個參考文獻附加超鏈接&#xff0c;實現交互式閱讀。 版本&#xff1a…

Selenium文件上傳

在 Web 自動化測試中,文件上傳是一項常見的任務。不同的網站和前端技術可能導致上傳方式有所不同,因此需要采用不同的方法進行處理。 方法 1:使用 send_keys() 直接上傳(最常用) 適用場景: 頁面中 有標準的 <input type="file"> 標簽。 不需要彈出 Wind…

線程概念與控制(中)

線程概念與控制&#xff08;上&#xff09;https://blog.csdn.net/Small_entreprene/article/details/146464905?sharetypeblogdetail&sharerId146464905&sharereferPC&sharesourceSmall_entreprene&sharefrommp_from_link我們經過上一篇的學習&#xff0c;接…

【Unity】 鼠標拖動物體移動速度跟不上鼠標,會掉落

錯誤示范&#xff1a; 一開始把移動的代碼寫到update里去了&#xff0c;發現物體老是掉(總之移動非常不流暢&#xff0c;體驗感很差&#xff09; void Update(){Ray ray Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out RaycastHit hit, M…

MATLAB 控制系統設計與仿真 - 30

用極點配置設計伺服系統 方法2-反饋修正 如果我們想只用前饋校正輸入&#xff0c;從而達到伺服控制的效果&#xff0c;我們需要很精確的知道系統的參數模型&#xff0c;否則系統輸出仍然具有較大的靜態誤差。 但是如果我們在誤差比較器和系統的前饋通道之間插入一個積分器&a…

VMware Windows Tools 存在認證繞過漏洞(CVE-2025-22230)

漏洞概述 博通公司&#xff08;Broadcom&#xff09;近日修復了 VMware Windows Tools 中存在的一個高危認證繞過漏洞&#xff0c;該漏洞編號為 CVE-2025-22230&#xff08;CVSS 評分為 9.8&#xff09;。VMware Windows Tools 是一套實用程序套件&#xff0c;可提升運行在 VM…

羅杰斯特回歸

定義 邏輯回歸其實就是原來的線性回歸加了激活函數&#xff0c;這個函數其實就是sigmoid函數&#xff0c;把一個回歸的連續數值壓縮到了0到1的空間&#xff0c;其實只要有函數能夠滿足把數值壓縮到0,1之間就可以&#xff08;因為0到1之間的數值就是概率值&#xff09; 對于分類…

Java多線程與JConsole實踐:從線程狀態到性能優化!!!

目錄 一、前言二、JConsole 使用教程二、線程的基本狀態2.1新建狀態&#xff08;New&#xff09;2.2就緒狀態&#xff08;Ready&#xff09;2.3運行狀態&#xff08;Running&#xff09;2.4 阻塞狀態&#xff08;Blocked&#xff09;2.5. 等待狀態&#xff08;Waiting&#xff…

基于django優秀少兒圖書推薦網(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 時代在飛速進步&#xff0c;每個行業都在努力發展現在先進技術&#xff0c;通過這些先進的技術來提高自己的水平和優勢&#xff0c;圖書推薦網當然不能排除在外。本次開發的優秀少兒圖書推薦網是在實際應用和軟件工程的開發原理之上&#xff0c;運用Python語言、爬蟲技術…

《網絡管理》實踐環節01:OpenEuler22.03sp4安裝zabbix6.2

蘭生幽谷&#xff0c;不為莫服而不芳&#xff1b; 君子行義&#xff0c;不為莫知而止休。 1 環境 openEuler 22.03 LTSsp4PHP 8.0Apache 2Mysql 8.0zabbix6.2.4 表1-1 Zabbix網絡規劃&#xff08;用你們自己的特征網段規劃&#xff09; 主機名 IP 功能 備注 zbx6svr 19…

Axure項目實戰:智慧城市APP(七)我的、消息(顯示與隱藏交互)

親愛的小伙伴&#xff0c;在您瀏覽之前&#xff0c;煩請關注一下&#xff0c;在此深表感謝&#xff01; 課程主題&#xff1a;智慧城市APP 主要內容&#xff1a;我的、消息、活動模塊頁面 應用場景&#xff1a;消息頁設計、我的頁面設計以及活動頁面設計 案例展示&#xff…

晶晨S905L3A(B)-安卓9.0-開啟ADB和ROOT-支持IPTV6-支持外置游戲系統-支持多種無線芯片-支持救磚-完美通刷線刷固件包

晶晨S905L3A(B)-安卓9.0-開啟ADB和ROOT-支持IPTV6-支持外置游戲系統-支持多種無線芯片-支持救磚-完美通刷線刷固件包 適用型號&#xff1a;M401A、CM311-1a、CM311-1sa、B863AV3.1-M2、B863AV3.2-M、UNT403A、UNT413A、M411A、E900V22C、E900V22D、IP112H等等晶晨S905L3A(B)處…

【免費】2007-2019年各省地方財政科學技術支出數據

2007-2019年各省地方財政科學技術支出數據 1、時間&#xff1a;2007-2019年 2、來源&#xff1a;國家統計局、統計年鑒 3、指標&#xff1a;行政區劃代碼、地區、年份、地方財政科學技術支出 4、范圍&#xff1a;31省 5、指標說明&#xff1a;地方財政科學技術支出是指地方…

樹形結構的工具類TreeUtil

這個地方是以null為根節點&#xff0c;相關以null或者0自己在TreeUtil中加代碼&#xff0c;就行 基礎類 package com.jm.common.entity;import lombok.Data;import java.util.ArrayList; import java.util.List;/*** Author:JianWu* Date: 2025/3/26 9:02*/ Data public clas…

視頻聯網平臺智慧運維系統:智能時代的城市視覺中樞

引言&#xff1a;破解視頻運維的"帕累托困境" 在智慧城市與數字化轉型浪潮中&#xff0c;全球視頻監控設備保有量已突破10億臺&#xff0c;日均產生的視頻數據量超過10萬PB。然而&#xff0c;傳統運維模式正面臨三重困境&#xff1a; 海量設備管理失序&#xff1a;…