# Copyright (c) 2022 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

menu "Frontends"

config LOG_FRONTEND_DICT_UART
	bool "UART dictionary frontend"
	select LOG_DICTIONARY_DB
	select MPSC_PBUF
	depends on UART_ASYNC_API || UART_INTERRUPT_DRIVEN
	imply LOG_FMT_SECTION
	imply LOG_FMT_SECTION_STRIP
	help
	  Frontend sends data in binary dictionary mode.

if LOG_FRONTEND_DICT_UART

config LOG_FRONTEND_DICT_UART_BUFFER_SIZE
	int "Buffer size"
	default 1024
	help
	  Number of bytes dedicated for buffering data

config LOG_FRONTEND_DICT_UART_DROPPED_NOTIFY_PERIOD
	int "Dropped notification period"
	default 500
	help
	  Determines how often a report about dropped messages is printed. Given
	  in milliseconds.

endif
endmenu
