Dreamforce 2015 BLE-based mDS HeartRate Monitor Endpoint
Dependencies: GroveEarbudSensor mbed mbedConnectorInterface mbedEndpointNetwork_BLE
main.cpp
- Committer:
- ansond
- Date:
- 2015-03-16
- Revision:
- 6:759aab2880a7
- Parent:
- 5:4609a86755be
- Child:
- 24:c51aea8fe7f1
File content as of revision 6:759aab2880a7:
/** * @file main.cpp * @brief mbed Connected Home Endpoint main entry point * @author Doug Anson * @version 1.0 * @see * * Copyright (c) 2014 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // mbed Connector Interface (configuration) #include "mbedConnectorInterface.h" // mbed Connector Endpoint includes #include "ConnectorEndpoint.h" #include "OptionsBuilder.h" // USB Serial port access for debugging/logging RawSerial pc(USBTX,USBRX); // Logging facility Logger logger(&pc); // which Nordic board? #ifdef TARGET_NRF51_DK #define NORDIC_MODEL "nRF51822-DK" #define MY_ENDPOINT_NAME "ble-hrm-endpt-dk" #define NORDIC_SDA P0_30 #define NORDIC_SCL P0_7 #endif #ifdef TARGET_NRF51_DONGLE #define NORDIC_MODEL "nRF51822-DONGLE" #define MY_ENDPOINT_NAME "ble-hrm-endpt" #define NORDIC_SDA P0_20 #define NORDIC_SCL P0_19 #endif #ifdef TARGET_NRF51_MKIT #define NORDIC_MODEL "nRF51822-MKIT" #define MY_ENDPOINT_NAME "ble-hrm-endpt-mkit" #define NORDIC_SDA P0_22 #define NORDIC_SCL P0_20 #endif // Static Resources #include "StaticResource.h" StaticResource mfg(&logger,"dev/mfg","Nordic Semi"); StaticResource model(&logger,"dev/mdl",NORDIC_MODEL); // // Dynamic Resource Note: // // mbedConnectorInterface supports up to IPT_MAX_ENTRIES // (currently 5) independent dynamic resources. // // You can increase this (at the cost of memory) in // mbedConnectorinterface.h // // Heartrate Resource #include "HeartrateResource.h" HeartrateResource hr(&logger,"888/0/5850",true); // observable // My NSP Domain #define MY_NSP_DOMAIN "domain" // Customization Example: My custom NSP IPv6 address and NSP CoAP port //uint8_t my_nsp_address[NSP_IP_ADDRESS_LENGTH] = {72,182,4,230}; //int my_nsp_coap_port = 26395; // www.ansonworks.com:27164 // Customization Example: My custom NSP IPv6 address and NSP CoAP port uint8_t my_nsp_address[NSP_IP_ADDRESS_LENGTH] = {10,1,0,26}; int my_nsp_coap_port = 5683; // called from the Endpoint::start() below to create resources and the endpoint internals... Connector::Options *configure_endpoint(Connector::OptionsBuilder &config) { // Build the endpoint configuration parameters logger.log("configure_endpoint: building endpoint configuration..."); return config.setEndpointNodename(MY_ENDPOINT_NAME) // custom endpoint name .setNSPAddress(my_nsp_address) // custom NSP address .setDomain(MY_NSP_DOMAIN) // custom NSP domain .setNSPPortNumber(my_nsp_coap_port) // custom NSP CoAP port // add the static resource representing this endpoint .addResource(&mfg) .addResource(&model) // add the heartrate resource .addResource(&hr) // finalize the configuration... .build(); } // main entry point... int main() { // Announce logger.log("\r\n\r\nmbed mDS BLE Heartrate Endpoint"); // we have to plumb our network first Connector::Endpoint::plumbNetwork(); // starts the endpoint by finalizing its configuration (configure_endpoint() above called),creating a Thread and reading NSP events... logger.log("Start the endpoint to finish setup and enter the main loop..."); Connector::Endpoint::start(); }