From 3019031ae0d52c7deb6e7ef0904a2861ff1ec406 Mon Sep 17 00:00:00 2001
From: Martin/Geno <geno+dev@fireorbit.de>
Date: Wed, 14 Aug 2019 22:30:36 +0200
Subject: [PATCH] ble: review card10 svc

---
 Documentation/bluetooth/card10.rst       |  7 +--
 Documentation/pycardium/light-sensor.rst |  2 +-
 epicardium/ble/card10.c                  | 54 +++++++++++-------------
 3 files changed, 29 insertions(+), 34 deletions(-)

diff --git a/Documentation/bluetooth/card10.rst b/Documentation/bluetooth/card10.rst
index a5646c9b..7184db4e 100644
--- a/Documentation/bluetooth/card10.rst
+++ b/Documentation/bluetooth/card10.rst
@@ -34,6 +34,7 @@ light sensor characteristic
 ---------------------------------
 
 The light sensor characteristic makes it possible to read the current value of the light sensor by receiving a ``uint16``.
+The range of this sensor is between 0 (``0x0``) and 400 (``0x9001``).
 
 - reading of ``0x0e00`` means **14**
 
@@ -55,8 +56,8 @@ Dataformat:
 ======= ======= =======
    0       1       2
 ------- ------- -------
-rocket0 rocket1 rocket2
+Rocket0 Rocket1 Rocket2
 ======= ======= =======
 
-- Enable only Rocket 1:  ``0xff0000``
-- Enable all rockets with 50% lightness: ``0x7f7f7f``
+- Enable only Rocket0:  ``0xff0000``
+- Enable all rockets with 50% brightness: ``0x7f7f7f``
diff --git a/Documentation/pycardium/light-sensor.rst b/Documentation/pycardium/light-sensor.rst
index daf34a3e..353f6cf5 100644
--- a/Documentation/pycardium/light-sensor.rst
+++ b/Documentation/pycardium/light-sensor.rst
@@ -14,7 +14,7 @@ be fairly stable.
 .. py:function:: light_sensor.get_reading()
 
    Get an ambient brightness reading.  The returned value is in no particular
-   unit, though it seems to be fairly stable.  Common values:
+   unit, though it seems to be fairly stable. The value could be between 0 and 400.  Common values:
 
    - ~8: Very dark are
    - ~17: Typical hackerspace brightness
diff --git a/epicardium/ble/card10.c b/epicardium/ble/card10.c
index e2fa96e5..6c82d1a8 100644
--- a/epicardium/ble/card10.c
+++ b/epicardium/ble/card10.c
@@ -32,7 +32,7 @@
 
 /*
  * This has to match in order and number of members to the functions
- * called in fileTransAddGroupDyn() otherwise the stack breaks.
+ * called in addCard10GroupDyn() otherwise the stack breaks.
  */
 enum {
 	/*!< \brief card10 service declaration */
@@ -50,32 +50,28 @@ enum {
 	CARD10_MAX_HDL
 };
 
+/* clang-format off */
+
 /* BLE UUID for card10 service*/
 static const uint8_t UUID_svc[] = { CARD10_UUID_SUFFIX, 0x0, 0xf0, 0x0, 0x0 };
 
 /* BLE UUID for card10 char vibra */
-static const uint8_t UUID_char_vibra[] = { ATT_PROP_WRITE_NO_RSP,
-					   UINT16_TO_BYTES(
-						   CARD10_VIBRA_VAL_HDL),
-					   CARD10_UUID_SUFFIX,
-					   0xf,
-					   0xf1,
-					   0x0,
-					   0x0 };
+static const uint8_t UUID_char_vibra[] = {
+	ATT_PROP_WRITE_NO_RSP,
+	UINT16_TO_BYTES(CARD10_VIBRA_VAL_HDL),
+	CARD10_UUID_SUFFIX, 0xf, 0xf1, 0x0, 0x0
+};
 
 static const uint8_t UUID_attChar_vibra[] = {
 	CARD10_UUID_SUFFIX, 0xf, 0xf1, 0x0, 0x0
 };
 
 /* BLE UUID for card10 char rockets */
-static const uint8_t UUID_char_rockets[] = { ATT_PROP_WRITE_NO_RSP,
-					     UINT16_TO_BYTES(
-						     CARD10_ROCKETS_VAL_HDL),
-					     CARD10_UUID_SUFFIX,
-					     0x10,
-					     0xf1,
-					     0x0,
-					     0x0 };
+static const uint8_t UUID_char_rockets[] = {
+	ATT_PROP_WRITE_NO_RSP,
+	UINT16_TO_BYTES(CARD10_ROCKETS_VAL_HDL),
+	CARD10_UUID_SUFFIX, 0x10, 0xf1, 0x0, 0x0
+};
 
 static const uint8_t UUID_attChar_rockets[] = {
 	CARD10_UUID_SUFFIX, 0x10, 0xf1, 0x0, 0x0
@@ -85,15 +81,12 @@ static const uint8_t UUID_attChar_rockets[] = {
 static const uint8_t UUID_char_light_sensor[] = {
 	ATT_PROP_READ,
 	UINT16_TO_BYTES(CARD10_LIGHT_SENSOR_VAL_HDL),
-	CARD10_UUID_SUFFIX,
-	0xf0,
-	0xf0,
-	0x0,
-	0x0
+	CARD10_UUID_SUFFIX, 0xf0, 0xf0, 0x0, 0x0
 };
 static const uint8_t UUID_attChar_light_sensor[] = {
 	CARD10_UUID_SUFFIX, 0xf0, 0xf0, 0x0, 0x0
 };
+/* clang-format on */
 
 /*
  * Create the BLE service description. 
@@ -132,7 +125,7 @@ static void *addCard10GroupDyn(void)
 			pSHdl,
 			UUID_attChar_vibra,
 			NULL,
-			sizeof(uint16_t),
+			0,
 			sizeof(uint16_t),
 			ATTS_SET_WRITE_CBACK,
 			ATTS_PERMIT_WRITE
@@ -153,7 +146,7 @@ static void *addCard10GroupDyn(void)
 			pSHdl,
 			UUID_attChar_rockets,
 			NULL,
-			3 * sizeof(uint8_t),
+			0,
 			3 * sizeof(uint8_t),
 			ATTS_SET_WRITE_CBACK,
 			ATTS_PERMIT_WRITE
@@ -180,16 +173,13 @@ static void *addCard10GroupDyn(void)
 			ATTS_PERMIT_READ
 		);
 
-		APP_TRACE_INFO0("ble-card10: services binded\n");
+		APP_TRACE_INFO0("ble-card10: services bound\n");
 	}
 	return pSHdl;
 }
 
 /*
- * BLE file transfer write callback.
- * 
- * This gets called when data is written by a BLE central to our BLE
- * peripheral. Here we take care of handling the received data.
+ * BLE card10 write callback.
  */
 
 static uint8_t writeCard10CB(
@@ -228,6 +218,10 @@ static uint8_t writeCard10CB(
 	}
 }
 
+/*
+ * BLE card10 read callback.
+ */
+
 static uint8_t readCard10CB(
 	dmConnId_t connId,
 	uint16_t handle,
@@ -252,7 +246,7 @@ static uint8_t readCard10CB(
 }
 
 /*
- * This registers and starts the BLE file transfer service.
+ * This registers and starts the BLE card10 service.
  */
 
 void bleCard10_init(void)
-- 
GitLab