nl:: örgü:: Profiller:: Yazılım güncellemesi:: Resim Sorgusu

#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>

Görüntü sorgu mesajlarının oluşturulmasını ve kodunun çözülmesini destekleyen bir sınıf.

özet

Görüntü sorgu çerçevesi tel üzerinde aşağıdaki forma sahiptir

uzunluk Alan adı
1 bayt çerçeve kontrolü
6 bayt ürün özellikleri
değişken sürüm belirtimi
2,4 bayt bütünlük türü listesi
2.5 bayt güncelleme şeması listesi
değişken yerel ayar belirtimi (isteğe bağlı)
8 bayt hedef düğüm kimliği
değişken satıcıya özel veriler (isteğe bağlı)
çerçeve kontrol alanının aşağıdaki gibi bit alanlarına sahip olduğu durumlarda:

Bit anlam
0 1 - satıcıya özel veriler mevcut, 0 - mevcut değil
1 1 - yerel ayar özelliği mevcut, 0 - mevcut değil
2 1 - hedef düğüm kimliği mevcut, 0 - mevcut değil
3..7 Ayrılmış
ImageQuery , bir yapı biraz farklı olarak uçuş gösteriminden okur. Özellikle, sürüm ve yerel ayar, boş sonlandırılmış c-dizeleridir ((uzunluk, karakter) gruplarının aksine) ve isteğe bağlı öğelerin her ikisi de null yapılabilir işaretçiler olarak temsil edilir, bu nedenle kontrol edilecek ayrı bir boole yoktur.

Yapıcılar ve Yıkıcılar

ImageQuery ()
Varsayılan yapıcı ImageQuery .

Genel özellikler

integrityTypes
Cihaz tarafından desteklenen bütünlük türleri.
localeSpec
Görüntü sorgusunun yapıldığı aygıtta yürürlükte olan POSIX yerel ayarını içeren değişken uzunluklu bir UTF-8 dizesi.
packageSpec
Satıcıya özel bir paket belirtimi dizesi içeren değişken uzunluklu bir UTF-8 dizesi.
productSpec
Görüntü sorgusunu yapan cihazı açıklayan ürün özellikleri.
targetNodeId
uint64_t
Sorgunun yapıldığı aygıtın isteğe bağlı düğüm kimliği.
theMetaData
Satıcıya özel veri alanının uzunluğu değişkendir ve yukarıda açıklanan alanların ötesinde, Örgü mesajı yükünün geri kalanını kaplar.
updateSchemes
Cihaz tarafından desteklenen güncelleme şemaları (indirme protokolleri).
version
Sorgunun yapıldığı aygıtın satıcı tarafından belirtilen yazılım sürümünü içeren değişken uzunluklu bir UTF-8 dizesi.

Kamu işlevleri

init ( ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Açıkça başlatmak ImageQuery sağlanan değerlerle nesne.
operator== (const ImageQuery &) const
bool
Bir eşitlik operatörü.
pack (PacketBuffer *)
Altında yatan serialize ImageQuery sağlanan PacketBuffer içine.
print (void)
void

Genel statik işlevler

parse (PacketBuffer *, ImageQuery &)
Sağlanan içine PacketBuffer sağlanan görüntü sorgu mesajı Deserialize ImageQuery .

Genel özellikler

bütünlük türleri

IntegrityTypeList integrityTypes

Cihaz tarafından desteklenen bütünlük türleri.

yerel özellik

ReferencedString localeSpec

Görüntü sorgusunun yapıldığı aygıtta yürürlükte olan POSIX yerel ayarını içeren değişken uzunluklu bir UTF-8 dizesi.

Dizenin içeriği, ISO/IEC 15897'de belirtildiği gibi POSIX yerel ayar tanımlayıcı biçimine uygun olmalıdır, örneğin Avustralya İngilizcesi için en_AU.UTF-8.

paketÖzelliği

ReferencedString packageSpec

Satıcıya özel bir paket belirtimi dizesi içeren değişken uzunlukta bir UTF-8 dizesi.

Alanın içeriği, 'rpm', 'deb', 'tgz', 'elf' vb. gibi yazılım görüntüsü için istenen kapsayıcı türünü tanımlar. (NOT: Bu alan, protokolün Nest uygulamalarında kullanılmaz)

ürünÖzelliği

ProductSpec productSpec

Görüntü sorgusunu yapan cihazı açıklayan ürün özellikleri.

hedefNodeId

uint64_t targetNodeId

Sorgunun yapıldığı aygıtın isteğe bağlı düğüm kimliği.

Hedef düğüm kimliği alanı isteğe bağlıdır. Eğer yoksa, sorgunun hedef düğüm kimliği, dolaylı olarak resim sorgu mesajının kaynağı olan düğümdür.

Hedef düğüm kimliği alanı genellikle GÖRÜNTÜ SORGU iletisinin kaynağı olan düğümün başka bir düğüm için yazılım güncelleme proxy'si olarak hizmet verdiği durumlarda kullanılır.

MetaVeri

ReferencedTLVData theMetaData

Satıcıya özel veri alanının uzunluğu değişkendir ve yukarıda açıklanan alanların ötesinde, Örgü mesajı yükünün geri kalanını kaplar.

Alan, sorgunun yapıldığı cihaz hakkında satıcıya özel bilgileri kodlar. Satıcıya özel veri alanı isteğe bağlıdır. Varsa, alan anonim TLV kodlu bir yapıya sahiptir. Bu yapı içerisinde sunulan etiketler, tam nitelikli profile özel etiketler olacaktır.

güncelleme Şemaları

UpdateSchemeList updateSchemes

Cihaz tarafından desteklenen güncelleme şemaları (indirme protokolleri).

versiyon

ReferencedString version

Sorgunun yapıldığı aygıtın satıcı tarafından belirtilen yazılım sürümünü içeren değişken uzunluklu bir UTF-8 dizesi.

32 veya daha küçük uzunlukta olmalıdır.

Kamu işlevleri

Resim Sorgusu

 ImageQuery()

Varsayılan yapıcı ImageQuery .

ImageQuery çağrılarak doldurulur edilebilir init () veya bir mesajın nesneyi deserializing ile.

içinde

WEAVE_ERROR init(
  ProductSpec & aProductSpec,
  ReferencedString & aVersion,
  IntegrityTypeList & aTypeList,
  UpdateSchemeList & aSchemeList,
  ReferencedString *aPackage,
  ReferencedString *aLocale,
  uint64_t aTargetNodeId,
  ReferencedTLVData *aMetaData
)

Açıkça başlatmak ImageQuery sağlanan değerlerle nesne.

Ayrıntılar
parametreler
[in] aProductSpec
Ürün özellikleri.
[in] aVersion
Yazılımın şu anda yüklü sürümü.
[in] aTypeList
İstemci tarafından desteklenen bütünlük türleri.
[in] aSchemeList
İstemci tarafından desteklenen güncelleme şemaları.
[in] aPackage
İstemci tarafından desteklenen isteğe bağlı bir paket özelliği.
[in] aLocale
İstemci tarafından istenen isteğe bağlı bir yerel ayar özelliği.
[in] aTargetNodeId
İsteğe bağlı bir hedef düğüm kimliği.
[in] aMetaData
İsteğe bağlı bir TLV kodlu satıcı veri bloğu.
İadeler
WEAVE_NO_ERROR Koşulsuz.

operatör==

bool operator==(
  const ImageQuery &
) const 

Bir eşitlik operatörü.

Ayrıntılar
parametreler
another
Bir ImageQuery buna karşı denetlemek için ImageQuery
İadeler
her iki nesnedeki tüm alanlar eşitse true , aksi takdirde false

paket

WEAVE_ERROR pack(
  PacketBuffer *
)

Altında yatan serialize ImageQuery sağlanan PacketBuffer içine.

Ayrıntılar
parametreler
[in] aBuffer
Sorgunun paketleneceği bir paket arabelleği
Dönüş Değerleri
WEAVE_NO_ERROR
başarı üzerine
WEAVE_ERROR_BUFFER_TOO_SMALL
Eğer ImageQuery sağlanan tampon sığmayacak kadar büyüktür.

Yazdır

void print(
  void
)

Genel statik işlevler

ayrıştırmak

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Sağlanan içine PacketBuffer sağlanan görüntü sorgu mesajı Deserialize ImageQuery .

Ayrıntılar
parametreler
[in] aBuffer
Görüntü sorgusunun ayrıştırılacağı pakete yönelik bir işaretçi
[in] aQuery
Sonucun yerleştirileceği bir nesne
İadeler
WEAVE_NO_ERROR Başarı üzerine
İadeler
WEAVE_ERROR_BUFFER_TOO_SMALL mesajı tüm alanları içerir kadar küçük olursa ImageQuery
İadeler
WEAVE_ERROR_INVALID_LIST_LENGTH mesajı bir içeriyorsa IntegrityTypeList veya UpdateSchemeList çok uzundu