AWS IoT Device Defender v1.3.0
AWS IoT Device Defender Client Library
Configurations

Configurations of the AWS IoT Device Defender Client Library.

configpagestyle

Configuration settings are C pre-processor constants. They can be set with a \#define in the config file (defender_config.h) or by using a compiler option such as -D in gcc.

DEFENDER_DO_NOT_USE_CUSTOM_CONFIG

Define this macro to build the AWS IoT Device Defender Client Library without the custom config file defender_config.h. Without the custom config, the the AWS IoT Device Defender Client Library builds with default values of config macros defined in the defender_config_defaults.h file.

If a custom config file is provided, then DEFENDER_DO_NOT_USE_CUSTOM_CONFIG must not be defined.

Default value: DEFENDER_DO_NOT_USE_CUSTOM_CONFIG is not defined by default and the library expects a defender_config.h file.

DEFENDER_USE_LONG_KEYS

Set it to 1 to enable use of long key names in the defender report. AWS IoT Device Defender Service supports both long and short names for keys in the report sent by a device. For example,

A device defender report using long key names:

{
"header": {
"report_id": 1530304554,
"version": "1.0"
},
"metrics": {
"network_stats": {
"bytes_in": 29358693495,
"bytes_out": 26485035,
"packets_in": 10013573555,
"packets_out": 11382615
}
}
}

An equivalent report using short key names:

{
"hed": {
"rid": 1530304554,
"v": "1.0"
},
"met": {
"ns": {
"bi": 29358693495,
"bo": 26485035,
"pi": 10013573555,
"po": 11382615
}
}
}

Default value: 0 as short key names are preferred option for resource constrained devices because they result in smaller report size. If you want to use long key names instead, set DEFENDER_USE_LONG_KEYS to 1 in the defender_config.h file.

LogError

Macro used in the Device Defender client library to log error messages. To enable error logging, this macro should be mapped to an application-specific logging implementation.

Note
This logging macro is called in the Device Defender client library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to the defender_config.h file, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Error logs are turned off, and no code is generated for calls to the macro in the Device Defender client library on compilation.

LogWarn

Macro used in the Device Defender client library to log warning messages. To enable warning logging, this macro should be mapped to an application-specific logging implementation.

Note
This logging macro is called in the Device Defender client library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to the defender_config.h file, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Warning logs are turned off, and no code is generated for calls to the macro in the Device Defender client library on compilation.

LogInfo

Macro used in the Device Defender client library to log info messages. To enable info logging, this macro should be mapped to an application-specific logging implementation.

Note
This logging macro is called in the Device Defender client library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to the defender_config.h file, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Info logs are turned off, and no code is generated for calls to the macro in the Device Defender client library on compilation.

LogDebug

Macro used in the Device Defender client library to log debug messages. To enable debug logging, this macro should be mapped to an application-specific logging implementation.

Note
This logging macro is called in the Device Defender client library with parameters wrapped in double parentheses to be ISO C89/C90 standard compliant. For a reference POSIX implementation of the logging macros, refer to the defender_config.h file, and the logging-stack in demos folder of the AWS IoT Embedded C SDK repository.

Default value: Debug logs are turned off, and no code is generated for calls to the macro in the Device Defender client library on compilation.