Lo que está diciendo es que desearía que algún tipo de "CLI" o estructura de comando acceda a los diversos parámetros a través de una sola característica. Creo que eso es definitivamente factible y puede usar los ejemplos de BLE UART ya existentes proporcionados por compañías como Nordic en su SDK.
Definitivamente tendrás que pensar en cómo se estructurarán tus comandos. Por ejemplo.
[Comando] [Comando ID3] [Comando ID2] [Comando ID1] [Comando ID0]
Donde cada soporte es de 1 byte. El primer byte sería un comando de "lectura" y el resto sería el parámetro de la parte de los 300 parámetros a los que desea acceder. Siento que tiene que haber algunas bibliotecas buenas que ayuden con esto, pero no puedo encontrar ninguna en Google (en el pasado, he usado las de cosecha propia)
Debería usar el mismo UUID proporcionado por el proveedor para la característica UART. El problema aquí es que, especialmente si le importan más resultados en "tiempo real", es que no podría suscribirse para recibir notificaciones de esta característica y luego saber qué cambió exactamente.
La solución para eso sería crear un nuevo servicio y tener tantas características como sea necesario para notificar que algo ha cambiado y debe leerse sobre la característica / servicio BLE UART. Elegir un UUID para esto es, literalmente, usar un UUID generado al azar que no se incluye en Bluetooth SIG rango UUID reservado .
Recuerde, cuantos más servicios y características agregue, más pesará sobre los recursos de la unidad de usuario. Dependiendo de lo que ocurra en tu código, ¡debes tenerlo en cuenta!