Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
frdm_client.cpp@0:06ee5f8a484a, 2017-03-18 (annotated)
- Committer:
- djmeyers
- Date:
- Sat Mar 18 22:37:16 2017 +0000
- Revision:
- 0:06ee5f8a484a
Initial commit
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| djmeyers | 0:06ee5f8a484a | 1 | #include "frdm_client.hpp" |
| djmeyers | 0:06ee5f8a484a | 2 | |
| djmeyers | 0:06ee5f8a484a | 3 | #include "mbed-client/m2mdevice.h" |
| djmeyers | 0:06ee5f8a484a | 4 | #include "security.h" |
| djmeyers | 0:06ee5f8a484a | 5 | |
| djmeyers | 0:06ee5f8a484a | 6 | M2MDevice* frdm_client::make_device() |
| djmeyers | 0:06ee5f8a484a | 7 | { |
| djmeyers | 0:06ee5f8a484a | 8 | M2MDevice* device = M2MInterfaceFactory::create_device(); |
| djmeyers | 0:06ee5f8a484a | 9 | if (!device) |
| djmeyers | 0:06ee5f8a484a | 10 | return NULL; |
| djmeyers | 0:06ee5f8a484a | 11 | |
| djmeyers | 0:06ee5f8a484a | 12 | device->create_resource(M2MDevice::Manufacturer, "Freescale"); |
| djmeyers | 0:06ee5f8a484a | 13 | device->create_resource(M2MDevice::DeviceType, "FRDM"); |
| djmeyers | 0:06ee5f8a484a | 14 | device->create_resource(M2MDevice::ModelNumber, "K64F"); |
| djmeyers | 0:06ee5f8a484a | 15 | |
| djmeyers | 0:06ee5f8a484a | 16 | return device; |
| djmeyers | 0:06ee5f8a484a | 17 | } |
| djmeyers | 0:06ee5f8a484a | 18 | |
| djmeyers | 0:06ee5f8a484a | 19 | frdm_client::frdm_client(const String& server_address, void* handler) |
| djmeyers | 0:06ee5f8a484a | 20 | : m_address(server_address), m_state(state::initialized) |
| djmeyers | 0:06ee5f8a484a | 21 | { |
| djmeyers | 0:06ee5f8a484a | 22 | String endpoint_type = ""; |
| djmeyers | 0:06ee5f8a484a | 23 | String context_addr = ""; |
| djmeyers | 0:06ee5f8a484a | 24 | |
| djmeyers | 0:06ee5f8a484a | 25 | int32_t lifetime = 100; |
| djmeyers | 0:06ee5f8a484a | 26 | uint16_t port = 0; |
| djmeyers | 0:06ee5f8a484a | 27 | |
| djmeyers | 0:06ee5f8a484a | 28 | m_interface = M2MInterfaceFactory::create_interface |
| djmeyers | 0:06ee5f8a484a | 29 | ( |
| djmeyers | 0:06ee5f8a484a | 30 | *this, |
| djmeyers | 0:06ee5f8a484a | 31 | MBED_ENDPOINT_NAME, endpoint_type, |
| djmeyers | 0:06ee5f8a484a | 32 | lifetime, |
| djmeyers | 0:06ee5f8a484a | 33 | port, MBED_DOMAIN, socket_mode, stack_type, context_addr |
| djmeyers | 0:06ee5f8a484a | 34 | ); |
| djmeyers | 0:06ee5f8a484a | 35 | |
| djmeyers | 0:06ee5f8a484a | 36 | if (!m_interface) |
| djmeyers | 0:06ee5f8a484a | 37 | { |
| djmeyers | 0:06ee5f8a484a | 38 | m_state = state::error; |
| djmeyers | 0:06ee5f8a484a | 39 | return; |
| djmeyers | 0:06ee5f8a484a | 40 | } |
| djmeyers | 0:06ee5f8a484a | 41 | |
| djmeyers | 0:06ee5f8a484a | 42 | m_security = M2MInterfaceFactory::create_security(M2MSecurity::M2MServer); |
| djmeyers | 0:06ee5f8a484a | 43 | if (!m_security) |
| djmeyers | 0:06ee5f8a484a | 44 | { |
| djmeyers | 0:06ee5f8a484a | 45 | m_state = state::error; |
| djmeyers | 0:06ee5f8a484a | 46 | return; |
| djmeyers | 0:06ee5f8a484a | 47 | } |
| djmeyers | 0:06ee5f8a484a | 48 | |
| djmeyers | 0:06ee5f8a484a | 49 | m_security->set_resource_value(M2MSecurity::M2MServerUri, m_address); |
| djmeyers | 0:06ee5f8a484a | 50 | m_security->set_resource_value(M2MSecurity::SecurityMode, M2MSecurity::Certificate); |
| djmeyers | 0:06ee5f8a484a | 51 | m_security->set_resource_value(M2MSecurity::ServerPublicKey, SERVER_CERT, sizeof(SERVER_CERT)-1); |
| djmeyers | 0:06ee5f8a484a | 52 | m_security->set_resource_value(M2MSecurity::PublicKey, CERT, sizeof(CERT)-1); |
| djmeyers | 0:06ee5f8a484a | 53 | m_security->set_resource_value(M2MSecurity::Secretkey, KEY, sizeof(KEY)-1); |
| djmeyers | 0:06ee5f8a484a | 54 | |
| djmeyers | 0:06ee5f8a484a | 55 | m_interface->set_platform_network_handler(handler); |
| djmeyers | 0:06ee5f8a484a | 56 | } |
| djmeyers | 0:06ee5f8a484a | 57 | |
| djmeyers | 0:06ee5f8a484a | 58 | frdm_client::~frdm_client() |
| djmeyers | 0:06ee5f8a484a | 59 | { |
| djmeyers | 0:06ee5f8a484a | 60 | delete m_interface; |
| djmeyers | 0:06ee5f8a484a | 61 | delete m_security; |
| djmeyers | 0:06ee5f8a484a | 62 | } |
| djmeyers | 0:06ee5f8a484a | 63 | |
| djmeyers | 0:06ee5f8a484a | 64 | void frdm_client::connect(const M2MObjectList& objects) |
| djmeyers | 0:06ee5f8a484a | 65 | { |
| djmeyers | 0:06ee5f8a484a | 66 | m_interface->register_object(m_security, objects); |
| djmeyers | 0:06ee5f8a484a | 67 | } |
| djmeyers | 0:06ee5f8a484a | 68 | |
| djmeyers | 0:06ee5f8a484a | 69 | void frdm_client::disconnect() |
| djmeyers | 0:06ee5f8a484a | 70 | { |
| djmeyers | 0:06ee5f8a484a | 71 | m_interface->unregister_object(NULL); |
| djmeyers | 0:06ee5f8a484a | 72 | } |
| djmeyers | 0:06ee5f8a484a | 73 |