chore: remove BACAPP_SNPRINTF_ENABLED macro (#94)
* chore: remove BACAPP_SNPRINTF_ENABLED macro * feat: add ifdef in bacapp_snprintf_value and bacapp_parse_application_data for each data type so that smaller MCU can compile without * fix: typos
This commit is contained in:
committed by
GitHub
parent
9137531eb0
commit
9cad803cc8
+50
-2
@@ -998,7 +998,6 @@ int bacapp_data_len(
|
|||||||
return total_len;
|
return total_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef BACAPP_SNPRINTF_ENABLED
|
|
||||||
static bool append_str(char **str, size_t *rem_str_len, const char *add_str)
|
static bool append_str(char **str, size_t *rem_str_len, const char *add_str)
|
||||||
{
|
{
|
||||||
bool retval;
|
bool retval;
|
||||||
@@ -1046,31 +1045,42 @@ int bacapp_snprintf_value(
|
|||||||
property = object_value->object_property;
|
property = object_value->object_property;
|
||||||
object_type = object_value->object_type;
|
object_type = object_value->object_type;
|
||||||
switch (value->tag) {
|
switch (value->tag) {
|
||||||
|
#if defined(BACAPP_NULL)
|
||||||
case BACNET_APPLICATION_TAG_NULL:
|
case BACNET_APPLICATION_TAG_NULL:
|
||||||
ret_val = snprintf(str, str_len, "Null");
|
ret_val = snprintf(str, str_len, "Null");
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_BOOLEAN)
|
||||||
case BACNET_APPLICATION_TAG_BOOLEAN:
|
case BACNET_APPLICATION_TAG_BOOLEAN:
|
||||||
ret_val = (value->type.Boolean)
|
ret_val = (value->type.Boolean)
|
||||||
? snprintf(str, str_len, "TRUE")
|
? snprintf(str, str_len, "TRUE")
|
||||||
: snprintf(str, str_len, "FALSE");
|
: snprintf(str, str_len, "FALSE");
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_UNSIGNED)
|
||||||
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
|
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
|
||||||
ret_val = snprintf(str, str_len, "%lu",
|
ret_val = snprintf(str, str_len, "%lu",
|
||||||
(unsigned long)value->type.Unsigned_Int);
|
(unsigned long)value->type.Unsigned_Int);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_SIGNED)
|
||||||
case BACNET_APPLICATION_TAG_SIGNED_INT:
|
case BACNET_APPLICATION_TAG_SIGNED_INT:
|
||||||
ret_val =
|
ret_val =
|
||||||
snprintf(str, str_len, "%ld", (long)value->type.Signed_Int);
|
snprintf(str, str_len, "%ld", (long)value->type.Signed_Int);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_REAL)
|
||||||
case BACNET_APPLICATION_TAG_REAL:
|
case BACNET_APPLICATION_TAG_REAL:
|
||||||
ret_val =
|
ret_val =
|
||||||
snprintf(str, str_len, "%f", (double)value->type.Real);
|
snprintf(str, str_len, "%f", (double)value->type.Real);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
#if defined(BACAPP_DOUBLE)
|
#if defined(BACAPP_DOUBLE)
|
||||||
case BACNET_APPLICATION_TAG_DOUBLE:
|
case BACNET_APPLICATION_TAG_DOUBLE:
|
||||||
ret_val = snprintf(str, str_len, "%f", value->type.Double);
|
ret_val = snprintf(str, str_len, "%f", value->type.Double);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(BACAPP_OCTET_STRING)
|
||||||
case BACNET_APPLICATION_TAG_OCTET_STRING:
|
case BACNET_APPLICATION_TAG_OCTET_STRING:
|
||||||
len = octetstring_length(&value->type.Octet_String);
|
len = octetstring_length(&value->type.Octet_String);
|
||||||
octet_str = octetstring_value(&value->type.Octet_String);
|
octet_str = octetstring_value(&value->type.Octet_String);
|
||||||
@@ -1085,6 +1095,8 @@ int bacapp_snprintf_value(
|
|||||||
ret_val = str_len - rem_str_len;
|
ret_val = str_len - rem_str_len;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_CHARACTER_STRING)
|
||||||
case BACNET_APPLICATION_TAG_CHARACTER_STRING:
|
case BACNET_APPLICATION_TAG_CHARACTER_STRING:
|
||||||
len = characterstring_length(&value->type.Character_String);
|
len = characterstring_length(&value->type.Character_String);
|
||||||
char_str = characterstring_value(&value->type.Character_String);
|
char_str = characterstring_value(&value->type.Character_String);
|
||||||
@@ -1106,6 +1118,8 @@ int bacapp_snprintf_value(
|
|||||||
ret_val = str_len - rem_str_len;
|
ret_val = str_len - rem_str_len;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_BIT_STRING)
|
||||||
case BACNET_APPLICATION_TAG_BIT_STRING:
|
case BACNET_APPLICATION_TAG_BIT_STRING:
|
||||||
len = bitstring_bits_used(&value->type.Bit_String);
|
len = bitstring_bits_used(&value->type.Bit_String);
|
||||||
if (!append_str(&p_str, &rem_str_len, "{"))
|
if (!append_str(&p_str, &rem_str_len, "{"))
|
||||||
@@ -1128,6 +1142,8 @@ int bacapp_snprintf_value(
|
|||||||
ret_val = str_len - rem_str_len;
|
ret_val = str_len - rem_str_len;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_ENUMERATED)
|
||||||
case BACNET_APPLICATION_TAG_ENUMERATED:
|
case BACNET_APPLICATION_TAG_ENUMERATED:
|
||||||
switch (property) {
|
switch (property) {
|
||||||
case PROP_PROPERTY_LIST:
|
case PROP_PROPERTY_LIST:
|
||||||
@@ -1205,6 +1221,8 @@ int bacapp_snprintf_value(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_DATE)
|
||||||
case BACNET_APPLICATION_TAG_DATE:
|
case BACNET_APPLICATION_TAG_DATE:
|
||||||
if (!append_str(&p_str, &rem_str_len,
|
if (!append_str(&p_str, &rem_str_len,
|
||||||
bactext_day_of_week_name(value->type.Date.wday)))
|
bactext_day_of_week_name(value->type.Date.wday)))
|
||||||
@@ -1237,6 +1255,8 @@ int bacapp_snprintf_value(
|
|||||||
/* bytes were written. */
|
/* bytes were written. */
|
||||||
ret_val = str_len - rem_str_len;
|
ret_val = str_len - rem_str_len;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_TIME)
|
||||||
case BACNET_APPLICATION_TAG_TIME:
|
case BACNET_APPLICATION_TAG_TIME:
|
||||||
if (value->type.Time.hour == 255) {
|
if (value->type.Time.hour == 255) {
|
||||||
if (!append_str(&p_str, &rem_str_len, "**:"))
|
if (!append_str(&p_str, &rem_str_len, "**:"))
|
||||||
@@ -1278,6 +1298,8 @@ int bacapp_snprintf_value(
|
|||||||
/* bytes were written. */
|
/* bytes were written. */
|
||||||
ret_val = str_len - rem_str_len;
|
ret_val = str_len - rem_str_len;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_OBJECT_ID)
|
||||||
case BACNET_APPLICATION_TAG_OBJECT_ID:
|
case BACNET_APPLICATION_TAG_OBJECT_ID:
|
||||||
if (!append_str(&p_str, &rem_str_len, "("))
|
if (!append_str(&p_str, &rem_str_len, "("))
|
||||||
break;
|
break;
|
||||||
@@ -1319,6 +1341,8 @@ int bacapp_snprintf_value(
|
|||||||
/* bytes were written. */
|
/* bytes were written. */
|
||||||
ret_val = str_len - rem_str_len;
|
ret_val = str_len - rem_str_len;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_LIGHTING_COMMAND)
|
||||||
case BACNET_APPLICATION_TAG_LIGHTING_COMMAND:
|
case BACNET_APPLICATION_TAG_LIGHTING_COMMAND:
|
||||||
if (!append_str(&p_str, &rem_str_len, "("))
|
if (!append_str(&p_str, &rem_str_len, "("))
|
||||||
break;
|
break;
|
||||||
@@ -1334,6 +1358,7 @@ int bacapp_snprintf_value(
|
|||||||
/* bytes were written. */
|
/* bytes were written. */
|
||||||
ret_val = str_len - rem_str_len;
|
ret_val = str_len - rem_str_len;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
ret_val = 0;
|
ret_val = 0;
|
||||||
break;
|
break;
|
||||||
@@ -1342,7 +1367,6 @@ int bacapp_snprintf_value(
|
|||||||
|
|
||||||
return ret_val;
|
return ret_val;
|
||||||
}
|
}
|
||||||
#endif /* BACAPP_SNPRINTF_ENABLED */
|
|
||||||
|
|
||||||
#ifdef BACAPP_PRINT_ENABLED
|
#ifdef BACAPP_PRINT_ENABLED
|
||||||
/* Print the extracted value from the requested BACnet object property to the
|
/* Print the extracted value from the requested BACnet object property to the
|
||||||
@@ -1406,6 +1430,7 @@ bool bacapp_parse_application_data(BACNET_APPLICATION_TAG tag_number,
|
|||||||
status = true;
|
status = true;
|
||||||
value->tag = tag_number;
|
value->tag = tag_number;
|
||||||
switch (tag_number) {
|
switch (tag_number) {
|
||||||
|
#if defined(BACAPP_BOOLEAN)
|
||||||
case BACNET_APPLICATION_TAG_BOOLEAN:
|
case BACNET_APPLICATION_TAG_BOOLEAN:
|
||||||
long_value = strtol(argv, NULL, 0);
|
long_value = strtol(argv, NULL, 0);
|
||||||
if (long_value)
|
if (long_value)
|
||||||
@@ -1413,43 +1438,59 @@ bool bacapp_parse_application_data(BACNET_APPLICATION_TAG tag_number,
|
|||||||
else
|
else
|
||||||
value->type.Boolean = false;
|
value->type.Boolean = false;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_UNSIGNED)
|
||||||
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
|
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
|
||||||
unsigned_long_value = strtoul(argv, NULL, 0);
|
unsigned_long_value = strtoul(argv, NULL, 0);
|
||||||
value->type.Unsigned_Int = unsigned_long_value;
|
value->type.Unsigned_Int = unsigned_long_value;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_SIGNED)
|
||||||
case BACNET_APPLICATION_TAG_SIGNED_INT:
|
case BACNET_APPLICATION_TAG_SIGNED_INT:
|
||||||
long_value = strtol(argv, NULL, 0);
|
long_value = strtol(argv, NULL, 0);
|
||||||
value->type.Signed_Int = long_value;
|
value->type.Signed_Int = long_value;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_REAL)
|
||||||
case BACNET_APPLICATION_TAG_REAL:
|
case BACNET_APPLICATION_TAG_REAL:
|
||||||
double_value = strtod(argv, NULL);
|
double_value = strtod(argv, NULL);
|
||||||
value->type.Real = (float)double_value;
|
value->type.Real = (float)double_value;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
#if defined(BACAPP_DOUBLE)
|
#if defined(BACAPP_DOUBLE)
|
||||||
case BACNET_APPLICATION_TAG_DOUBLE:
|
case BACNET_APPLICATION_TAG_DOUBLE:
|
||||||
double_value = strtod(argv, NULL);
|
double_value = strtod(argv, NULL);
|
||||||
value->type.Double = double_value;
|
value->type.Double = double_value;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(BACAPP_OCTET_STRING)
|
||||||
case BACNET_APPLICATION_TAG_OCTET_STRING:
|
case BACNET_APPLICATION_TAG_OCTET_STRING:
|
||||||
#if PRINT_ENABLED /* Apparently ain't necessarily so. */
|
#if PRINT_ENABLED /* Apparently ain't necessarily so. */
|
||||||
status =
|
status =
|
||||||
octetstring_init_ascii_hex(&value->type.Octet_String, argv);
|
octetstring_init_ascii_hex(&value->type.Octet_String, argv);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_CHARACTER_STRING)
|
||||||
case BACNET_APPLICATION_TAG_CHARACTER_STRING:
|
case BACNET_APPLICATION_TAG_CHARACTER_STRING:
|
||||||
status = characterstring_init_ansi(
|
status = characterstring_init_ansi(
|
||||||
&value->type.Character_String, (char *)argv);
|
&value->type.Character_String, (char *)argv);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_BIT_STRING)
|
||||||
case BACNET_APPLICATION_TAG_BIT_STRING:
|
case BACNET_APPLICATION_TAG_BIT_STRING:
|
||||||
#if PRINT_ENABLED
|
#if PRINT_ENABLED
|
||||||
status = bitstring_init_ascii(&value->type.Bit_String, argv);
|
status = bitstring_init_ascii(&value->type.Bit_String, argv);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_ENUMERATED)
|
||||||
case BACNET_APPLICATION_TAG_ENUMERATED:
|
case BACNET_APPLICATION_TAG_ENUMERATED:
|
||||||
unsigned_long_value = strtoul(argv, NULL, 0);
|
unsigned_long_value = strtoul(argv, NULL, 0);
|
||||||
value->type.Enumerated = unsigned_long_value;
|
value->type.Enumerated = unsigned_long_value;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_DATE)
|
||||||
case BACNET_APPLICATION_TAG_DATE:
|
case BACNET_APPLICATION_TAG_DATE:
|
||||||
count =
|
count =
|
||||||
sscanf(argv, "%4d/%3d/%3d:%3d", &year, &month, &day, &wday);
|
sscanf(argv, "%4d/%3d/%3d:%3d", &year, &month, &day, &wday);
|
||||||
@@ -1465,6 +1506,8 @@ bool bacapp_parse_application_data(BACNET_APPLICATION_TAG tag_number,
|
|||||||
status = false;
|
status = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_TIME)
|
||||||
case BACNET_APPLICATION_TAG_TIME:
|
case BACNET_APPLICATION_TAG_TIME:
|
||||||
count = sscanf(
|
count = sscanf(
|
||||||
argv, "%3d:%3d:%3d.%3d", &hour, &min, &sec, &hundredths);
|
argv, "%3d:%3d:%3d.%3d", &hour, &min, &sec, &hundredths);
|
||||||
@@ -1487,6 +1530,8 @@ bool bacapp_parse_application_data(BACNET_APPLICATION_TAG tag_number,
|
|||||||
status = false;
|
status = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_OBJECT_ID)
|
||||||
case BACNET_APPLICATION_TAG_OBJECT_ID:
|
case BACNET_APPLICATION_TAG_OBJECT_ID:
|
||||||
count = sscanf(argv, "%4d:%7u", &object_type, &instance);
|
count = sscanf(argv, "%4d:%7u", &object_type, &instance);
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
@@ -1496,9 +1541,12 @@ bool bacapp_parse_application_data(BACNET_APPLICATION_TAG tag_number,
|
|||||||
status = false;
|
status = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(BACAPP_LIGHTING_COMMAND)
|
||||||
case BACNET_APPLICATION_TAG_LIGHTING_COMMAND:
|
case BACNET_APPLICATION_TAG_LIGHTING_COMMAND:
|
||||||
/* FIXME: add parsing for lighting command */
|
/* FIXME: add parsing for lighting command */
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -231,17 +231,14 @@ extern "C" {
|
|||||||
#ifndef BACAPP_PRINT_ENABLED
|
#ifndef BACAPP_PRINT_ENABLED
|
||||||
#if PRINT_ENABLED || defined BAC_TEST
|
#if PRINT_ENABLED || defined BAC_TEST
|
||||||
#define BACAPP_PRINT_ENABLED
|
#define BACAPP_PRINT_ENABLED
|
||||||
#define BACAPP_SNPRINTF_ENABLED
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BACAPP_SNPRINTF_ENABLED
|
|
||||||
BACNET_STACK_EXPORT
|
BACNET_STACK_EXPORT
|
||||||
int bacapp_snprintf_value(
|
int bacapp_snprintf_value(
|
||||||
char *str,
|
char *str,
|
||||||
size_t str_len,
|
size_t str_len,
|
||||||
BACNET_OBJECT_PROPERTY_VALUE * object_value);
|
BACNET_OBJECT_PROPERTY_VALUE * object_value);
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef BACAPP_PRINT_ENABLED
|
#ifdef BACAPP_PRINT_ENABLED
|
||||||
BACNET_STACK_EXPORT
|
BACNET_STACK_EXPORT
|
||||||
|
|||||||
Reference in New Issue
Block a user