Bu sayfa C++ için adım adım yol gösterir: ortamı hazırlama → derleme → projenize entegre etme → ilk isteği gönderme. C++ istemcisi yalnızca Linux üzerinde çalışır.
Gereksinimler
| Öğe | Sürüm | Not |
|---|---|---|
| İşletim sistemi | Linux | Ubuntu 22.04 üzerinde doğrulandı |
| CMake | 3.16 veya daha yeni | 3.22.1 ile test edildi |
| C++ derleyicisi | C++14 | GCC 11.4 ile test edildi |
git, ağ | — | sabitlenmiş bağımlılıkları almak için yapılandırma sırasında gerekir |
| OpenSSL geliştirme dosyaları | — | libssl-dev |
| lz4 geliştirme dosyaları | 1.9 veya daha yeni | liblz4-dev, pkg-config ile bulunur |
CMake, derleme sırasında iki bağımlılığı alır ve sabitler; elle kurulum gerekmez:
| Bağımlılık | Sürüm | Neden |
|---|---|---|
| protobuf | v21.12 (3.21.12) | üretilen kod ve çalışma zamanı aynı sürüm olmalıdır |
| paho.mqtt.c | v1.3.13 | cihaz tarafının derlendiği sürüm |
Sistem bağımlılıklarını kurun (Ubuntu):
sudo apt-get update
sudo apt-get install -y build-essential cmake git libssl-dev liblz4-dev pkg-config
Derleme ve test
Deponun kök dizininden:
cmake -S cpp -B cpp/build
cmake --build cpp/build -j
ctest --test-dir cpp/build --output-on-failure
İlk yapılandırma protobuf'u kaynaktan derler. Doğrulama yapılan makinede (Ubuntu 22.04) temiz bir derleme, 20 paralel iş ile yaklaşık 47 sn sürdü.
Not: Ubuntu 22.04, bu projenin gereksinimlerinin altında kalan protobuf 3.12.4 sürümünü içerir. Varsayılan
AUTOseçeneği bunun yerine sabitlenmiş sürümü (3.21.12) otomatik olarak derler; sizin herhangi bir işlem yapmanız gerekmez.
Derleme çıktısı, cpp/build/examples/ dizininde 18 örnek içerir:
./cpp/build/examples/heartbeat --seconds 5 # no key needed
./cpp/build/examples/device_info --key <provided by XGRIDS>
./cpp/build/examples/modeling --key <provided by XGRIDS> --project demo --watch 8
Projenize Entegre Etme
Henüz install veya CMake paket dışa aktarımı yoktur; cpp/ dizinini projenize add_subdirectory ile ekleyin (protobuf ve paho bu komutla indirilir):
set(LIXEL_OPENAPI_BUILD_TESTS OFF)
set(LIXEL_OPENAPI_BUILD_EXAMPLES OFF)
add_subdirectory(path/to/Lixel_OpenAPI/cpp lixel)
target_link_libraries(my_app PRIVATE LixelOpenApi::lixel_openapi)
İlk İsteğiniz
Cihaza bağlanın ve cihaz bilgilerini sorgulayın:
#include "lixel/openapi/client.h"
#include "openapi/aiot_msgs.pb.h"
lixel::openapi::ClientOptions options;
options.transport.host = "192.168.55.1";
options.openapi_key = "<provided by XGRIDS>";
lixel::openapi::Client client(options);
if (!client.Connect().ok()) return 1;
openapi::aiot_msgs::DeviceInfoRequest request;
openapi::aiot_msgs::DeviceInfoResponse response;
lixel::openapi::Result r = client.Request(
"lixel/application/request/device_info", request,
"lixel/application/response/device_info", &response);
// r.ok(): the device answered with a success code.
// r.code == Errc::DeviceError: the device answered with an error code (see r.device_code, r.desc), response is filled.
// r.code == Errc::RequestTimeout: no response arrived.
Request, header.seq, header.openapi_key ve header.device_id alanlarını isteğe otomatik olarak doldurur. Yanıt, cihazın geri kopyaladığı header.seq değeriyle eşleştirilir.
Sonraki Adımlar
- İstemci API'si, nokta bulutu kod çözme, tarama akışı, 18 örnek ve Python'dan farklar için İstemci ve Örnekler bölümüne bakın.
- Protokolün kendisi (bağlantı modları, arayüz kataloğu, hata kodları) için ortak bölümlere bakın: Bağlantı ve Kimlik Doğrulama, Arayüz Kataloğu ve Hata Kodları.
Bu bölüm XGRIDS'in resmî kullanım kılavuzundan Türkçeye çevrildi; ekran görüntüleri ve arayüz adları özgün haliyle İngilizcedir. İngilizce aslı (yeni sekmede açılır) · Güncelleme:

