8726e530d5
With this option enabled the user can speed up adding a large amount of data to the stream buffer by minimizing the usage of the nxscope lock interface: nxscope_lock(&nxs->nxs); nxscope_put_vfloat(&nxs, 0, data0, 1); nxscope_put_vfloat(&nxs, 1, data1, 1); nxscope_put_vfloat(&nxs, 2, data2, 1); nxscope_put_vfloat(&nxs, 3, data3, 1); nxscope_unlock(&nxs->nxs); |
||
---|---|---|
.. | ||
Kconfig | ||
Make.defs | ||
Makefile | ||
nxscope_chan.c | ||
nxscope_idummy.c | ||
nxscope_internals.c | ||
nxscope_internals.h | ||
nxscope_iser.c | ||
nxscope_pser.c | ||
nxscope.c | ||
README.md |
NxScope Library
This library provides real-time data logging functionality for NuttX.
The principle of action is to accumulate data gathered in virtual channels and periodically send buffered data through a dedicated interface packed with a custom protocol.
Supported features:
- up to 255 channels possible
- support for standard data types and user-specific data (
enum nxscope_sample_dtype_e
) - support for vector data or point data
- support for character-based channels (text messages)
- support for channel metadata - can be used to enumerate samples or timestamp
- stream buffer overflow detection (
NXSCOPE_STREAM_FLAGS_OVERFLOW
) - remote control with commands (
enum nxscope_hdr_id_e
) - protocol and interface implementation can be different for control commands and stream data
- (optional) support for user-specific commands (
NXSCOPE_HDRID_USER
andstruct nxscope_callbacks_s
) - (optional) support for samples divider (
CONFIG_LOGGING_NXSCOPE_DIVIDER
) - (optional) support for ACK frames (
CONFIG_LOGGING_NXSCOPE_ACKFRAMES
) - (optional) support for user-defined types (
CONFIG_LOGGING_NXSCOPE_USERTYPES
) - (optional) support for non-buffered critical channels (
CONFIG_LOGGING_NXSCOPE_CRICHANNELS
)
A custom interface and a custom protocol can be implemented with
struct nxscope_intf_s
and struct nxscope_proto_s
structures.
Supported interfaces:
- a serial port:
logging/nxscope/nxscope_iser.c
- a dummy interface for debug purposes:
logging/nxscope/nxscope_idummy.c
A default serial protocol is implemented in apps/logging/nxscope/nxscope_pser.c
It just packs NxScope data into simple frames with a CRC-16 checksum.