RemotiveBroker'ın gRPC API'sini ve bunun otomotiv yazılımının prototipini oluşturmayı, oluşturmayı ve test etmeyi nasıl kolaylaştırdığını öğrenin. Yazılımı istediğiniz şekilde ve seçtiğiniz programlama dilinde oluşturun. GitHub'ımızda herkese açık bir depoda bulunan Python sarmalayıcısı ve gRPC taslaklarıyla işleri kolaylaştırıyoruz.
Python kullanarak hızlı bir prototip mi yapmak istiyorsunuz? Rust'la ilgileniyor musunuz? RemotiveBroker gRPC API'si, araç sinyal verilerini seçtiğiniz dilde okumak ve yazmak için kullanılabilir. Bu, gerçek araç sinyal verilerine dayanan uygulamaları hızlı bir şekilde oluşturmak için tercih ettiğiniz araçları kullanabileceğiniz anlamına gelir. Basit bir konfigürasyon ve bir sinyal veri tabanı dosyası göz önüne alındığında, kayıtlı verilerle veya fiziksel bir araç içinde canlı verilerle hemen çalışmaya başlayabilirsiniz.
İster kayıtlı ister canlı verilerle çalışıyor olun, aynı API'yi kullanın, uygulamanızı bir kez yazın ve masaüstünüzde ve araç içinde test edin! Önceden kaydedilmiş sürücü döngülerini, örneğin deterministik bir ECU test kurulumunda veya grafik kullanıcı arayüzlerinin prototipini oluştururken yeniden kullanabilirsiniz. Yaptığınız işten memnun kaldığınızda, gerçek bir sola kaydırma ruhuyla, kodun test edildiğini bilerek onu bir test donanımına veya fiziksel araca getirebilirsiniz.
İşbirliği platformumuz RemotiveCloud ile eşleştirildiğinde, birden fazla sanallaştırılmış RemotiveBroker ile geliştirme çalışmalarınızı hızlı bir şekilde ölçeklendirebilirsiniz!
Üç satır kodla bir RemotiveBroker başlatın:
$ git clone https://github.com/remotivelabs/remotivebroker-bootstrap.git $ cd remotivebroker-bootstrap $ docker-compose up -d
3 dakikalık ücretsiz demomuzu deneyin veya Github'daki API'ler , basit örnekler , ProtoPie entegrasyonu gibi bazı içeriklerimize göz atın ve masaüstünüzde RemotiveBroker önyüklemesini çalıştırmak için depoya gidin.
RemotiveBroker çoğu kuruluma uyan esnek bir geliştirici aracıdır. araç sinyal verilerini bir pub/sub gRPC API aracılığıyla ortaya çıkarır. .dbx, .xml (fibex), .ldf ve .arxml tarafından etkinleştirilen CAN, Flexray, LIN ve Otomotiv Ethernet gibi en yaygın araç ağlarını destekliyoruz. Ayrıca E2E Korumasını da kanıtladık.
Sarmalayıcılarımız ve taslaklarımız için halka açık bir depomuz var. Herkes kendi favori dilinde bir sarmalayıcıyla çekme isteği gönderebilir, gRPC protokol dosyalarımıza başlayabilirsiniz. Amacımız ambalajlayıcıları ve taslakları/istemcileri herkesin kullanımına sunmaktır.
Basit bir yapılandırma verildiğinde RemotiveBroker, kontrolün sizde olmasını sağlayan bir gRPC API'sini ortaya çıkaracaktır. GRPC'nin sahip olduğu geniş dil desteği sayesinde Node.js, Ruby, C# veya Kotlin gibi tercih ettiğiniz dilleri kullanabilirsiniz. gRPC, HTTP/2'den ve ikili mesaj biçiminden yararlanır; bu, ağ bant genişliğinin azaltılmasına ve gecikmenin azaltılmasına yardımcı olur. Bu, RemotiveBroker'ımızın, yüksek hızlı CAN & CAN-FD veya FlexRay durumunda olduğu gibi büyük miktarda veriyi gerçek zamanlı olarak göndermesine olanak tanır.
Uygulama oluşturmayı daha da kolaylaştırmak amacıyla RemotiveBroker API'sinin bir alt kümesi için bir Python sarmalayıcı API'miz var. Ayrıca Python Paket Dizini aracılığıyla kolay kurulum için de mevcuttur. Bu sarmalayıcı API, RemotiveBroker'a bağlanma ve araç sinyal verileri aboneliklerini ayarlama gibi genel işlemleri gerçekleştirmeyi kolaylaştırır.
Bir RemotiveBroker'a bağlanın ve bir sinyal aboneliği ayarlayın:
# Connect to RemotiveBroker client = Client() client.on_connect = lambda c: print(f"Yay! - connected as {c.client_id} to {c.url}") client.on_signals = lambda signals: print(signals.to_json()) client.connect(url="http://localhost:50051") subscription = client.subscribe( signal_names=["Vehicle.Speed"], namespaces=["vss"], changed_values_only=False)
Web istemcilerimizde gRPC-web ile çalıştığımızdan, grpc-web için hem TypeScript hem de Javascript taslaklarımız/istemcilerimiz mevcuttur. Ayrıca npm/yarn aracılığıyla da mevcuttur. Uygun bir sarmalayıcı API kadar kullanışlı olmasa da, gRPC ile çalışırken saplamalar/istemciler gereklidir. Ancak API'yi keşfederken yalnızca taslaklara bakmak yararlı olacaktır.
Çerçeve frekansı dağıtımına abone olun:
// Setup request const config = new FramesDistributionConfig() const namespace = new NameSpace()namespace.setName(namespaceName) config.setNamespace(namespace) // Subscribe this._frameDistributionStream = this._networkServiceClient.subscribeToFramesDistribution(config)
Araçlarımız ve API'lerimiz sürekli olarak gelişmektedir.
Daha fazla yararlı geliştirici içeriğini kaçırmamak için bizi GitHub ve LinkedIn'de takip edin.
Bundan sonra ne geliştirmemiz gerektiğine dair dilekleriniz veya düşünceleriniz varsa yabancı olmayın!