Repository: incubator-mynewt-larva
Updated Branches:
  refs/heads/master 93fc8e306 -> 7c50b189e


Move bletest references out of host code and put it bletest project directory 
where they belong. If we are building for sim, dont include transport references


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/7c50b189
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/tree/7c50b189
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/diff/7c50b189

Branch: refs/heads/master
Commit: 7c50b189ec34453dd60e9537ab34b52964311169
Parents: 93fc8e3
Author: Willam San Filippo <w...@micosa.io>
Authored: Wed Nov 4 17:28:04 2015 -0800
Committer: Willam San Filippo <w...@micosa.io>
Committed: Wed Nov 4 17:28:09 2015 -0800

----------------------------------------------------------------------
 net/nimble/host/src/host_hci.c | 29 ++++-----------------
 project/bletest/src/main.c     | 51 +++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/7c50b189/net/nimble/host/src/host_hci.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/host_hci.c b/net/nimble/host/src/host_hci.c
index 2148163..a52ffbd 100644
--- a/net/nimble/host/src/host_hci.c
+++ b/net/nimble/host/src/host_hci.c
@@ -52,18 +52,15 @@ struct host_hci_stats
 
 struct host_hci_stats g_host_hci_stats;
 
-
-/* Callout for timer */
-extern void bletest_execute(void);
-struct os_callout_func g_ble_host_hci_timer;
-
-#if 0
 static int
 host_hci_cmd_send(uint8_t *cmdbuf)
 {
+#ifdef ARCH_sim
+    return 0;
+#else
     return ble_hci_transport_host_cmd_send(cmdbuf);
-}
 #endif
+}
 
 static int
 host_hci_le_cmd_send(uint16_t ocf, uint8_t len, void *cmddata)
@@ -81,7 +78,7 @@ host_hci_le_cmd_send(uint16_t ocf, uint8_t len, void *cmddata)
         if (len) {
             memcpy(cmd + BLE_HCI_CMD_HDR_LEN, cmddata, len);
         }
-        //rc = host_hci_cmd_send(cmd);
+        rc = host_hci_cmd_send(cmd);
     }
 
     return rc;
@@ -416,23 +413,11 @@ ble_hci_transport_ctlr_event_send(uint8_t *hci_ev)
 }
 
 void
-host_hci_timer_cb(void *arg)
-{
-    /* Call the bletest code */
-    //bletest_execute();
-
-    /* Re-start the timer */
-    //os_callout_reset(&g_ble_host_hci_timer.cf_c, OS_TICKS_PER_SEC);
-}
-
-void
 host_hci_task(void *arg)
 {
     struct os_event *ev;
     struct os_callout_func *cf;
 
-    host_hci_timer_cb(NULL);
-
     while (1) {
         ev = os_eventq_get(&g_ble_host_hci_evq);
         switch (ev->ev_type) {
@@ -524,10 +509,6 @@ host_hci_init(void)
                          "HCIOsEventPool");
     assert(rc == 0);
 
-    /* Initialize the host timer */
-    os_callout_func_init(&g_ble_host_hci_timer, &g_ble_host_hci_evq,
-                         host_hci_timer_cb, NULL);
-
     /* Initialize eventq */
     os_eventq_init(&g_ble_host_hci_evq);
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva/blob/7c50b189/project/bletest/src/main.c
----------------------------------------------------------------------
diff --git a/project/bletest/src/main.c b/project/bletest/src/main.c
index a47c263..748e7ee 100755
--- a/project/bletest/src/main.c
+++ b/project/bletest/src/main.c
@@ -75,8 +75,15 @@ os_membuf_t g_mbuf_buffer[MBUF_MEMPOOL_SIZE];
 #define BLETEST_CFG_SCAN_TYPE           (BLE_HCI_SCAN_TYPE_PASSIVE)
 #define BLETEST_CFG_SCAN_FILT_POLICY    (BLE_HCI_SCAN_FILT_USE_WL)
 
+/* BLETEST variables */
+#define BLETEST_STACK_SIZE              (64)
+#define BLETEST_TASK_PRIO               (HOST_TASK_PRIO + 1)
 uint32_t g_next_os_time;
 int g_bletest_state;
+struct os_eventq g_bletest_evq;
+struct os_callout_func g_bletest_timer;
+struct os_task bletest_task;
+os_stack_t bletest_stack[BLETEST_STACK_SIZE];
 
 void
 bletest_inc_adv_pkt_num(void)
@@ -290,6 +297,46 @@ bletest_execute(void)
 #endif
 }
 
+void
+bletest_timer_cb(void *arg)
+{
+    /* Call the bletest code */
+    bletest_execute();
+
+    /* Re-start the timer */
+    os_callout_reset(&g_bletest_timer.cf_c, OS_TICKS_PER_SEC);
+}
+
+void
+bletest_task_handler(void *arg)
+{
+    struct os_event *ev;
+    struct os_callout_func *cf;
+
+    /* Initialize the host timer */
+    os_callout_func_init(&g_bletest_timer, &g_bletest_evq, bletest_timer_cb,
+                         NULL);
+
+    /* Initialize eventq */
+    os_eventq_init(&g_bletest_evq);
+
+    bletest_timer_cb(NULL);
+
+    while (1) {
+        ev = os_eventq_get(&g_bletest_evq);
+        switch (ev->ev_type) {
+        case OS_EVENT_T_TIMER:
+            cf = (struct os_callout_func *)ev;
+            assert(cf->cf_func);
+            cf->cf_func(cf->cf_arg);
+            break;
+        default:
+            assert(0);
+            break;
+        }
+    }
+}
+
 /**
  * init_tasks
  *  
@@ -304,6 +351,10 @@ init_tasks(void)
     os_task_init(&host_task, "host", host_task_handler, NULL, HOST_TASK_PRIO, 
                  OS_WAIT_FOREVER, host_stack, HOST_STACK_SIZE);
 
+    os_task_init(&bletest_task, "bletest", bletest_task_handler, NULL, 
+                 BLETEST_TASK_PRIO, OS_WAIT_FOREVER, bletest_stack, 
+                 BLETEST_STACK_SIZE);
+
     tasks_initialized = 1;
 
     return 0;

Reply via email to