Add LED blink to bletest project when the main bletest loop executes.

Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/commit/50fe46dd
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/tree/50fe46dd
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/diff/50fe46dd

Branch: refs/heads/master
Commit: 50fe46dd15330a036c53d663c1fa634c9e5f236f
Parents: 47c0517
Author: wes3 <w...@micosa.io>
Authored: Tue Feb 2 18:12:41 2016 -0800
Committer: wes3 <w...@micosa.io>
Committed: Tue Feb 2 18:13:49 2016 -0800

----------------------------------------------------------------------
 project/bletest/src/main.c | 39 ++++++++++++++++++++++++++++++++++-----
 1 file changed, 34 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/50fe46dd/project/bletest/src/main.c
----------------------------------------------------------------------
diff --git a/project/bletest/src/main.c b/project/bletest/src/main.c
index febb2a1..9c16a23 100755
--- a/project/bletest/src/main.c
+++ b/project/bletest/src/main.c
@@ -67,7 +67,8 @@ os_membuf_t g_mbuf_buffer[MBUF_MEMPOOL_SIZE];
 #define BLETEST_ROLE_SCANNER            (1)
 #define BLETEST_ROLE_INITIATOR          (2)
 //#define BLETEST_CFG_ROLE                (BLETEST_ROLE_INITIATOR)
-#define BLETEST_CFG_ROLE                (BLETEST_ROLE_ADVERTISER)
+//#define BLETEST_CFG_ROLE                (BLETEST_ROLE_ADVERTISER)
+#define BLETEST_CFG_ROLE                (BLETEST_ROLE_SCANNER)
 #define BLETEST_CFG_FILT_DUP_ADV        (0)
 #define BLETEST_CFG_ADV_ITVL            (60000 / BLE_HCI_ADV_ITVL)
 #define BLETEST_CFG_ADV_TYPE            BLE_HCI_ADV_TYPE_ADV_IND
@@ -101,6 +102,9 @@ uint32_t g_bletest_conn_upd_time;
 uint8_t g_bletest_current_conns;
 uint8_t g_bletest_cur_peer_addr[BLE_DEV_ADDR_LEN];
 uint8_t g_last_handle_used;
+uint8_t g_bletest_led_state;
+uint32_t g_bletest_led_rate;
+uint32_t g_bletest_next_led_time;
 
 #ifdef BLETEST_ADV_PKT_NUM
 void
@@ -291,7 +295,7 @@ bletest_init_scanner(void)
 }
 
 void
-bletest_execute(void)
+bletest_execute_scanner(void)
 {
     int rc;
 
@@ -346,7 +350,7 @@ bletest_init_initiator(void)
 }
 
 void
-bletest_execute(void)
+bletest_execute_initiator(void)
 {
     int rc;
     uint16_t handle;
@@ -492,8 +496,8 @@ bletest_execute(void)
     }
 }
 #else
-void
-bletest_execute(void)
+static void
+bletest_execute_advertiser(void)
 {
     int i,j;
     int rc;
@@ -590,8 +594,30 @@ bletest_execute(void)
     }
 }
 #endif
+#endif
 
+/**
+ * Main bletest function. Called by the task timer every 50 msecs.
+ * 
+ */
+void
+bletest_execute(void)
+{
+    /* Toggle LED at set rate */
+    if ((int32_t)(os_time_get() - g_bletest_next_led_time) >= 0) {
+        gpio_toggle(LED_BLINK_PIN);
+        g_bletest_next_led_time = g_bletest_led_rate;
+    }
+#if (BLETEST_CFG_ROLE == BLETEST_ROLE_ADVERTISER)
+    bletest_execute_advertiser();
+#endif
+#if (BLETEST_CFG_ROLE == BLETEST_ROLE_SCANNER)
+    bletest_execute_scanner();
 #endif
+#if (BLETEST_CFG_ROLE == BLETEST_ROLE_INITIATOR)
+    bletest_execute_initiator();
+#endif
+}
 
 /**
  * Callback when BLE test timer expires. 
@@ -621,6 +647,9 @@ bletest_task_handler(void *arg)
     struct os_event *ev;
     struct os_callout_func *cf;
 
+    /* Set LED blink rate */
+    g_bletest_led_rate = OS_TICKS_PER_SEC / 20;
+
     /* Wait one second before starting test task */
     os_time_delay(OS_TICKS_PER_SEC);
 

Reply via email to