Some applications require satellite information for positioning using the flag USED_IN_FIX.
More details: https://github.com/apache/nuttx/pull/16805
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
Fix `orb_subscribe_multi` undefined error.
/workspace/prebuilts/gcc/linux/arm64/bin/../lib/gcc/aarch64-none-elf/13.2.1/../../../../aarch64-none-elf/bin/ld: apps/system/uorb/libapps_uorb_listener.a(listener.c.o): in function `listener_monitor':
/workspace/apps/system/uorb/listener.c:803:(.text.listener_monitor.constprop.0+0xe4): undefined reference to `orb_subscribe_multi'
/workspace/apps/system/uorb/listener.c:803:(.text.listener_monitor.constprop.0+0xe4): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `orb_subscribe_multi'
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
Add timestamp for GNSS measurements and clock, for matching.
When recovering the combination of `GnssMeasurement` and `GnssClock` into
[GnssData](https://android.googlesource.com/platform/hardware/libhardware/+/
refs/heads/android14-release/include/hardware/gps.h#1748),
the reason for splitting is that the uORB buffer is not large enough to
accommodate `GnssData`, since different topics cannot guarantee the
same timing when publishing and subscribing data, we need an index to match.
WARNING: A new member "timestamp" of type uint64_t has been added at
the beginning of the struct "sensor_gnss_measurement" and "sensor_gnss_clock".
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
Add orb_loop_exit_async() API to send exit event to uORB loop.
Closing immediately after a write may cause missing a wakeup.
When all file descriptors associated with the same eventfd object have been closed, the resources for object are freed by the kernel. --EVENTFD(2)
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
/workspace/apps/system/uorb/uORB/internal.h:42:31: error: 'struct orb_loop_s' declared inside parameter list will not be visible outside of this definition or declaration
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
This change prevents users from trying to use the `uorb_listener`
application without having floating point printing enabled on systems
that do not have an FPU (systems with FPUs have `LIBC_FLOATINGPOINT`)
enabled by default. Solution dicussed and agreed in:
https://github.com/apache/nuttx/issues/15599.
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
The `struct sensor_gnss_satellite.cf` may be parsed from `GSV.signal_id`(e.g. NMEA 0183 v4.11) and `struct sensor_gnss_satellite.constellation`
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
The PRIu16 macro in the system is defined as "u", and "hu" is required.
In Linux and Nuttx, PRIu32 PRIu16 PRIu8 are all defined as "u", but %pB
prints the structure and needs its offset. %pB gets the offset through
sizeof(short int)
Signed-off-by: likun17 <likun17@xiaomi.com>
After you call orb_flush(), you can determine whether the
flush is completed by listening to the POLLPRI event
of fd and getting the event in orb_get_events.
After calling orb_get_events, the flush events will be cleared.
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
to avoid potential fd leak which means fork/vfork will duplicate fd
without O_CLOEXEC flag to the child process.
Signed-off-by: wanggang26 <wanggang26@xiaomi.com>
Sensors are just a part of uORB, and there are many virtual topics used
within uORB as well. For the library apps/system/uorb/, the nuttx/uorb.h
version is more preferable. So, move public type and definition to
nuttx/uorb.h.
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
A sensor of this type measures the force on it, and additionally
compares the force with one or more specified thresholds. The sensor
can output the force value directly. Moreover, it's usually applied
as a press key. In that case, when it detects a force greater than
some given threshold, a corresponding event is reported.
Signed-off-by: jinxudong <jinxudong@xiaomi.com>
bug: if user input obr_topic is sensor_gps_sate(wrong topic, which does not exist), the using of `strncmp` will assign idx=8 (as sesnor_gps) in the first.
However, there is no match in the `g_sensor_list`, hence idx=8 will give out value of `sensor_gps` as output(wrong).
Change: This update aims to match the whole value of sensor name in `g_sensor_list`, while keeping `sensor_name+number` match in this condition.
Signed-off-by: haopengxiang <haopengxiang@xiaomi.com>