# Copyright (c) 2022 Henrik Brix Andersen <henrik@brixandersen.dk>
# SPDX-License-Identifier: Apache-2.0

menu "Controller Area Network babbling node sample"

config SAMPLE_CAN_BABBLING_CAN_ID
	hex "CAN ID"
	default 0x010
	range 0x000 0x7ff if !SAMPLE_CAN_BABBLING_EXT_ID
	range 0x00000000 0x1fffffff if SAMPLE_CAN_BABBLING_EXT_ID
	help
	  Babbling node CAN ID.

config SAMPLE_CAN_BABBLING_EXT_ID
	bool "Use Extended (29-bit) CAN ID"
	help
	  Babling node sends extended (29-bit) CAN ID frames.

config SAMPLE_CAN_BABBLING_RTR
	bool "Send Remote Transmit Request (RTR) frames"
	help
	  Babbling node sends Remote Transmission Request (RTR) frames.

config SAMPLE_CAN_BABBLING_FD_MODE
	bool "Send CAN-FD format frames"
	depends on CAN_FD_MODE
	help
	  Babbling node sends CAN-FD format frames.

config SAMPLE_CAN_BABBLING_TX_QUEUE_SIZE
	int "Maximum number of CAN frames to enqueue"
	default 3
	range 1 3
	help
	  Maximum number of CAN frames to enqueue for transmission.

endmenu

source "Kconfig.zephyr"
