nl

Weave-specific 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 的 Bitfield。
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

結構

nl::ArrayLengthAndBuffer

用來包裝陣列長度的輔助程式。

nl::ErrorFormatter
nl::Field 描述元

結構描述 1.

nl::MemoryManagement

記憶體分配/免費函式的 C 結構。

nl::結構定義欄位描述元

在 Field 描述元 陣列周圍包覆以描述架構結構/結構。

nl::SerializationContext

這個 c 結構包含需要序列化或序列化序列化的背景脈絡或狀態。

nl::SerializedByteString
nl::SerializedFieldTypeBoolean_array
nl::SerializedFieldTypeByteString_array
nl::SerializedFieldTypeVariableingPoint32_array
nl::SerializedFieldTypeVariableingPoint64_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::結構化結構定義點配對

將資料與 c-schema 資料組合,搭配 SchemaSchema 描述元,根據這些資料編寫 TLV 結構。

命名空間

nl:: ArgParser
nl::Ble

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

nl::Inet
nl::NestCerts

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

nl::配對碼
nl::
nl::編織

列舉

@357

 @357

@358

 @358

@359

 @359

@360

 @360

@361

 @361

序列化欄位類型

 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 的 Bitfield。

序列化化類型欄位遮罩

 SerializedFieldTypeMasks

用於存取 SerializedFieldType 位元的遮罩。

Typedefs

Base64CharToValFunct

uint8_t(* Base64CharToValFunct)(uint8_t c)

Base64ValToCharFunct

char(* Base64ValToCharFunct)(uint8_t val)

記憶體分配

void *(* MemoryAllocate)(size_t size)

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

記憶體可用

void(* MemoryFree)(void *ptr)

記憶體重新分配

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

變數

sASN1ErrorFormatter

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

元素元素大小

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
}

函式

調整日曆日期

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

Base64CharToVal

uint8_t Base64CharToVal(
  uint8_t c
)

Base64 解碼

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

Base64 解碼

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

Base64Decode32

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

Base64Decode32

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

Base64 編碼

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

Base64 編碼

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

Base64 編碼 32

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

Base64 編碼 32

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

Base64URLCharToVal

uint8_t Base64URLCharToVal(
  uint8_t c
)

Base64URLDecode

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
)

日曆日期今天日

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

日曆日期/結束日期

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

日曆時間秒數

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
)

日期玩具製週

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

uint8_t DaysInMonth(
  uint16_t year,
  uint8_t month
)

自 EpochToCalendar 日期起算的天數

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

至 3 月 1 日

uint8_t DaysToMarch1(
  uint16_t year
)

取消分配序列化架構

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

錯誤

NL_DLL_EXPORT const char * ErrorStr(
  int32_t err
)

這個處理常式會傳回一個使用者可理解的 NULL 結尾 C 字串,用來說明所提供的錯誤。

詳細資料
參數
[in] err
格式和說明的錯誤。
傳回
指向 NULL 結尾 C 字串的圖示,說明所提供的錯誤。

ExtractManufacttureDateFromSerialNumber

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 結構的 nullized_fields 成員應緊接在 Field 描述元 陣列中最後一筆成員的後方。並未列在欄位描述元內,因為其用途是隱藏創作者和消費者的可重複事件。這個架構成員沒有可設定欄位的事件,但設定 setter 與 getter 時,不應發生超出範圍存取的情形。

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

查詢狀態報告

const char * FindStatusReportStr(
  uint32_t inProfileId,
  uint16_t inStatusCode
)

一週的第一天

uint8_t FirstWeekdayOfYear(
  uint16_t year
)

格式化錯誤

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

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

詳細資料
參數
[in] buf
要放置錯誤字串的緩衝區。
[in] bufSize
提供的緩衝區大小 (以位元組為單位)。
[in] subsys
用來說明造成錯誤的子系統的短字串;如果錯誤來源不明/無法使用,則傳回 NULL。此字串不得超過 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
)

伊萊普年

bool IsLeapYear(
  uint16_t year
)

是有效欄位類型

bool IsValidFieldType(
  SerializedFieldType aType
)

是有效的序號

bool IsValidSerialNumber(
  const char *serialNum
)

記錄事件

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

記錄事件

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

製造週迄今

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

三月日年次

uint8_t MarchBasedDayOfYearToMonth(
  uint16_t dayOfYear
)

三月月次-年初

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
)

讀取資料類型

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
Field 描述元 來描述欄位和 TLV 標記。此函式會增加指標 s.t.,它會指向 FieldDescritor 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[in] aInArray
如果已讀取陣列 (使用匿名標記),則為 True
[in] aContext
序列化作業內容,其中包含作業所需的任何狀態。
傳回值
WEAVE_NO_ERROR
成功。
other
其他從 iGoogle 閱讀器傳回的錯誤。

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
Field 描述元 來描述欄位和 TLV 標記。這個函式會遞增指標 s.t.,它會指向 Field 描述元 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[out] aIsNullified
設定為表示欄位為空值。
[in] aContext
序列化作業內容,其中包含作業所需的任何狀態。
傳回值
WEAVE_NO_ERROR
成功。
other
寫入時發生 TLV 錯誤。

註冊錯誤格式格式

NL_DLL_EXPORT void RegisterErrorFormatter(
  ErrorFormatter *errFormatter
)

在全域錯誤格式清單中新增新的錯誤格式函式。

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

自 EpochToCalendar 時間起算的秒數

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 結構 + TLV 的 SchemaFieldFields
傳回值
WEAVE_NO_ERROR
成功。
other
由 aWriter 傳回的其他錯誤。

SerializedDataToTLVWriterHelper

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

環繞著 SerializedDataToTLVWriter 的包裝函式寫入函式。

您也可以將 SchemaSchemaPointerPair 分割成要傳遞的結構資料和描述元。

詳細資料
參數
[in] aWriter
撰寫者要編寫結構
[in] aDataTag
要寫入的代碼
[in] aAppData
StructuredSchemaPointerPair,內含用於建構資料和欄位描述元的指標。因 prototype 而無效。
傳回值
WEAVE_NO_ERROR
成功。
other
由 aWriter 傳回的其他錯誤。

SetFlag

void SetFlag(
  FlagsT & inFlags,
  const FlagT inFlag
)

SetFlag

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

狀態報告

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 結構 + TLV 的 SchemaFieldFields
[in] aContext
序列化作業內容,其中包含作業所需的任何狀態。
傳回值
WEAVE_NO_ERROR
成功。
other
其他從 A 表示閱讀器傳回的錯誤。

TLVreaderToDeSerializedDataHelper

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

對單一 TLV 資料元素進行序列化的輔助函式。

函式會將 StructuredSchemaPointerPair 分割為結構資料和描述元,以傳遞 ReadDataForType。

詳細資料
參數
[in] aReader
包含要序列化的資料的讀取者
[in] aDataTag
目前未使用
[in] aAppData
StructuredSchemaPointerPair,內含用於建構資料和欄位描述元的指標。因 prototype 而無效。
[in] aContext
序列化作業內容,其中包含作業所需的任何狀態。
傳回值
WEAVE_NO_ERROR
成功。
other
其他從 iGoogle 閱讀器傳回的錯誤。

寫入陣列資料

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

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

詳細資料
參數
[in] aWriter
撰寫者要編寫結構
[in] aStructureData
指向要寫入的 c 結構資料的指標 (以 Field 描述元 為基礎)
[in] aFieldPtr
Field 描述:描述陣列 c 結構 + TLV
傳回值
WEAVE_NO_ERROR
成功。
other
由 aWriter 傳回的其他錯誤。

寫入資料類型

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

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

詳細資料
參數
[in] aWriter
撰寫者要編寫結構
[in] aStructureData
指向要寫入的 c 結構資料的指標
[in,out] aFieldPtr
Field 描述元 來描述欄位和 TLV 標記。此函式會增加指標 s.t.,它會指向 FieldDescritor 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[in] aInArray
如果我們寫入陣列 (使用匿名標記) 時為 true
傳回值
WEAVE_NO_ERROR
成功。
other
由 aWriter 傳回的其他錯誤。

寫入 NullableDataForType

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

在寫入 TLV 之前,寫入者可以檢查資料是否為空值或空值。

詳細資料
參數
[in] aWriter
撰寫者要編寫結構
[in] aStructureData
指向要讀取的 c 結構資料的指標
[in,out] aFieldPtr
Field 描述元 來描述欄位和 TLV 標記。這個函式會遞增指標 s.t.,它會指向 Field 描述元 陣列中的下一個元素
[in] aType
欄位的 SerializedFieldType
[in] aIsNullified
如果 TLV 代碼為 True,則 TLV 代碼將會失效。
傳回值
WEAVE_NO_ERROR
成功。
other
寫入時發生 TLV 錯誤。

秒 (毫秒)

uint32_t secondsToMilliseconds(
  uint32_t seconds
)