Skip to content

VN-SDV/ibeji

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Dự án Eclipse Ibeji

Eclipse Ibeji nhằm mục đích cung cấp khả năng thể hiện một biểu diễn kỹ thuật số về trạng thái phương tiện và các khả năng của nó thông qua một kiến trúc có thể mở rộng, cởi mở và năng động, cung cấp quyền truy cập vào phần cứng, cảm biến và khả năng của xe.

Kiến trúc của Ibeji có Dịch vụ song sinh kỹ thuật số trong xe làm cốt lõi. Dịch vụ bản sao kỹ thuật số trong xe nắm bắt tất cả các khả năng chính của xe và cung cấp chúng cho người tiêu dùng Ibeji. Một thành phần khác trong kiến trúc của Ibeji là Nhà cung cấp. Một phương tiện có thể có một hoặc nhiều nhà cung cấp. Nhà cung cấp hiển thị một tập hợp con các khả năng chính của phương tiện bằng cách đăng ký chúng với Dịch vụ bản sao kỹ thuật số trong xe. Sau khi đã đăng ký với Đến lượt mình, Dịch vụ Bản sao Kỹ thuật số Trong Xe có thể được cung cấp cho người tiêu dùng Ibeji. Mỗi khả năng bao gồm siêu dữ liệu cho phép người tiêu dùng Ibeji hiểu bản chất của khả năng, cách làm việc với nó và cách truy cập từ xa.

Rust cần trình liên kết của gcc, vì vậy bạn sẽ cần cài đặt nó. Để cài đặt gcc, hãy làm như sau:

sudo apt install gcc

Tại thời điểm này, bạn sẽ cần sử dụng bản phát hành Rust hàng đêm. Mặc dù không lý tưởng nếu dựa vào bản phát hành hàng đêm, nhưng chúng ta có thể dựa vào bản phát hành ổn định của Rust vào một thời điểm nào đó trong tương lai không xa khi một số thùng Rust mà chúng tôi sử dụng cũng có thể dựa vào nó. Để cài đặt Rust, hãy làm như sau:

sudo apt update
sudo apt install -y snapd
sudo snap install rustup --classic
rustup toolchain install nightly-2022-08-11
rustup default nightly-2022-08-11

Nếu bạn đã cài đặt Rust nhưng đang sử dụng một bản phát hành khác thì bạn có thể chuyển sang bản phát hành nightly-2022-08-11 bằng cách chạy các lệnh sau:

Bạn sẽ cần cài đặt Trình biên dịch Protobuf. Điều này có thể được thực hiện bằng cách thực hiện:

sudo apt install -y protobuf

Repo có hai mô-đun con opendigitaltwins-dtdliot-plugandplay-models cung cấp các tệp ngữ cảnh DTDL và tệp mẫu DTDL. Để đảm bảo rằng những thứ này được bao gồm, vui lòng sử dụng lệnh sau khi nhân bản repo github của Ibeji:

git clone --recurse-submodules https://github.com/eclipse-ibeji/ibeji

Tốt nhất là chúng ta nên sử dụng crate json_ld 0.6.1 lấy nguồn từ tại đây. Tuy nhiên, nó hiện có vấn đề về bản dựng được thảo luận tại đây. Để khắc phục sự cố này, bạn sẽ cần sử dụng git clone để lấy nguồn từ tại đây và kiểm tra nhánh "resolve-issue-40" của nó. Nó sẽ được sao chép vào một thư mục là anh chị em với ibeji.

Hiện không có Trình phân tích cú pháp DTDL cho Rust, vì vậy chúng tôi đã cung cấp một trình phân tích cú pháp tối giản cho DTDL v2 dựa trên [Trình phân tích cú pháp DTDL JavaScript](https://github.com/Azure/azure-sdk-for-js/tree/ %40azure/dtdl-parser_1.0.0-beta.2/sdk/digitaltwins/dtdl-parser).

Khi bạn đã cài đặt các điều kiện tiên quyết, hãy chuyển đến thư mục gốc của phần đăng ký của bạn và chạy:

cargo build

Điều này sẽ xây dựng tất cả các thư viện và tệp thực thi.

Sau khi xây dựng thành công Ibeji, bạn có thể chạy tất cả các bài kiểm tra đơn vị. Để thực hiện việc này, hãy chuyển đến thư mục gốc của người đăng ký và chạy:

cargo test

Hiện tại, chúng tôi không có thử nghiệm tích hợp hoặc thử nghiệm đầu cuối.

Hiện tại có ba bản minh họa: một minh họa việc sử dụng thuộc tính, một minh họa việc sử dụng lệnh và một minh họa thể hiện việc sử dụng hỗn hợp các thuộc tính và lệnh.

Các bản trình diễn sử dụng tệp cấu hình và chúng tôi đã cung cấp phiên bản mẫu của từng tệp cấu hình. Những mẫu này có thể được tìm thấy trong:

  • {repo-root-dir}/core/invehicle_digital_twin/mẫu
  • {repo-root-dir}/samples/common/template

Các hướng dẫn sau đây dành cho bản demo để sử dụng thuộc tính.

Các bước:

  1. Cách tốt nhất để chạy bản trình diễn là sử dụng ba cửa sổ: một cửa sổ chạy Bản sao kỹ thuật số trong xe, một cửa sổ chạy "Nhà cung cấp" và một cửa sổ chạy "Người tiêu dùng". Định hướng ba cửa sổ để chúng được xếp thành một cột. Cửa sổ trên cùng có thể được sử dụng cho Twin kỹ thuật số trong xe. Cửa sổ ở giữa có thể được sử dụng cho Nhà cung cấp. Cửa sổ dưới cùng có thể được sử dụng cho Người tiêu dùng.

  2. Trong mỗi cửa sổ, hãy thay đổi thư mục thành thư mục chứa các tạo phẩm xây dựng. Đảm bảo rằng bạn thay thế "{repo-root-dir}" bằng thư mục gốc của kho lưu trữ trên máy mà bạn đang chạy bản trình diễn.

    cd {repo-root-dir}/target/debug

  3. Tạo ba tệp cấu hình có nội dung sau, nếu chưa có:

    ---- Consumer_settings.yaml ----
    consumer_authority: "0.0.0.0:6010"
    invehicle_digital_twin_url: "http://0.0.0.0:5010"

    ---- invehicle_digital_twin_settings.yaml ----
    invehicle_digital_twin_authority: "0.0.0.0:5010"

    ---- nhà cung cấp_settings.yaml ----
    provider_authority: "0.0.0.0:4010"
    invehicle_digital_twin_url: "http://0.0.0.0:5010"

  4. Trong cửa sổ trên cùng, hãy chạy:

    ./in-vehicle-digital-twin

  5. Trong cửa sổ ở giữa, hãy chạy:

    ./property-provider

  6. Trong cửa sổ dưới cùng, hãy chạy:

    ./property-consumer

  7. Sử dụng control-c trong mỗi cửa sổ khi bạn muốn dừng bản trình diễn.

Nếu bạn muốn người tiêu dùng và nhà cung cấp cho mỗi bản demo sử dụng Chariott để khám phá URL cho Dịch vụ bản sao kỹ thuật số trong xe, thay vì có nó được cung cấp tĩnh trong tệp cấu hình tương ứng của chúng, sau đó thực hiện các thao tác sau trước khi bắt đầu mỗi bản trình diễn:

  1. Sao chép một bản Chariott từ GitHub (https://github.com/eclipse-chariott/chariott).
  2. Xây dựng Chariott
  3. Đặt biến môi trường CHARIOTT_REGISTRY_TTL_SECS của Chariott thành một số cao (chúng tôi đề xuất 86400 giây), vì Ibeji không dựa vào Chariot

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

About

ibeji project

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 97.7%
  • Shell 1.8%
  • Handlebars 0.5%