Workshop example
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Diff: main.cpp
- Revision:
- 9:265744785d33
- Parent:
- 6:e0e1e1b93099
- Child:
- 10:b27c962b3c3f
--- a/main.cpp Sun Oct 14 17:15:45 2018 +0000 +++ b/main.cpp Sun Oct 14 19:01:53 2018 +0100 @@ -15,26 +15,23 @@ // See the License for the specific language governing permissions and // limitations under the License. // ---------------------------------------------------------------------------- - +#ifndef MBED_TEST_MODE #include "mbed.h" #include "simple-mbed-cloud-client.h" -#include "SDBlockDevice.h" #include "FATFileSystem.h" -#include "ISM43362Interface.h" // An event queue is a very useful structure to debounce information between contexts (e.g. ISR and normal threads) // This is great because things such as network operations are illegal in ISR, so updating a resource in a button's fall() function is not allowed EventQueue eventQueue; -// Declaring net interface as a global variable instead of local to avoid stack overflow -ISM43362Interface net; +// Default network interface object +NetworkInterface *net; -// Storage implementation definition, currently using SDBlockDevice (SPI flash, DataFlash, and internal flash are also available) -SDBlockDevice sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS); -FATFileSystem fs("sd", &sd); +// Default block device +BlockDevice* bd = BlockDevice::get_default_instance(); +FATFileSystem fs("sd", bd); - -// Declaring pointers for access to Mbed Cloud Client resources outside of main() +// Declaring pointers for access to Pelion Client resources outside of main() MbedCloudClientResource *button_res; MbedCloudClientResource *pattern_res; @@ -100,28 +97,30 @@ * @param endpoint Information about the registered endpoint such as the name (so you can find it back in portal) */ void registered(const ConnectorClientEndpointInfo *endpoint) { - printf("Connected to Mbed Cloud. Endpoint Name: %s\n", endpoint->internal_endpoint_name.c_str()); + printf("Connected to Pelion Device Management. Endpoint Name: %s\n", endpoint->internal_endpoint_name.c_str()); } int main(void) { - printf("Starting Simple Mbed Cloud Client example\n"); + printf("Starting Simple Pelion Device Management Client example\n"); printf("Connecting to the network using Wifi...\n"); // Connect to the internet (DHCP is expected to be on) - nsapi_error_t status = net.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, (strlen(MBED_CONF_APP_WIFI_PASSWORD) > 1) ? NSAPI_SECURITY_WPA_WPA2 : NSAPI_SECURITY_NONE); + net = NetworkInterface::get_default_instance(); - if (status != 0) { + nsapi_error_t status = net->connect(); + + if (status != NSAPI_ERROR_OK) { printf("Connecting to the network failed %d!\n", status); return -1; } - printf("Connected to the network successfully. IP address: %s\n", net.get_ip_address()); + printf("Connected to the network successfully. IP address: %s\n", net->get_ip_address()); - // SimpleMbedCloudClient handles registering over LwM2M to Mbed Cloud - SimpleMbedCloudClient client(&net, &sd, &fs); + // SimpleMbedCloudClient handles registering over LwM2M to Pelion DM + SimpleMbedCloudClient client(net, bd, &fs); int client_status = client.init(); if (client_status != 0) { - printf("Initializing Mbed Cloud Client failed (%d)\n", client_status); + printf("Pelion Client initialization failed (%d)\n", client_status); return -1; } @@ -141,12 +140,12 @@ blink_res->methods(M2MMethod::POST); blink_res->attach_post_callback(blink_callback); - printf("Initialized Mbed Cloud Client. Registering...\n"); + printf("Initialized Pelion Client. Registering...\n"); // Callback that fires when registering is complete client.on_registered(®istered); - // Register with Mbed Cloud + // Register with Pelion DM client.register_and_connect(); // Placeholder for callback to update local resource when GET comes. @@ -157,3 +156,4 @@ // You can easily run the eventQueue in a separate thread if required eventQueue.dispatch_forever(); } +#endif