Nguồn dữ liệu

SDV Telemetry hỗ trợ nhiều loại nguồn dữ liệu. Trang này cung cấp thông tin tổng quan về các loại này và những tính năng mà Telemetry hỗ trợ cho từng loại nguồn dữ liệu.

Mã mẫu cho việc triển khai nguồn dữ liệu có trong thư mục system/software_defined_vehicle/samples/telemetry.

Định nghĩa nguồn dữ liệu trong cấu hình chỉ số

Cấu hình chỉ số xác định một hoặc nhiều nguồn dữ liệu để thu thập chỉ số. Mỗi nguồn dữ liệu được xác định bằng source_identifier. Định dạng source_identifier phụ thuộc vào nguồn dữ liệu:

Nguồn dữ liệu Định dạng Mô tả Ví dụ
Dịch vụ SDV Tên thông báo Protobuf Tên thông báo protobuf đủ điều kiện. Nếu dịch vụ có nhiều phiên bản, hãy thêm tên đơn vị dịch vụ được phân tách bằng dấu gạch đứng (|). "com.sdv.google.example.TellTale|com-sdv-google-example-tell-tale-status-hibeam"
Tên phiên bản đủ điều kiện (FQIN) có Tên đơn vị dịch vụ FQIN và tên đơn vị dịch vụ được phân tách bằng dấu sổ thẳng (|). "vm-cdc:com.google.android.sdv.pubsub.SomeService/instance1|tire-pressure"
Nhà xuất bản dựa trên Sổ đăng ký nhà xuất bản có thể định cấu hình Tên nhà xuất bản Chính xác serviceName được dùng để đăng ký nhà xuất bản tại Configurable Publisher Registry. Mọi chuỗi đều hợp lệ.

Đối với mỗi nguồn dữ liệu, bạn có thể sử dụng các lựa chọn sau để tham số hoá việc truy xuất thông báo. Bạn có thể xác định cùng một nguồn dữ liệu nhiều lần với các lựa chọn khác nhau trong cùng một cấu hình chỉ số. Ví dụ: bạn có thể có một phần xử lý biên sử dụng khoảng thời gian lấy mẫu phụ khác với các phần xử lý biên khác.

Lựa chọn Loại Mô tả
connection_type SUBSCRIPTION hoặc ON_DEMAND Nếu được đặt thành SUBSCRIPTION, dịch vụ Đo từ xa sẽ đăng ký nguồn dữ liệu. Nếu được đặt thành ON_DEMAND, thì dịch vụ Đo từ xa sẽ chỉ tìm nạp thông báo từ nguồn dữ liệu theo yêu cầu.
configuration google.protobuf.Any Nếu được đặt, dịch vụ Đo từ xa sẽ chuyển đối tượng cấu hình đến nguồn dữ liệu khi giao tiếp với nguồn dữ liệu đó.
sub_sampling_interval google.protobuf.Duration Nếu được đặt, các thông báo sẽ được lấy mẫu phụ, để dịch vụ Đo từ xa xử lý tối đa một thông báo trong khoảng thời gian sub_sampling_interval.
fetch_last_message bool Nếu được đặt, dịch vụ Đo từ xa sẽ truy xuất thông báo đã xuất bản gần đây nhất khi đăng ký nguồn dữ liệu, ngay cả khi thông báo đó đã được xuất bản trong quá khứ.

Tuỳ thuộc vào loại nguồn dữ liệu (xem các phần sau), chỉ một nhóm nhỏ các tham số được dịch vụ Đo từ xa hỗ trợ. Bảng sau đây cung cấp thông tin tổng quan.

Lựa chọn Dịch vụ SDV RPC Dịch vụ xác minh tài liệu nguồn (SDV) xuất bản-đăng ký (pub/sub) Nhà xuất bản dựa trên Sổ đăng ký nhà xuất bản có thể định cấu hình
connection_type: SUBSCRIPTION Được hỗ trợ 1 Được hỗ trợ Được hỗ trợ
connection_type: ON_DEMAND Được hỗ trợ 2 Được hỗ trợ Được hỗ trợ 3
configuration Được hỗ trợ Không áp dụng Được hỗ trợ
sub_sampling_interval Không được hỗ trợ Được hỗ trợ 4 Không được hỗ trợ
fetch_last_message Không được hỗ trợ Được hỗ trợ 5 Không được hỗ trợ
1 Được hỗ trợ nếu bạn triển khai phương thức CreateSubscription.
2 Được hỗ trợ nếu bạn triển khai phương thức GetLatestMessage.
3 Được hỗ trợ nếu PublisherInfo.supportsGettrue.
4 Được hỗ trợ cho connection_type: SUBSCRIPTION, không áp dụng cho connection_type: ON_DEMAND.
5 Hỗ trợ cho connection_type: SUBSCRIPTION, không áp dụng cho connection_type: ON_DEMAND.

Dịch vụ SDV (thông qua ngăn xếp giao tiếp SDV)

Dịch vụ Đo từ xa có thể thu thập dữ liệu từ các dịch vụ SDV khác. Cả dịch vụ RPC và dịch vụ SDV pub/sub đều được hỗ trợ. Vì dịch vụ Đo từ xa không biết danh sách các dịch vụ mà dịch vụ này sẽ đăng ký tại thời điểm xây dựng, nên dịch vụ này dựa vào tính năng phản chiếu Protobuf để giải mã các thông báo nhận được từ các dịch vụ SDV.

Theo mặc định, các dịch vụ SDV không cung cấp siêu dữ liệu phản chiếu. Để có thể sử dụng dịch vụ SDV làm nguồn dữ liệu đo từ xa, bạn phải bật tính năng tạo cấu hình thời gian chạy cho danh mục VSIDL của dịch vụ. Để biết thêm thông tin, hãy xem Hướng dẫn về nhà cung cấp VSIDL dành cho nhà phát triển gói dịch vụ.

Chỉ nhằm mục đích kiểm thử và đánh giá, bạn có thể đặt lựa chọn register_reflection_metadata thành true trong định nghĩa gói dịch vụ. Để biết thêm thông tin, hãy xem bài viết Gói dịch vụ.

Dịch vụ SDV RPC

Dữ liệu đo từ xa có hạn chế về việc hỗ trợ các dịch vụ SDV RPC. Để biết thêm thông tin, hãy xem phần Xác định các dịch vụ RPC. Để thu thập dữ liệu từ một dịch vụ SDV RPC, dịch vụ đó phải hiển thị một hoặc cả hai phương thức RPC sau:

  • CreateSubscription trả về một luồng phản hồi do người dùng xác định:

    rpc CreateSubscription(<configuration>) returns (stream <response>)
    
  • GetLatestMessage trả về một phản hồi do người dùng xác định:

    rpc GetLatestMessage(<configuration>) returns (<response>)
    

Bạn có thể sử dụng đối số cấu hình để tham số hoá hành vi của nguồn dữ liệu, ví dụ: yêu cầu tần suất xuất bản khác hoặc chọn thực thể mà bạn muốn đăng ký (ví dụ: lốp nào để đọc áp suất lốp).

Khi xác định một dịch vụ SDV RPC làm nguồn dữ liệu trong cấu hình chỉ số, bạn có thể chỉ định một giá trị configuration trong định nghĩa nguồn dữ liệu. Giá trị này được dùng làm đối số cho RPC này. Dịch vụ Đo từ xa sẽ xử lý đối tượng cấu hình một cách minh bạch và truyền qua bất cứ thứ gì bạn xác định.

Loại đối số cấu hình cho cả hai phương thức có thể là google.protobuf.Any hoặc một loại do người dùng xác định. Nếu bạn cung cấp cả hai phương thức, thì các loại đối số phải giống nhau. Nếu không cần đối số cấu hình cho các phương thức RPC này, hãy sử dụng google.protobuf.Empty.

Tuỳ thuộc vào connection_type được chỉ định trong định nghĩa nguồn dữ liệu của cấu hình chỉ số, dịch vụ Đo từ xa sẽ gọi CreateSubscription (đối với connection_type: SUBSCRIPTION) hoặc GetLatestMessage (đối với connection_type: ON_DEMAND).

Dịch vụ SDV Pub/Sub

Dữ liệu đo từ xa hỗ trợ đầy đủ việc giám sát các kênh xuất bản/đăng ký được xác định trong VSIDL do các dịch vụ SDV cung cấp mà không cần thêm cấu hình nào. Để biết thêm thông tin, hãy xem bài viết Thêm nhà xuất bản vào gói dịch vụ.

Ngoài việc đăng ký các kênh xuất bản/đăng ký, Telemetry còn hỗ trợ truy xuất theo yêu cầu thông báo mới nhất được xuất bản cho một kênh.

Sổ đăng ký nhà xuất bản có thể định cấu hình

Ngoài việc thu thập dữ liệu từ các dịch vụ SDV bằng ngăn xếp giao tiếp SDV, Telemetry còn hỗ trợ thu thập dữ liệu từ các ứng dụng và dịch vụ đăng ký nhà xuất bản trong Configurable Publisher Registry (Sổ đăng ký nhà xuất bản có thể định cấu hình) của dịch vụ Telemetry. Khả năng này hữu ích nhất trên IVI, nơi không có ngăn xếp giao tiếp SDV.

Sổ đăng ký nhà xuất bản có thể định cấu hình cũng có thể hữu ích cho việc gỡ lỗi và tạo mẫu mà không cần phải ghi các gói dịch vụ SDV. Để biết thêm thông tin, hãy xem phần Sổ đăng ký nhà xuất bản có thể định cấu hình.