FRDM K64F Metronome

Committer:
ram54288
Date:
Sun May 14 18:37:05 2017 +0000
Revision:
0:dbad57390bd1
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ram54288 0:dbad57390bd1 1 #include "frdm_client.hpp"
ram54288 0:dbad57390bd1 2
ram54288 0:dbad57390bd1 3 #include "mbed-client/m2mdevice.h"
ram54288 0:dbad57390bd1 4 #include "security.h"
ram54288 0:dbad57390bd1 5
ram54288 0:dbad57390bd1 6 M2MDevice* frdm_client::make_device()
ram54288 0:dbad57390bd1 7 {
ram54288 0:dbad57390bd1 8 M2MDevice* device = M2MInterfaceFactory::create_device();
ram54288 0:dbad57390bd1 9 if (!device)
ram54288 0:dbad57390bd1 10 return NULL;
ram54288 0:dbad57390bd1 11
ram54288 0:dbad57390bd1 12 device->create_resource(M2MDevice::Manufacturer, "Freescale");
ram54288 0:dbad57390bd1 13 device->create_resource(M2MDevice::DeviceType, "FRDM");
ram54288 0:dbad57390bd1 14 device->create_resource(M2MDevice::ModelNumber, "K64F");
ram54288 0:dbad57390bd1 15
ram54288 0:dbad57390bd1 16 return device;
ram54288 0:dbad57390bd1 17 }
ram54288 0:dbad57390bd1 18
ram54288 0:dbad57390bd1 19 frdm_client::frdm_client(const String& server_address, void* handler)
ram54288 0:dbad57390bd1 20 : m_address(server_address), m_state(state::initialized)
ram54288 0:dbad57390bd1 21 {
ram54288 0:dbad57390bd1 22 String endpoint_type = "";
ram54288 0:dbad57390bd1 23 String context_addr = "";
ram54288 0:dbad57390bd1 24
ram54288 0:dbad57390bd1 25 int32_t lifetime = 100;
ram54288 0:dbad57390bd1 26 uint16_t port = 0;
ram54288 0:dbad57390bd1 27
ram54288 0:dbad57390bd1 28 m_interface = M2MInterfaceFactory::create_interface
ram54288 0:dbad57390bd1 29 (
ram54288 0:dbad57390bd1 30 *this,
ram54288 0:dbad57390bd1 31 MBED_ENDPOINT_NAME, endpoint_type,
ram54288 0:dbad57390bd1 32 lifetime,
ram54288 0:dbad57390bd1 33 port, MBED_DOMAIN, socket_mode, stack_type, context_addr
ram54288 0:dbad57390bd1 34 );
ram54288 0:dbad57390bd1 35
ram54288 0:dbad57390bd1 36 if (!m_interface)
ram54288 0:dbad57390bd1 37 {
ram54288 0:dbad57390bd1 38 m_state = state::error;
ram54288 0:dbad57390bd1 39 return;
ram54288 0:dbad57390bd1 40 }
ram54288 0:dbad57390bd1 41
ram54288 0:dbad57390bd1 42 m_security = M2MInterfaceFactory::create_security(M2MSecurity::M2MServer);
ram54288 0:dbad57390bd1 43 if (!m_security)
ram54288 0:dbad57390bd1 44 {
ram54288 0:dbad57390bd1 45 m_state = state::error;
ram54288 0:dbad57390bd1 46 return;
ram54288 0:dbad57390bd1 47 }
ram54288 0:dbad57390bd1 48
ram54288 0:dbad57390bd1 49 m_security->set_resource_value(M2MSecurity::M2MServerUri, m_address);
ram54288 0:dbad57390bd1 50 m_security->set_resource_value(M2MSecurity::SecurityMode, M2MSecurity::Certificate);
ram54288 0:dbad57390bd1 51 m_security->set_resource_value(M2MSecurity::ServerPublicKey, SERVER_CERT, sizeof(SERVER_CERT)-1);
ram54288 0:dbad57390bd1 52 m_security->set_resource_value(M2MSecurity::PublicKey, CERT, sizeof(CERT)-1);
ram54288 0:dbad57390bd1 53 m_security->set_resource_value(M2MSecurity::Secretkey, KEY, sizeof(KEY)-1);
ram54288 0:dbad57390bd1 54
ram54288 0:dbad57390bd1 55 m_interface->set_platform_network_handler(handler);
ram54288 0:dbad57390bd1 56 }
ram54288 0:dbad57390bd1 57
ram54288 0:dbad57390bd1 58 frdm_client::~frdm_client()
ram54288 0:dbad57390bd1 59 {
ram54288 0:dbad57390bd1 60 delete m_interface;
ram54288 0:dbad57390bd1 61 delete m_security;
ram54288 0:dbad57390bd1 62 }
ram54288 0:dbad57390bd1 63
ram54288 0:dbad57390bd1 64 void frdm_client::connect(const M2MObjectList& objects)
ram54288 0:dbad57390bd1 65 {
ram54288 0:dbad57390bd1 66 m_interface->register_object(m_security, objects);
ram54288 0:dbad57390bd1 67 }
ram54288 0:dbad57390bd1 68
ram54288 0:dbad57390bd1 69 void frdm_client::disconnect()
ram54288 0:dbad57390bd1 70 {
ram54288 0:dbad57390bd1 71 m_interface->unregister_object(NULL);
ram54288 0:dbad57390bd1 72 }
ram54288 0:dbad57390bd1 73