observe fixes

Dependencies:   nsdl_lib Nanostack_lib

Fork of mbedEndpointNetwork by Michael Koster

Committer:
ansond
Date:
Sun Feb 01 18:26:13 2015 +0000
Revision:
0:2a5a48a8b4d4
Child:
3:5711cc2c6253
revamped

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ansond 0:2a5a48a8b4d4 1 /**
ansond 0:2a5a48a8b4d4 2 * @file network_stubs.cpp
ansond 0:2a5a48a8b4d4 3 * @brief mbed Endpoint network stubs implementation (6LowPAN)
ansond 0:2a5a48a8b4d4 4 * @author Doug Anson
ansond 0:2a5a48a8b4d4 5 * @version 1.0
ansond 0:2a5a48a8b4d4 6 * @see
ansond 0:2a5a48a8b4d4 7 *
ansond 0:2a5a48a8b4d4 8 * Copyright (c) 2014
ansond 0:2a5a48a8b4d4 9 *
ansond 0:2a5a48a8b4d4 10 * Licensed under the Apache License, Version 2.0 (the "License");
ansond 0:2a5a48a8b4d4 11 * you may not use this file except in compliance with the License.
ansond 0:2a5a48a8b4d4 12 * You may obtain a copy of the License at
ansond 0:2a5a48a8b4d4 13 *
ansond 0:2a5a48a8b4d4 14 * http://www.apache.org/licenses/LICENSE-2.0
ansond 0:2a5a48a8b4d4 15 *
ansond 0:2a5a48a8b4d4 16 * Unless required by applicable law or agreed to in writing, software
ansond 0:2a5a48a8b4d4 17 * distributed under the License is distributed on an "AS IS" BASIS,
ansond 0:2a5a48a8b4d4 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
ansond 0:2a5a48a8b4d4 19 * See the License for the specific language governing permissions and
ansond 0:2a5a48a8b4d4 20 * limitations under the License.
ansond 0:2a5a48a8b4d4 21 */
ansond 0:2a5a48a8b4d4 22
ansond 0:2a5a48a8b4d4 23 #include "network_stubs.h"
ansond 0:2a5a48a8b4d4 24
ansond 0:2a5a48a8b4d4 25 extern "C" {
ansond 0:2a5a48a8b4d4 26
ansond 0:2a5a48a8b4d4 27 // Tasklet ID..
ansond 0:2a5a48a8b4d4 28 int main_tasklet_id = -1;
ansond 0:2a5a48a8b4d4 29
ansond 0:2a5a48a8b4d4 30 // Nanostack_6LowPAN tasklet main handler function...
ansond 0:2a5a48a8b4d4 31 extern "C" void tasklet_main(void);
ansond 0:2a5a48a8b4d4 32
ansond 0:2a5a48a8b4d4 33 // plumb out the network
ansond 0:2a5a48a8b4d4 34 void net_stubs_plumb_network(bool canActAsRouterNode)
ansond 0:2a5a48a8b4d4 35 {
ansond 0:2a5a48a8b4d4 36 // call init_network()
ansond 0:2a5a48a8b4d4 37 init_network(canActAsRouterNode);
ansond 0:2a5a48a8b4d4 38 }
ansond 0:2a5a48a8b4d4 39
ansond 0:2a5a48a8b4d4 40 // create a suitable main event loop for this specific network
ansond 0:2a5a48a8b4d4 41 void net_stubs_create_main_loop(void)
ansond 0:2a5a48a8b4d4 42 {
ansond 0:2a5a48a8b4d4 43 // tasklet creation...
ansond 0:2a5a48a8b4d4 44 DBG("net_stubs_begin_main_loop: creating tasklet for main loop...\r\n");
ansond 0:2a5a48a8b4d4 45 main_tasklet_id = arm_ns_tasklet_create(&tasklet_main);
ansond 0:2a5a48a8b4d4 46 if(main_tasklet_id < 0) {
ansond 0:2a5a48a8b4d4 47 //Tasklet cerate fail
ansond 0:2a5a48a8b4d4 48 DBG("net_stubs_begin_main_loop: Tasklet creation failed...\r\n");
ansond 0:2a5a48a8b4d4 49 return;
ansond 0:2a5a48a8b4d4 50 }
ansond 0:2a5a48a8b4d4 51 }
ansond 0:2a5a48a8b4d4 52
ansond 0:2a5a48a8b4d4 53 // register the endpoint
ansond 0:2a5a48a8b4d4 54 void net_stubs_register_endpoint(void)
ansond 0:2a5a48a8b4d4 55 {
ansond 0:2a5a48a8b4d4 56 // call NSP_registration()
ansond 0:2a5a48a8b4d4 57 NSP_registration();
ansond 0:2a5a48a8b4d4 58 }
ansond 0:2a5a48a8b4d4 59
ansond 0:2a5a48a8b4d4 60 // begin the main loop for processing network events
ansond 0:2a5a48a8b4d4 61 void net_stubs_begin_main_loop(void)
ansond 0:2a5a48a8b4d4 62 {
ansond 0:2a5a48a8b4d4 63 // start event dispatching
ansond 0:2a5a48a8b4d4 64 DBG("net_stubs_begin_main_loop: Beginning event dispatch...\r\n");
ansond 0:2a5a48a8b4d4 65 event_dispatch();
ansond 0:2a5a48a8b4d4 66 return;
ansond 0:2a5a48a8b4d4 67 }
ansond 0:2a5a48a8b4d4 68
ansond 0:2a5a48a8b4d4 69 }