nuttx-apps/system/uorb/test/utility.c
hanzhijian 03171162f1 system/uorb: introduce CONFIG_UORB_FORMAT for format string control
Introduce a new CONFIG_UORB_FORMAT Kconfig option to control whether
uORB format strings are compiled in. UORB_LISTENER, UORB_GENERATOR,
and DEBUG_UORB all select UORB_FORMAT automatically, so format strings
are included when any of these features are enabled.

This replaces the previous approach of guarding format strings with
CONFIG_DEBUG_UORB, which prevented uorb_listener from displaying
sensor data when debug output was disabled.

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-06-09 17:02:03 +08:00

90 lines
2.9 KiB
C

/****************************************************************************
* apps/system/uorb/test/utility.c
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <stdio.h>
#include <inttypes.h>
#include "utility.h"
/****************************************************************************
* Private Functions
****************************************************************************/
#ifdef CONFIG_UORB_FORMAT
static const char orb_test_format[] =
"timestamp:%" PRIu64 ",val:%" PRId32 "";
#endif
/****************************************************************************
* Public Data
****************************************************************************/
ORB_DEFINE(orb_test, struct orb_test_s, orb_test_format);
ORB_DEFINE(orb_multitest, struct orb_test_s, orb_test_format);
ORB_DEFINE(orb_test_medium, struct orb_test_medium_s, orb_test_format);
ORB_DEFINE(orb_test_medium_multi, struct orb_test_medium_s, orb_test_format);
ORB_DEFINE(orb_test_medium_wrap_around, struct orb_test_medium_s,
orb_test_format);
ORB_DEFINE(orb_test_medium_queue, struct orb_test_medium_s, orb_test_format);
ORB_DEFINE(orb_test_medium_queue_poll, struct orb_test_medium_s,
orb_test_format);
ORB_DEFINE(orb_test_large, struct orb_test_large_s, orb_test_format);
/****************************************************************************
* Public Functions
****************************************************************************/
int test_note(FAR const char *fmt, ...)
{
va_list ap;
fprintf(stderr, "uORB note: ");
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
va_end(ap);
fprintf(stderr, "\n");
fflush(stderr);
return OK;
}
int test_fail(FAR const char *fmt, ...)
{
va_list ap;
fprintf(stderr, "uORB fail: ");
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
va_end(ap);
fprintf(stderr, "\n");
fflush(stderr);
return ERROR;
}