Ram Gandikota / Mbed OS ABCD
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers frdm_client.cpp Source File

frdm_client.cpp

00001 #include "frdm_client.hpp"
00002 
00003 #include "mbed-client/m2mdevice.h"
00004 #include "security.h"
00005 
00006 M2MDevice* frdm_client::make_device()
00007 {
00008     M2MDevice* device = M2MInterfaceFactory::create_device();
00009     if (!device)
00010         return NULL;
00011 
00012     device->create_resource(M2MDevice::Manufacturer, "Freescale");
00013     device->create_resource(M2MDevice::DeviceType, "FRDM");
00014     device->create_resource(M2MDevice::ModelNumber, "K64F");
00015 
00016     return device;
00017 }
00018 
00019 frdm_client::frdm_client(const String& server_address, void* handler)
00020 : m_address(server_address), m_state(state::initialized)
00021 {
00022     String endpoint_type = "";
00023     String context_addr = "";
00024 
00025     int32_t lifetime = 100;
00026     uint16_t port = 0;
00027 
00028     m_interface = M2MInterfaceFactory::create_interface
00029     (
00030         *this,
00031         MBED_ENDPOINT_NAME, endpoint_type,
00032         lifetime,
00033         port, MBED_DOMAIN, socket_mode, stack_type, context_addr
00034     );
00035 
00036     if (!m_interface)
00037     {
00038         m_state = state::error;
00039         return;
00040     }
00041 
00042     m_security = M2MInterfaceFactory::create_security(M2MSecurity::M2MServer);
00043     if (!m_security)
00044     {
00045         m_state = state::error;
00046         return;
00047     }
00048 
00049     m_security->set_resource_value(M2MSecurity::M2MServerUri, m_address);
00050     m_security->set_resource_value(M2MSecurity::SecurityMode, M2MSecurity::Certificate);
00051     m_security->set_resource_value(M2MSecurity::ServerPublicKey, SERVER_CERT, sizeof(SERVER_CERT)-1);
00052     m_security->set_resource_value(M2MSecurity::PublicKey, CERT, sizeof(CERT)-1);
00053     m_security->set_resource_value(M2MSecurity::Secretkey, KEY, sizeof(KEY)-1);
00054 
00055     m_interface->set_platform_network_handler(handler);
00056 }
00057 
00058 frdm_client::~frdm_client()
00059 {
00060     delete m_interface;
00061     delete m_security;
00062 }
00063 
00064 void frdm_client::connect(const M2MObjectList& objects)
00065 {
00066     m_interface->register_object(m_security, objects);
00067 }
00068 
00069 void frdm_client::disconnect()
00070 {
00071     m_interface->unregister_object(NULL);
00072 }
00073