Donald Meyers / Mbed OS evan
Committer:
djmeyers
Date:
Sat Mar 18 22:37:16 2017 +0000
Revision:
0:06ee5f8a484a
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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