nordic sdk nordic uart service declaration

in C:\ncs\v3.0.2\nrf\subsys\bluetooth\services\nus.c

/* UART Service Declaration */
BT_GATT_SERVICE_DEFINE(nus_svc,
BT_GATT_PRIMARY_SERVICE(BT_UUID_NUS_SERVICE),
	BT_GATT_CHARACTERISTIC(BT_UUID_NUS_TX,
			       BT_GATT_CHRC_NOTIFY,
			       BT_GATT_PERM_READ,
			       NULL, NULL, NULL),
	BT_GATT_CCC(nus_ccc_cfg_changed,
			       BT_GATT_PERM_READ | BT_GATT_PERM_WRITE),
	BT_GATT_CHARACTERISTIC(BT_UUID_NUS_RX,
			       BT_GATT_CHRC_WRITE |
			       BT_GATT_CHRC_WRITE_WITHOUT_RESP,
			       BT_GATT_PERM_READ | BT_GATT_PERM_WRITE,
			       NULL, on_receive, NULL),
);

The property of BT_UUID_NUS_TX only declares notify, but the permission declares read. After the nRF Connect app is connected, only the notify can be seen. So why does the permission declare read?

https://academy.nordicsemi.com/courses/bluetooth-low-energy-fundamentals/lessons/lesson-4-bluetooth-le-data-exchange/topic/services-and-characteristics/

  • Hi Chelalv, 
    You will need to distinguish between characteristic's permission and characteristic's properties. 
    The permission will decide if a certain operation requires encryption / authentication or open. Meaning the characteristic can be read/write with or without pairing and at which level of security when pairing.
    When properties dictate if the characteristic will have the capability to be read or notify or write etc.  
    Permission and properties may not have 1 to 1 relation to each other. 

Related