nl

Weave 專屬的 nlassert.h Overrides,

摘要

列舉

@357 列舉
@358 列舉
@359 列舉
@360 列舉
@361 列舉
SerializedFieldType{
  SerializedFieldTypeBoolean = 0x00,
  SerializedFieldTypeUInt8,
  SerializedFieldTypeUInt16,
  SerializedFieldTypeUInt32,
  SerializedFieldTypeUInt64,
  SerializedFieldTypeInt8,
  SerializedFieldTypeInt16,
  SerializedFieldTypeInt32,
  SerializedFieldTypeInt64,
  SerializedFieldTypeFloatingPoint32,
  SerializedFieldTypeFloatingPoint64,
  SerializedFieldTypeUTF8String,
  SerializedFieldTypeByteString,
  SerializedFieldTypeStructure,
  SerializedFieldTypeArray
}
列舉
要透過 TLV 欄位寫入的 TLV 類型清單。
SerializedFieldTypeBits 列舉
SerializedFieldType 的位元欄位。
SerializedFieldTypeMasks 列舉
存取 SerializedFieldType 位元的遮罩。

Typedefs

Base64CharToValFunct)(uint8_t c) typedef
uint8_t(*
Base64ValToCharFunct)(uint8_t val) typedef
char(*
MemoryAllocate)(size_t size) typedef
void *(*
記憶體分配/免費函式指標。
MemoryFree)(void *ptr) typedef
void(*
MemoryReallocate)(void *ptr, size_t size) typedef
void *(*

變數

sASN1ErrorFormatter = { nl::Weave::ASN1::FormatASN1Error, NULL }
sElementSize = { sizeof(bool), sizeof(uint8_t), sizeof(uint16_t), sizeof(uint32_t), sizeof(uint64_t), sizeof(int8_t), sizeof(int16_t), sizeof(int32_t), sizeof(int64_t), sizeof(float), sizeof(double), sizeof(char *), sizeof(SerializedByteString), sizeof(void *), sizeof(void *) }[]
const uint8_t
sErrorFormatterList = &sWeaveErrorFormatter
const ErrorFormatter *
錯誤格式設定工具函式的已連結清單。
sErrorStr[WEAVE_CONFIG_ERROR_STR_SIZE]
char
用於儲存格式化錯誤字串的靜態緩衝區。
sErrorStr[1024]
char
這個常式會傳回使用者可理解的 NULL 結尾 C 字串,說明與指定設定檔相關聯的提供的狀態碼。
sWeaveErrorFormatter = { nl::Weave::FormatWeaveError, &sASN1ErrorFormatter }

函式

AdjustCalendarDate(uint16_t & year, uint8_t & month, uint8_t & dayOfMonth, int32_t relativeDays)
void
Base64CharToVal(uint8_t c)
uint8_t
Base64Decode(const char *in, uint16_t inLen, uint8_t *out, Base64CharToValFunct charToValFunct)
uint16_t
Base64Decode(const char *in, uint16_t inLen, uint8_t *out)
uint16_t
Base64Decode32(const char *in, uint32_t inLen, uint8_t *out, Base64CharToValFunct charToValFunct)
uint32_t
Base64Decode32(const char *in, uint32_t inLen, uint8_t *out)
uint32_t
Base64Encode(const uint8_t *in, uint16_t inLen, char *out, Base64ValToCharFunct valToCharFunct)
uint16_t
Base64Encode(const uint8_t *in, uint16_t inLen, char *out)
uint16_t
Base64Encode32(const uint8_t *in, uint32_t inLen, char *out, Base64ValToCharFunct valToCharFunct)
uint32_t
Base64Encode32(const uint8_t *in, uint32_t inLen, char *out)
uint32_t
Base64URLCharToVal(uint8_t c)
uint8_t
Base64URLDecode(const char *in, uint16_t inLen, uint8_t *out)
uint16_t
Base64URLEncode(const uint8_t *in, uint16_t inLen, char *out)
uint16_t
Base64URLValToChar(uint8_t val)
char
Base64ValToChar(uint8_t val)
char
CalendarDateToDaysSinceEpoch(uint16_t year, uint8_t month, uint8_t dayOfMonth, uint32_t & daysSinceEpoch)
bool
CalendarDateToOrdinalDate(uint16_t year, uint8_t month, uint8_t dayOfMonth, uint16_t & dayOfYear)
void
CalendarTimeToSecondsSinceEpoch(uint16_t year, uint8_t month, uint8_t dayOfMonth, uint8_t hour, uint8_t minute, uint8_t second, uint32_t & secondsSinceEpoch)
bool
ClearFlag(FlagsT & inFlags, const FlagT inFlag)
void
DateToManufacturingWeek(uint16_t year, uint8_t month, uint8_t day, uint16_t & mfgYear, uint8_t & mfgWeek)
void
DaysInMonth(uint16_t year, uint8_t month)
uint8_t
DaysSinceEpochToCalendarDate(uint32_t daysSinceEpoch, uint16_t & year, uint8_t & month, uint8_t & dayOfMonth)
void
DaysToMarch1(uint16_t year)
uint8_t
DeallocateDeserializedStructure(void *aStructureData, const SchemaFieldDescriptor *aFieldDescriptors, SerializationContext *aContext)
ErrorStr(int32_t err)
NL_DLL_EXPORT const char *
這個常式會傳回使用者可理解的 NULL 終止 C 字串,說明提供的錯誤。
ExtractManufacturingDateFromSerialNumber(const char *serialNum, uint16_t & year, uint8_t & month, uint8_t & day)
FindNullifiedFieldsArray(void *aStructureData, const SchemaFieldDescriptor *aSchemaDescriptor, uint8_t *& aNullifiedFields)
輔助函式可以找出 C 結構體結尾為空值的欄位陣列的位置。
FindStatusReportStr(uint32_t inProfileId, uint16_t inStatusCode)
const char *
FirstWeekdayOfYear(uint16_t year)
uint8_t
FormatError(char *buf, uint16_t bufSize, const char *subsys, int32_t err, const char *desc)
void
產生使用者可理解的 NULL 結尾 C 字串,說明提供的錯誤。
GetArrayElementSize(uint32_t & aOutSize, const FieldDescriptor *aFieldPtr, SerializedFieldType aType)
GetFlag(const FlagsT & inFlags, const FlagT inFlag)
bool
IsBase34NoIOChar(char ch)
bool
IsLeapYear(uint16_t year)
bool
IsValidFieldType(SerializedFieldType aType)
bool
IsValidSerialNumber(const char *serialNum)
bool
LogEvent(TEvent *aEvent)
nl::Weave::Profiles::DataManagement::event_id_t
LogEvent(TEvent *aEvent, const nl::Weave::Profiles::DataManagement::EventOptions & aOptions)
nl::Weave::Profiles::DataManagement::event_id_t
ManufacturingWeekToDate(uint16_t mfgYear, uint8_t mfgWeek, uint16_t & year, uint8_t & month, uint8_t & day)
void
MarchBasedDayOfYearToMonth(uint16_t dayOfYear)
uint8_t
MarchBasedMonthToDayOfYear(uint8_t month)
uint16_t
NullifyAllEventFields(TEvent *aEvent)
void
OrdinalDateToCalendarDate(uint16_t year, uint16_t dayOfYear, uint8_t & month, uint8_t & dayOfMonth)
void
ReadDataForType(TLVReader & aReader, void *aStructureData, const FieldDescriptor *& aFieldPtr, SerializedFieldType aType, bool aInArray, SerializationContext *aContext)
此讀取器函式可根據結構資料,從 TLV 讀取特定項目。
ReadNullableDataForType(TLVReader & aReader, void *aStructureData, const FieldDescriptor *& aFieldPtr, SerializedFieldType aType, bool & aIsNullified, SerializationContext *aContext)
從 TLV 讀取資料前,檢查資料是否可為空值或空值的讀取器函式。
RegisterErrorFormatter(ErrorFormatter *errFormatter)
NL_DLL_EXPORT void
將新的錯誤格式設定工具函式新增至錯誤格式設定工具的全域清單。
SecondsSinceEpochToCalendarTime(uint32_t secondsSinceEpoch, uint16_t & year, uint8_t & month, uint8_t & dayOfMonth, uint8_t & hour, uint8_t & minute, uint8_t & second)
void
SerializedDataToTLVWriter(TLVWriter & aWriter, void *aStructureData, const SchemaFieldDescriptor *aFieldDescriptors)
寫入者函式,用於將資料結構轉換為 TLV 結構。
SerializedDataToTLVWriterHelper(TLVWriter & aWriter, uint8_t aDataTag, void *aAppData)
包裝函式寫入者函式,包含在容器的 SerializedDataToTLVWriter 周圍。
SetFlag(FlagsT & inFlags, const FlagT inFlag)
void
SetFlag(FlagsT & inFlags, const FlagT inFlag, const bool inValue)
void
StatusReportStr(uint32_t profileId, uint16_t statusCode)
const char *
TLVReaderToDeserializedData(nl::Weave::TLV::TLVReader & aReader, void *aStructureData, const SchemaFieldDescriptor *aFieldDescriptors, SerializationContext *aContext)
將 TLV 轉換為 C 結構體的讀取器函式。
TLVReaderToDeserializedDataHelper(nl::Weave::TLV::TLVReader & aReader, uint8_t aDataTag, void *aAppData, SerializationContext *aContext)
這個輔助函式可將單一 TLV 資料元素還原序列化。
WriteArrayData(TLVWriter & aWriter, void *aStructureData, const FieldDescriptor *aFieldPtr)
寫入陣列結構的寫入者函式。
WriteDataForType(TLVWriter & aWriter, void *aStructureData, const FieldDescriptor *& aFieldPtr, SerializedFieldType aType, bool aInArray)
寫入器函式會根據結構資料,將特定項目寫入 TLV。
WriteNullableDataForType(TLVWriter & aWriter, void *aStructureData, const FieldDescriptor *& aFieldPtr, SerializedFieldType aType, bool aIsNullified)
寫入 TLV 之前,用於檢查資料是否可為空值或空值的寫入者函式。
secondsToMilliseconds(uint32_t seconds)
uint32_t

Structs

nl::ArrayLengthAndBuffer

用於包裝陣列的長度輔助函式。

nl::ErrorFormatter
nl::FieldDescriptor

說明結構定義結構中 TLV 欄位的結構,並將該欄位連結至 c-struct 中的資料。

nl::MemoryManagement

記憶體配置/釋放函式的 c-struct。

nl::SchemaFieldDescriptor

環繞 FieldDescriptors 陣列,以描述結構定義/結構。

nl::SerializationContext

c 結構體,內含進行序列化或還原序列化所需的任何背景資訊或狀態。

nl::SerializedByteString
nl::SerializedFieldTypeBoolean_array
nl::SerializedFieldTypeByteString_array
nl::SerializedFieldTypeFloatingPoint32_array
nl::SerializedFieldTypeFloatingPoint64_array
nl::SerializedFieldTypeInt16_array
nl::SerializedFieldTypeInt32_array
nl::SerializedFieldTypeInt64_array
nl::SerializedFieldTypeInt8_array
nl::SerializedFieldTypeUInt16_array
nl::SerializedFieldTypeUInt32_array
nl::SerializedFieldTypeUInt64_array
nl::SerializedFieldTypeUInt8_array
nl::SerializedFieldTypeUTF8String_array
nl::StructureSchemaPointerPair

將資料與 c-struct 資料配對,以及 StructureSchemaDescriptor,以根據該資料編寫 TLV 結構。

命名空間

nl::ArgParser
nl::Ble

此命名空間包含藍牙低功耗 (BLE) 的所有介面,也稱為 Bluetooth Smart。

nl::Inet
nl::NestCerts

這個命名空間包含 Nest Weave 公開金鑰基礎架構 (PKI) 憑證的全域符號。

nl::PairingCode
nl:暖身
nl::Weave

列舉

@357

 @357

@358

 @358

@359 人

 @359

@360

 @360

@361

 @361

SerializedFieldType

 SerializedFieldType

要透過 TLV 欄位寫入的 TLV 類型清單。

屬性
SerializedFieldTypeArray

陣列類型。

SerializedFieldTypeBoolean

布林值類型。

SerializedFieldTypeByteString

位元組字串類型。

SerializedFieldTypeFloatingPoint32

32 位元浮點類型

SerializedFieldTypeFloatingPoint64

64 位元浮點類型

SerializedFieldTypeInt16

已簽署 16 位元類型。

SerializedFieldTypeInt32

已簽署 32 位元類型。

SerializedFieldTypeInt64

已簽署 64 位元類型。

SerializedFieldTypeInt8

已簽署 8 位元類型。

SerializedFieldTypeStructure

使用者定義的結構類型。

SerializedFieldTypeUInt16

未簽署的 16 位元類型。

SerializedFieldTypeUInt32

未簽署的 32 位元類型。

SerializedFieldTypeUInt64

未簽署的 64 位元類型。

SerializedFieldTypeUInt8

未簽署的 8 位元類型。

SerializedFieldTypeUTF8String

UTF-8 字串類型。

SerializedFieldTypeBits

 SerializedFieldTypeBits

SerializedFieldType 的位元欄位。

SerializedFieldTypeMasks

 SerializedFieldTypeMasks

存取 SerializedFieldType 位元的遮罩。

Typedefs

Base64CharToValFunct

uint8_t(* Base64CharToValFunct)(uint8_t c)

Base64ValToCharFunct

char(* Base64ValToCharFunct)(uint8_t val)

MemoryAllocate

void *(* MemoryAllocate)(size_t size)

記憶體分配/免費函式指標。

MemoryFree

void(* MemoryFree)(void *ptr)

MemoryReallocate

void *(* MemoryReallocate)(void *ptr, size_t size)

變數

sASN1ErrorFormatter

const ErrorFormatter sASN1ErrorFormatter =
{
    nl::Weave::ASN1::FormatASN1Error,
    NULL
}

sElementSize

const uint8_t sElementSize[] =
{
    sizeof(bool),                   
    sizeof(uint8_t),                
    sizeof(uint16_t),               
    sizeof(uint32_t),               
    sizeof(uint64_t),               
    sizeof(int8_t),                 
    sizeof(int16_t),                
    sizeof(int32_t),                
    sizeof(int64_t),                
    sizeof(float),                  
    sizeof(double),                 
    sizeof(char *),                 
    sizeof(SerializedByteString),   
    sizeof(void *),                 
    sizeof(void *)                  
}

sErrorFormatterList

const ErrorFormatter * sErrorFormatterList = &sWeaveErrorFormatter

錯誤格式設定工具函式的已連結清單。

sErrorStr

char sErrorStr[WEAVE_CONFIG_ERROR_STR_SIZE]

用於儲存格式化錯誤字串的靜態緩衝區。

sErrorStr

char sErrorStr[1024]

這個常式會傳回使用者可理解的 NULL 結尾 C 字串,說明與指定設定檔相關聯的提供的狀態碼。

詳細資料
參數
[in] profileId
與 相關聯的 Weave 個人資料識別碼。
[in] statusCode
profileId 中的狀態碼,以提供描述性字串。
傳回
指向以 NULL 結尾的 C 字串,這個字串說明指定設定檔中提供的狀態碼。
另請參閱:
WEAVE_CONFIG_SHORT_ERROR_STR

sWeaveErrorFormatter

const ErrorFormatter sWeaveErrorFormatter =
{
    nl::Weave::FormatWeaveError,
    &sASN1ErrorFormatter
}

函式

AdjustCalendarDate

void AdjustCalendarDate(
  uint16_t & year,
  uint8_t & month,
  uint8_t & dayOfMonth,
  int32_t relativeDays
)

Base64CharToVal

uint8_t Base64CharToVal(
  uint8_t c
)

Base64Decode

uint16_t Base64Decode(
  const char *in,
  uint16_t inLen,
  uint8_t *out,
  Base64CharToValFunct charToValFunct
)

Base64Decode

uint16_t Base64Decode(
  const char *in,
  uint16_t inLen,
  uint8_t *out
)

Base64 解碼 32

uint32_t Base64Decode32(
  const char *in,
  uint32_t inLen,
  uint8_t *out,
  Base64CharToValFunct charToValFunct
)

Base64 解碼 32

uint32_t Base64Decode32(
  const char *in,
  uint32_t inLen,
  uint8_t *out
)

Base64Encode

uint16_t Base64Encode(
  const uint8_t *in,
  uint16_t inLen,
  char *out,
  Base64ValToCharFunct valToCharFunct
)

Base64Encode

uint16_t Base64Encode(
  const uint8_t *in,
  uint16_t inLen,
  char *out
)

Base64Encode32

uint32_t Base64Encode32(
  const uint8_t *in,
  uint32_t inLen,
  char *out,
  Base64ValToCharFunct valToCharFunct
)

Base64Encode32

uint32_t Base64Encode32(
  const uint8_t *in,
  uint32_t inLen,
  char *out
)

Base64URLCharToVal

uint8_t Base64URLCharToVal(
  uint8_t c
)

Base64 網址解碼

uint16_t Base64URLDecode(
  const char *in,
  uint16_t inLen,
  uint8_t *out
)

Base64URLEncode

uint16_t Base64URLEncode(
  const uint8_t *in,
  uint16_t inLen,
  char *out
)

Base64URLValToChar

char Base64URLValToChar(
  uint8_t val
)

Base64ValToChar

char Base64ValToChar(
  uint8_t val
)

CalendarDateToDaysSinceEpoch

bool CalendarDateToDaysSinceEpoch(
  uint16_t year,
  uint8_t month,
  uint8_t dayOfMonth,
  uint32_t & daysSinceEpoch
)

CalendarDateToOrdinalDate

void CalendarDateToOrdinalDate(
  uint16_t year,
  uint8_t month,
  uint8_t dayOfMonth,
  uint16_t & dayOfYear
)

CalendarTimeToSecondsSinceEpoch

bool CalendarTimeToSecondsSinceEpoch(
  uint16_t year,
  uint8_t month,
  uint8_t dayOfMonth,
  uint8_t hour,
  uint8_t minute,
  uint8_t second,
  uint32_t & secondsSinceEpoch
)

ClearFlag

void ClearFlag(
  FlagsT & inFlags,
  const FlagT inFlag
)

DateToManufacturingWeek

void DateToManufacturingWeek(
  uint16_t year,
  uint8_t month,
  uint8_t day,
  uint16_t & mfgYear,
  uint8_t & mfgWeek
)

DaysInMonth

uint8_t DaysInMonth(
  uint16_t year,
  uint8_t month
)

DaysSinceEpochToCalendarDate

void DaysSinceEpochToCalendarDate(
  uint32_t daysSinceEpoch,
  uint16_t & year,
  uint8_t & month,
  uint8_t & dayOfMonth
)

DaysToMarch1

uint8_t DaysToMarch1(
  uint16_t year
)

DeallocateDeserializedStructure

WEAVE_ERROR DeallocateDeserializedStructure(
  void *aStructureData,
  const SchemaFieldDescriptor *aFieldDescriptors,
  SerializationContext *aContext
)

ErrorStr

NL_DLL_EXPORT const char * ErrorStr(
  int32_t err
)

這個常式會傳回使用者可理解的 NULL 終止 C 字串,說明提供的錯誤。

詳細資料
參數
[in] err
格式和描述錯誤。
傳回
指向以空值結束的 C 字串的指標,用來描述提供的錯誤。

ExtractManufacturingDateFromSerialNumber

WEAVE_ERROR ExtractManufacturingDateFromSerialNumber(
  const char *serialNum,
  uint16_t & year,
  uint8_t & month,
  uint8_t & day
)

FindNullifiedFieldsArray

WEAVE_ERROR FindNullifiedFieldsArray(
  void *aStructureData,
  const SchemaFieldDescriptor *aSchemaDescriptor,
  uint8_t *& aNullifiedFields
)

輔助函式可以找出 C 結構體結尾為空值的欄位陣列的位置。

C 結構的 nullified_fields 成員應該位於 FieldDescriptors 陣列描述的最後一個成員之後。它並不在欄位描述元清單中,因為它只是隱藏公用程式,對可為空值事件的創作者和消費者提供隱藏用。如果事件沒有可為空值欄位,則此 struct 成員不存在,但是藉由建構 setter 和 getter,應該不會發生從邊界外存取的情況。

詳細資料
參數
[in] aStructureData
c-struct 的指標。
[in] aSchemaDescriptor
用於描述 c 結構的 SchemaFieldDescriptors。
[out] aNullifiedFields
指向 c 結構體的 nullified_fields 成員的指標。
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INVALID_ARGUMENT
如果欄位描述元指標為 NULL。
WEAVE_ERROR_INCORRECT_STATE
如果欄位描述元的格式與預期不符。

FindStatusReportStr

const char * FindStatusReportStr(
  uint32_t inProfileId,
  uint16_t inStatusCode
)

FirstWeekdayOfYear

uint8_t FirstWeekdayOfYear(
  uint16_t year
)

FormatError

void FormatError(
  char *buf,
  uint16_t bufSize,
  const char *subsys,
  int32_t err,
  const char *desc
)

產生使用者可理解的 NULL 結尾 C 字串,說明提供的錯誤。

詳細資料
參數
[in] buf
要放置錯誤字串的緩衝區。
[in] bufSize
提供的緩衝區大小 (以位元組為單位)。
[in] subsys
簡短字串,說明造成錯誤的子系統;如果錯誤來源不明或無法使用,則為空值。這個字串不得超過 10 個半形字元。
[in] err
要格式化的錯誤。
[in] desc
說明錯誤原因或意義的字串;如果沒有這類資訊,則傳回 NULL。

GetArrayElementSize

WEAVE_ERROR GetArrayElementSize(
  uint32_t & aOutSize,
  const FieldDescriptor *aFieldPtr,
  SerializedFieldType aType
)

GetFlag

bool GetFlag(
  const FlagsT & inFlags,
  const FlagT inFlag
)

IsBase34NoIOChar

bool IsBase34NoIOChar(
  char ch
)

IsLeapYear

bool IsLeapYear(
  uint16_t year
)

IsValidFieldType

bool IsValidFieldType(
  SerializedFieldType aType
)

IsValidSerialNumber

bool IsValidSerialNumber(
  const char *serialNum
)

LogEvent

nl::Weave::Profiles::DataManagement::event_id_t LogEvent(
  TEvent *aEvent
)

LogEvent

nl::Weave::Profiles::DataManagement::event_id_t LogEvent(
  TEvent *aEvent,
  const nl::Weave::Profiles::DataManagement::EventOptions & aOptions
)

ManufacturingWeekToDate

void ManufacturingWeekToDate(
  uint16_t mfgYear,
  uint8_t mfgWeek,
  uint16_t & year,
  uint8_t & month,
  uint8_t & day
)

MarchBasedDayOfYearToMonth

uint8_t MarchBasedDayOfYearToMonth(
  uint16_t dayOfYear
)

MarchBasedMonthToDayOfYear

uint16_t MarchBasedMonthToDayOfYear(
  uint8_t month
)

NullifyAllEventFields

void NullifyAllEventFields(
  TEvent *aEvent
)

OrdinalDateToCalendarDate

void OrdinalDateToCalendarDate(
  uint16_t year,
  uint16_t dayOfYear,
  uint8_t & month,
  uint8_t & dayOfMonth
)

ReadDataForType

WEAVE_ERROR ReadDataForType(
  TLVReader & aReader,
  void *aStructureData,
  const FieldDescriptor *& aFieldPtr,
  SerializedFieldType aType,
  bool aInArray,
  SerializationContext *aContext
)

此讀取器函式可根據結構資料,從 TLV 讀取特定項目。

詳細資料
參數
[in] aReader
在結構中用於閱讀的讀卡機
[in] aStructureData
要讀取的 c 結構資料指標
[in,out] aFieldPtr
FieldDescriptor 用於說明欄位和 TLV 標記。這個函式會遞增指標 .t。會指向 FieldDescritor 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[in] aInArray
如果閱讀陣列,則為「true」(使用匿名標記)
[in] aContext
包含作業所需狀態的序列化背景資訊。
傳回值
WEAVE_NO_ERROR
成功時。
other
讀取器傳回的其他錯誤。

ReadNullableDataForType

WEAVE_ERROR ReadNullableDataForType(
  TLVReader & aReader,
  void *aStructureData,
  const FieldDescriptor *& aFieldPtr,
  SerializedFieldType aType,
  bool & aIsNullified,
  SerializationContext *aContext
)

從 TLV 讀取資料前,檢查資料是否可為空值或空值的讀取器函式。

詳細資料
參數
[in] aReader
在結構中用於閱讀的讀卡機
[in] aStructureData
要讀取的 c 結構資料指標
[in,out] aFieldPtr
FieldDescriptor 用於說明欄位和 TLV 標記。這個函式會遞增指標 .t。就會指向 FieldDescriptor 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[out] aIsNullified
設定 表示欄位為空值。
[in] aContext
包含作業所需狀態的序列化背景資訊。
傳回值
WEAVE_NO_ERROR
成功時。
other
寫入時發生 TLV 錯誤。

RegisterErrorFormatter

NL_DLL_EXPORT void RegisterErrorFormatter(
  ErrorFormatter *errFormatter
)

將新的錯誤格式設定工具函式新增至錯誤格式設定工具的全域清單。

詳細資料
參數
[in] errFormatter
ErrorFormatter 結構,內含新錯誤函式的指標。請注意,函式會保留指向所提供 ErrorFormatter 結構的指標。因此,必須保留結構的記憶體。

SecondsSinceEpochToCalendarTime

void SecondsSinceEpochToCalendarTime(
  uint32_t secondsSinceEpoch,
  uint16_t & year,
  uint8_t & month,
  uint8_t & dayOfMonth,
  uint8_t & hour,
  uint8_t & minute,
  uint8_t & second
)

SerializedDataToTLVWriter

WEAVE_ERROR SerializedDataToTLVWriter(
  TLVWriter & aWriter,
  void *aStructureData,
  const SchemaFieldDescriptor *aFieldDescriptors
)

寫入者函式,用於將資料結構轉換為 TLV 結構。

使用 SchemaFieldDescriptor 解讀資料結構並寫入 TLV。

詳細資料
參數
[in] aWriter
用來寫出結構的作曲家
[in] aStructureData
根據 SchemaFieldDescriptor 寫入的 c 結構資料指標。
[in] aFieldDescriptors
用於描述 c struct + TLV 的 SchemaFieldDescriptors
傳回值
WEAVE_NO_ERROR
成功時。
other
寫入者傳回的其他錯誤。

SerializedDataToTLVWriterHelper

WEAVE_ERROR SerializedDataToTLVWriterHelper(
  TLVWriter & aWriter,
  uint8_t aDataTag,
  void *aAppData
)

包裝函式寫入者函式,包含在容器的 SerializedDataToTLVWriter 周圍。

此外,請將 StructureSchemaPointerPair 拆分為結構化資料與描述元以傳遞。

詳細資料
參數
[in] aWriter
用來寫出結構的作曲家
[in] aDataTag
要寫入的標記
[in] aAppData
StructureSchemaPointerPair,內含結構資料和欄位描述元的指標。void* (因原型設計而已)
傳回值
WEAVE_NO_ERROR
成功時。
other
寫入者傳回的其他錯誤。

SetFlag

void SetFlag(
  FlagsT & inFlags,
  const FlagT inFlag
)

SetFlag

void SetFlag(
  FlagsT & inFlags,
  const FlagT inFlag,
  const bool inValue
)

StatusReportStr

const char * StatusReportStr(
  uint32_t profileId,
  uint16_t statusCode
)

TLVReaderToDeserializedData

WEAVE_ERROR TLVReaderToDeserializedData(
  nl::Weave::TLV::TLVReader & aReader,
  void *aStructureData,
  const SchemaFieldDescriptor *aFieldDescriptors,
  SerializationContext *aContext
)

將 TLV 轉換為 C 結構體的讀取器函式。

使用 SchemaFieldDescriptor 解讀資料結構。

這必須夠強大,才能壓縮不明欄位,以及未遇到預期的欄位。

詳細資料
參數
[in] aReader
用於讀取資料的讀取器
[in] aStructureData
指向目的地 c 結構資料的指標,我們將根據 SchemaFieldDescriptor 讀取。
[in] aFieldDescriptors
用於描述 c struct + TLV 的 SchemaFieldDescriptors
[in] aContext
包含作業所需狀態的序列化背景資訊。
傳回值
WEAVE_NO_ERROR
成功時。
other
讀取器可能傳回的其他錯誤。

TLVReaderToDeserializedDataHelper

WEAVE_ERROR TLVReaderToDeserializedDataHelper(
  nl::Weave::TLV::TLVReader & aReader,
  uint8_t aDataTag,
  void *aAppData,
  SerializationContext *aContext
)

這個輔助函式可將單一 TLV 資料元素還原序列化。

這個函式會將 StructureSchemaPointerPair 分割成結構化資料與描述元,以便傳遞至 ReadDataForType。

詳細資料
參數
[in] aReader
讀取器含有要去序列化的資料
[in] aDataTag
目前未使用
[in] aAppData
StructureSchemaPointerPair,內含結構資料和欄位描述元的指標。void* (因原型設計而已)
[in] aContext
包含作業所需狀態的序列化背景資訊。
傳回值
WEAVE_NO_ERROR
成功時。
other
讀取器傳回的其他錯誤。

WriteArrayData

WEAVE_ERROR WriteArrayData(
  TLVWriter & aWriter,
  void *aStructureData,
  const FieldDescriptor *aFieldPtr
)

寫入陣列結構的寫入者函式。

詳細資料
參數
[in] aWriter
用來寫出結構的作曲家
[in] aStructureData
根據 FieldDescriptor 寫入 c 結構資料的指標。
[in] aFieldPtr
FieldDescriptor 用於說明陣列 c 結構體 + TLV
傳回值
WEAVE_NO_ERROR
成功時。
other
寫入者傳回的其他錯誤。

WriteDataForType

WEAVE_ERROR WriteDataForType(
  TLVWriter & aWriter,
  void *aStructureData,
  const FieldDescriptor *& aFieldPtr,
  SerializedFieldType aType,
  bool aInArray
)

寫入器函式會根據結構資料,將特定項目寫入 TLV。

詳細資料
參數
[in] aWriter
用來寫出結構的作曲家
[in] aStructureData
要寫入的 c 結構資料指標
[in,out] aFieldPtr
FieldDescriptor 用於說明欄位和 TLV 標記。這個函式會遞增指標 .t。會指向 FieldDescritor 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[in] aInArray
如果您正在寫入陣列,則為「true」(使用匿名標記)
傳回值
WEAVE_NO_ERROR
成功時。
other
寫入者傳回的其他錯誤。

WriteNullableDataForType

WEAVE_ERROR WriteNullableDataForType(
  TLVWriter & aWriter,
  void *aStructureData,
  const FieldDescriptor *& aFieldPtr,
  SerializedFieldType aType,
  bool aIsNullified
)

寫入 TLV 之前,用於檢查資料是否可為空值或空值的寫入者函式。

詳細資料
參數
[in] aWriter
用來寫出結構的作曲家
[in] aStructureData
要讀取的 c 結構資料指標
[in,out] aFieldPtr
FieldDescriptor 用於說明欄位和 TLV 標記。這個函式會遞增指標 .t。就會指向 FieldDescriptor 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[in] aIsNullified
如果為 true,TLV 標記將會為空值。
傳回值
WEAVE_NO_ERROR
成功時。
other
寫入時發生 TLV 錯誤。

secondsToMilliseconds

uint32_t secondsToMilliseconds(
  uint32_t seconds
)