Bağlantı zaman aşımı
Aşağıdakileri kontrol edin:
- Cihaz ana bilgisayarının (host) ve bağlantı noktasının (port) doğru olup olmadığı (MQTT için 1883, MQTTS için 8883).
- Protokolün cihaz modeliyle uyumlu olup olmadığı (L2PRO MQTT kullanır; K2, H1, F1 ve Porcam için MQTTS kullanıldığı bilinmektedir, diğer modeller cihazın fiilen sunduğu bağlantı noktasını izler).
- MQTTS için kullanıcı adı ve parolanın girilip girilmediği.
Bağlantı başarısız olduğunda sarmalayıcının (wrapper) connect() yöntemi bir istisna oluşturur: ulaşılamayan adres veya kapalı bağlantı noktası OSError oluşturur (ConnectionRefusedError dahil; Python 3.10+ sürümünde ağ zaman aşımı TimeoutError olur). TCP bağlantısı kurulmuş ancak 10 saniye içinde başarılı bir CONNACK gelmemişse (aracının bağlantıyı reddetmesi dahil) TimeoutError oluşur. Zaman aşımı ClientOptions.connect_timeout ile ayarlanır.
Yanıt yok / istek zaman aşımı
Önce cihazın yanıt verip vermediğini kontrol edin:
EC_ProtoErrorile yanıt verdi,descdeğeriopenapi auth error:openapi_keyeksik veya yanlış. Cihaz hemen yanıt verir, bu nedenle bu bir zaman aşımı değildir.- Hiç yanıt yok,
request()TimeoutErroroluşturuyor: istek konusunun (topic) ileti türüyle eşleştiğini ve cihazın yanıt verebilecek bir durumda olduğunu doğrulayın. Bazı istekler cihaz bekleme modundayken yanıtlanmaz, ör.modeling_statusvecontrol_point; yanıt, tarama sırasında alındı (ölçüldü). Cihaz açıldıktan hemen sonra hazır olmayabilir; öncedevice_infoisteğini yeniden deneyin.
request() varsayılan olarak 10 saniyelik zaman aşımı kullanır; bu değer --timeout betik argümanı veya ClientOptions.request_timeout ile ayarlanabilir.
Protobuf sürüm hatası
Modülü yeniden oluşturmak için python python/src/generate_proto.py komutunu çalıştırın; böylece üretilen kod (gencode) çalışma zamanındaki protobuf sürümüyle uyumlu kalır. Proje, C uzantısı uyumsuzluklarını önlemek için varsayılan olarak saf Python uygulamasını kullanır.
Nokta bulutu çözme başarısız
Sırayla kontrol edin:
- Açma (decompression) bağımlılıklarını kurun:
pip install lz4 zstandard. - Cihazın taramada olduğunu doğrulayın; bekleme modunda poza abone olmak veri üretmedi (ölçüldü) ve nokta bulutu yalnızca tarama sırasında alınabilir.
CompressionLz4verisi LZ4 blok biçimindedir;lz4.block.decompress(data, uncompressed_size=compressed_size)ile açın.lz4.framekullanmakERROR_frameType_unknownhatasıyla sonuçlanır.- Çözülen
x,y,zvescalerdeğerleri dizedir (string). Önce bunları tam sayıya dönüştürün, ardından koordinatı yeniden oluşturmak için iletim sırasındaki (wire) tam sayıyıheader.scalerdeğerine bölün. Bkz. Gerçek Zamanlı Veri. - Abonelik geri çağırma (callback) işlevindeki bir istisna yalnızca günlüğe kaydedilir ve programı kesintiye uğratmaz. Hata ayıklarken terminal günlük çıktısını izleyin.
Nokta bulutu çözmenin tüm adımları için Gerçek Zamanlı Veri sayfasına bakın.
Enum alanları nasıl doldurulur
Enum alanları enum adı dizesini (önerilir, ör. "AC_START") veya tam sayı değerini kabul eder.
Not: Yanlış yazılmış bir enum adı veya alan adı kodlama sırasında bildirilmez; sessizce yok sayılır ve alan istekte yer almaz. Örneğin "AC_START" değerini "AC_STRAT" olarak yazarsanız: {"action": "AC_STRAT"} üzerinde codec.encode tek başına boş bayt üretir, request() ile gönderildiğinde yalnızca başlık (header) kalır ve cihaz action değerini AC_UNKNOW olarak görür. Bir enum'un sıfır değeri (ör. SM_PCL, RM_CALC) de iletimde kodlanmaz, bu nedenle cihaz isteği alan belirtilmemiş gibi görür. Bir parametrenin etkisi olmadığında, alan ve enum adlarını codec.default_json("<message name>") ile doğrulayın.
Ölçüm noktası / veri açma etkisiz
Bu iki özellik yalnızca belirli modellerde ve firmware sürümlerinde desteklenir. Kullanmadan önce cihaz bilgisi üzerinden firmware sürümünü sorgulayın ve hedef cihazın bu özelliği sunup sunmadığını XGRIDS ile doğrulayın. Özellik yoksa veya koşullar karşılanmıyorsa cihaz bir hata kodu döndürür. Örneğin testte bir Lixel L2Pro (firmware V3.2.1) cihazına ölçüm noktası isteği göndermek EC_RequestError (add point error) döndürdü. Ölçüm noktasını desteklemeyen cihazlarda, cihaz tarafı kaynak kodu rtk unavailable veya unsupported operation döndürür; geçerli proje yoksa project data empty döndürür. Bu üç durum test edilmedi.
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:

