Bu sayfa, bir mesajın kodunuzdaki dict'ten cihazdaki ikili veriye ve geri aldığınız dict'e kadar nelerden geçtiğini açıklar.
Konu Adlandırma Kuralları
Tüm iş konuları, lixel/application/ ortak önekiyle üç bölümlü bir şema kullanır:
lixel/<domain>/<type>/<name>
domain: iş alanı, çoğunluklaapplication.type: mesaj yönü.request: istemci → cihaz (istek)response: cihaz → istemci (isteğe yanıt)report: cihaz → istemci (etkin gönderim)
name: belirli özellik, örn.device_info,modeling,lio_pose.
Örneğin cihaz bilgisini sorgulamak için istek lixel/application/request/device_info konusuna gider, yanıt ise lixel/application/response/device_info konusundan gelir.
Mesaj Yükü
Heartbeat dışında her mesaj yükü Protobuf ikili verisidir; proto paketi openapi.aiot_msgs olarak tanımlıdır. Heartbeat, JSON metni olarak taşınan tek mesajdır; bu sayede Protobuf ayrıştırmadan bir cihaz keşfedilebilir ve protokol sürümü okunabilir.
Proto Derleme
Proto tanımını bir Python modülüne derlemek için birlikte gelen betiği kullanın:
python python/src/generate_proto.py
Not: Kod üretimi, mevcut ortamın
grpc_tools.protocaracını kullanır; böylece gencode sürümü, çalışma zamanındaki protobuf sürümüyle uyumlu kalır. Çalışma zamanında, ortamlar arasındaki C eklentisi uyumsuzluklarını önlemek içinPROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=pythonayarlanması önerilir.
JSON ↔ Protobuf
Projenin istemci sarmalayıcısı, dict/JSON ile Protobuf ikili verisi arasında dönüşüm yapmak için google.protobuf.json_format tabanlı ProtoCodec sınıfını sunar:
from example.core import ProtoCodec
codec = ProtoCodec()
# Encode: dict → Protobuf binary
data = codec.encode("DeviceControlRequest", {"action": "AC_SYSTEM_REBOOT"})
# Decode: Protobuf binary → dict
result = codec.decode("DeviceControlResponse", data)
# Generate a default template (with all fields)
template = codec.default_json("ModelingRequest")
Notlar:
- Enum alanları, enum adı dizesini (örn.
"AC_START") veya tam sayı değerini kabul eder. bytesalanları dict içinde base64 dizesi olarak görünür.- Alan adları proto snake_case biçimini korur.
Mesaj Yönü İşaretleri
Arayüz kataloğu mesaj yönü için üç işaret kullanır; bunlar sonraki bölümlerde de kullanılır:
| İşaret | Anlamı | Konu bölümü |
|---|---|---|
| REQ | İstek (istemci → cihaz) | request |
| RSP | Yanıt (cihaz → istemci) | response |
| RPT | Rapor (cihaz → istemci) | report |
Hata Taşıyıcı
İstek-yanıt mesajları sonucu, yanıttaki Error error = 15 alanında taşır:
message Error {
uint32 code = 1; // error code
string desc = 2; // descriptor
}
Hata kodu kategorileri ve anlamları için Hata Kodları bölümüne bakın.
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:

