SOME/IP yığınını uygulama

SOME/IP yığını, Android Arayüz Tanımlama Dili (AIDL) arayüzü aracılığıyla düşük düzeyli SOME/IP aktarım mantığını yönetir. Bu yığın, SOME/IP etkinlikleri ve Uzak Prosedür Çağrıları (RPC'ler) gönderir ve alır. Bu belgede aşağıdaki kavramlar açıklanmaktadır:

  • Referans uygulama: SDV, SOME/IP yığını için üretim dışı bir referans örnek uygulama sağlar.

  • Binder API: ISomeIpStack arayüzü, bir SOME/IP yığını örneğiyle etkileşim kurma yöntemlerini tanımlar.

  • SELinux: Referans yığını için örnek bir SELinux yapılandırması, bağlayıcı iletişimi ve ayrıntılı dosya sistemi erişimini etkinleştirir.

Bu yığın, SOME/IP kablo biçimini okurken yükü opak ikili blob'lar olarak bırakır ve yükü SOME/IP aracısına yönlendirir.

SOME/IP standardı, yığın veya yığın API katmanı tanımı sağlamaz. SDV, standardın bilinen tanımları içinde çalışan bir AIDL API sağlar ve mevcut yığınları uyarlamak için minimum düzeyde kodlama gerektirir.

Bu API, yığının farklı uygulamalarını seçmenize olanak tanır ve yığının sistemdeki diğer bileşenlerle entegrasyonunu kolaylaştırır.

Referans uygulama

SDV, SOME/IP yığını için üretim dışı bir referans örnek uygulaması sağlar ve açık kaynaklı COVESA vsomeip kitaplığının üzerinde ince bir sarmalayıcıdan oluşur. Sistem, referans yığını yalnızca sdv_core_cf ve sdv_core_arm64 hedeflerine dağıtır ve init.rc, CID=3 ile sanal makinede başlatır.

on property:dev.bootcomplete=1 && property:ro.sdv.vsock_local_cid=3
    start sdv_someip_stack_agent

OEM tarafından tanımlanan yığın için üretim dağıtımı yapılandırmasını tanımlayın. Daha fazla bilgi için SOME/IP'yi SDV ile entegre etme başlıklı makaleyi inceleyin.

Yapılandırma

Referans yığını, vSomeIP kitaplığı için bir yapılandırma bildirir. Yapılandırma yapısının açıklaması için Yapılandırma Dosyası Yapısı'na bakın. Yapılandırma kapsamında, çoklu yayın adresi ve yığın tarafından kullanılan bağlantı noktası gibi SOME/IP SD parametrelerini belirtiriz.

Binder API

ISomeIpStack arayüzü, core_services/some_ip/aidl/google/sdv/someip içinde tanımlanır. ISomeIpStack arayüzü, SOME/IP yığını örneğiyle etkileşim kurma yöntemlerini tanımlar ve bu öğeler için temel nitelikler sağlar.

Hizmet kullanılabilirliği

  • register_availability_callback Hizmet kullanılabilirliği değişiklikleri için geri çağırma kaydeder.

  • monitor_service Yığına, belirli bir hizmetin kullanılabilirliğini izlemesi talimatını verir.

  • unregister_availability_callback Kullanılabilirlik geri çağırmasını kaydını siler.

  • on_sdv_service_availability SDV hizmetinin kullanılabilirliğinde değişiklik olduğunu gösterir.

Uzak prosedür çağrıları (RPC)

Aşağıdakilerle bir RPC isteği gönderebilirsiniz:

  • rpc_transact yanıt beklemek için
  • rpc_oneway yanıt beklememek için

RPC isteği işleme için:

  • register_rpc_request_callback Gelen RPC istekleri için geri arama kaydeder.

  • unregister_rpc_request_callback RPC isteği geri aramasını kaydını siler.

Etkinlik bildirimi

  • register_event_notification_callback Abone olunan etkinlik bildirimleri için geri çağırma kaydeder.

  • unregister_event_notification_callback Etkinlik bildirimi geri çağırma işlevinin kaydını siler.

  • on_sdv_topic_availability SDV konusu kullanılabilirliğinde değişiklik olduğunu gösterir.

  • subscribe Bir etkinlik grubundaki belirli bir etkinliğe abone olur.

  • unsubscribe Belirli bir etkinliğin e-posta listesinden çıkma

  • publish Belirli bir yükle bir etkinlik yayınlar.

SELinux

device/google/sdv/sdv_core_base/sepolicy/samples/vendor/ klasörü, referans yığını için örnek bir SELinux yapılandırması içerir:

  • sdv_someip_stack_default.te, sdv_someip_stack_default türünü tanımlar ve bunu özellikler ile bağlamlarla eşler.

  • file_contexts ikili dosyaları ve veri klasörlerini uygun bağlamlarla eşler.

Yapılandırma, yığın ile aracı arasında Binder iletişimini etkinleştirerek ağ kalitelerine erişime ve cihazın dosya sistemine ayrıntılı erişime olanak tanır.