Tìm hiểu API gRPC của RemotiveBroker và cách API đơn giản hóa việc tạo mẫu, xây dựng và thử nghiệm phần mềm ô tô. Xây dựng phần mềm theo cách bạn muốn và bằng ngôn ngữ lập trình bạn chọn. Chúng tôi làm mọi việc dễ dàng hơn với trình bao bọc Python và các sơ khai gRPC có sẵn trong kho lưu trữ công khai trên GitHub của chúng tôi.
Bạn muốn tạo một nguyên mẫu nhanh bằng Python? Bạn quan tâm đến Rust? API gRPC RemotiveBroker có thể được sử dụng để đọc và ghi dữ liệu tín hiệu xe bằng ngôn ngữ bạn chọn. Điều này có nghĩa là bạn có thể sử dụng các công cụ bạn muốn để nhanh chóng xây dựng các ứng dụng dựa trên dữ liệu tín hiệu xe thực. Với cấu hình đơn giản và tệp cơ sở dữ liệu tín hiệu, bạn có thể bắt tay vào làm việc ngay với dữ liệu đã ghi hoặc bên trong phương tiện vật lý có dữ liệu trực tiếp.
Sử dụng cùng một API bất kể bạn đang làm việc với dữ liệu được ghi hay dữ liệu trực tiếp, hãy viết ứng dụng của bạn một lần và kiểm tra nó trên máy tính để bàn cũng như bên trong xe! Bạn có thể sử dụng lại các chu kỳ truyền động đã ghi trước đó, ví dụ như trong thiết lập kiểm tra ECU xác định hoặc khi tạo nguyên mẫu giao diện người dùng đồ họa. Sau khi hài lòng với công việc của mình, bạn có thể, với tinh thần dịch chuyển trái thực sự, mang nó đến giàn thử nghiệm hoặc phương tiện vật lý khi biết rằng mã đã được kiểm tra.
Được kết hợp với nền tảng cộng tác của chúng tôi, RemotiveCloud , bạn có thể nhanh chóng mở rộng nỗ lực phát triển của mình với nhiều RemotiveBroker ảo hóa!
Bắt đầu RemoteBroker với ba dòng mã:
$ git clone https://github.com/remotivelabs/remotivebroker-bootstrap.git $ cd remotivebroker-bootstrap $ docker-compose up -d
Hãy dùng thử bản demo 3 phút miễn phí của chúng tôi hoặc xem một số nội dung của chúng tôi trên Github, ví dụ: API , mẫu đơn giản , tích hợp ProtoPie ) và đi tới kho lưu trữ để chạy bootstrap RemoteBroker trên máy tính để bàn của bạn .
RemoteBroker là một công cụ dành cho nhà phát triển linh hoạt phù hợp với hầu hết các thiết lập. nó hiển thị dữ liệu tín hiệu xe thông qua API gRPC pub/sub. Chúng tôi hỗ trợ các mạng phương tiện phổ biến nhất như CAN, Flexray, LIN và Ethernet ô tô – được hỗ trợ bởi .dbx, .xml (fibex), .ldf và .arxml. Chúng tôi cũng đã chứng minh tính năng Bảo vệ E2E.
Chúng tôi có một kho lưu trữ công khai cho các trình bao bọc và sơ khai của chúng tôi. Bất kỳ ai cũng có thể gửi yêu cầu kéo có trình bao bọc bằng ngôn ngữ yêu thích của họ, hãy bắt đầu với các tệp proto gRPC của chúng tôi. Tham vọng của chúng tôi là có sẵn các trình bao bọc và sơ khai/khách hàng cho tất cả mọi người.
Với cấu hình đơn giản, RemoteBroker sẽ hiển thị API gRPC giúp bạn nắm quyền kiểm soát. Với sự hỗ trợ ngôn ngữ rộng rãi mà gRPC có, bạn có thể sử dụng những gì bạn thích, ví dụ: Node.js, Ruby, C# hoặc Kotlin. gRPC tận dụng HTTP/2 và định dạng tin nhắn nhị phân, điều này giúp giảm băng thông mạng và giảm độ trễ. Điều này cho phép RemoteBroker của chúng tôi gửi lượng lớn dữ liệu trong thời gian thực, như trong trường hợp CAN & CAN-FD hoặc FlexRay tốc độ cao.
Chúng tôi có API trình bao bọc Python cho một tập hợp con của API RemotiveBroker để giúp việc xây dựng ứng dụng trở nên dễ dàng hơn nữa. Nó cũng có sẵn để dễ dàng cài đặt thông qua Python Package Index. API trình bao bọc này giúp thực hiện các thao tác phổ biến như kết nối với RemotiveBroker và thiết lập đăng ký dữ liệu tín hiệu xe dễ dàng hơn.
Kết nối với RemoteBroker và thiết lập đăng ký tín hiệu:
# 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)
Vì chúng tôi đang làm việc với gRPC-web trong các ứng dụng khách web của mình nên chúng tôi có sẵn cả sơ khai/ứng dụng khách Typescript và Javascript cho grpc-web. Nó cũng có sẵn thông qua npm/yarn . Mặc dù không hữu ích như một API trình bao bọc thích hợp, nhưng cần có các sơ khai/ứng dụng khách khi làm việc với gRPC. Tuy nhiên, chỉ cần nhìn vào phần sơ khai cũng sẽ hữu ích khi khám phá API.
Đăng ký phân bổ tần số khung hình:
// Setup request const config = new FramesDistributionConfig() const namespace = new NameSpace()namespace.setName(namespaceName) config.setNamespace(namespace) // Subscribe this._frameDistributionStream = this._networkServiceClient.subscribeToFramesDistribution(config)
Công cụ và API của chúng tôi không ngừng phát triển.
Theo dõi chúng tôi trên GitHub và LinkedIn để không bỏ lỡ nội dung hữu ích hơn dành cho nhà phát triển.
Nếu bạn có mong muốn hoặc suy nghĩ về những gì chúng ta nên phát triển tiếp theo thì đừng xa lạ!