LWM2M_RESOURCE_STRING(0, LWM2M_DEVICE_MANUFACTURER), #endif /* LWM2M_DEVICE_MANUFACTURER */ #ifdef LWM2M_DEVICE_TYPE LWM2M_RESOURCE_STRING(17, LWM2M_DEVICE_TYPE), #endif /* LWM2M_DEVICE_TYPE */ #ifdef LWM2M_DEVICE_MODEL_NUMBER LWM2M_RESOURCE_STRING(1, LWM2M_DEVICE_MODEL_NUMBER), #endif /* LWM2M_DEVICE_MODEL_NUMBER */ #ifdef LWM2M_DEVICE_SERIAL_NO LWM2M_RESOURCE_STRING(2, LWM2M_DEVICE_SERIAL_NO), #endif /* LWM2M_DEVICE_SERIAL_NO */ #ifdef LWM2M_DEVICE_FIRMWARE_VERSION LWM2M_RESOURCE_STRING(3, LWM2M_DEVICE_FIRMWARE_VERSION), #endif /* LWM2M_DEVICE_FIRMWARE_VERSION */ #ifdef PLATFORM_REBOOT LWM2M_RESOURCE_CALLBACK(4, { NULL, NULL, reboot }), #endif /* PLATFORM_REBOOT */ #ifdef PLATFORM_FACTORY_DEFAULT LWM2M_RESOURCE_CALLBACK(5, { NULL, NULL, factory_reset }), #endif /* PLATFORM_FACTORY_DEFAULT */ /* Current Time */ LWM2M_RESOURCE_CALLBACK(13, { read_lwtime, set_lwtime, NULL }), ); LWM2M_INSTANCES(device_instances, LWM2M_INSTANCE(0, device_resources)); LWM2M_OBJECT(device, 3, device_instances); /*---------------------------------------------------------------------------*/ void lwm2m_device_init(void) { /** * Register this device and its handlers - the handlers
len = ctx->reader->read_int(ctx, inbuf, insize, &value); if(len > 0 && value == 0) { PRINTF("IPSO leds control - reset On Time\n"); states[idx].total_on_time = 0; if(states[idx].is_on) { states[idx].last_on_time = clock_seconds(); } } else { PRINTF("IPSO leds control - ignored illegal write to On Time\n"); } return len; } /*---------------------------------------------------------------------------*/ LWM2M_RESOURCES(leds_control_resources, LWM2M_RESOURCE_CALLBACK(5850, { read_state, write_state, NULL }), LWM2M_RESOURCE_CALLBACK(5852, { read_on_time, write_on_time, NULL }) ); LWM2M_OBJECT(leds_control, 3311, leds_control_instances); /*---------------------------------------------------------------------------*/ void ipso_leds_control_init(void) { lwm2m_instance_t template = LWM2M_INSTANCE(0, leds_control_resources); int i; /* Initialize the instances */ for(i = 0; i < LEDS_CONTROL_NUMBER; i++) { leds_control_instances[i] = template; leds_control_instances[i].id = i; }
if (value == 0 && is_on == 1) { is_on = 0; leds_off(led_value); } if (value == 1 && is_on == 0) { is_on = 1; leds_on(led_value); } } return len; } /*---------------------------------------------------------------------------*/ LWM2M_RESOURCES(leds_control_resources, LWM2M_RESOURCE_CALLBACK(5850, { read_state, write_state, NULL }), LWM2M_RESOURCE_CALLBACK(5706, { read_color, write_color, NULL }), /* Units */ LWM2M_RESOURCE_STRING(5701, "Lux"), ); LWM2M_INSTANCES(leds_control_instances, LWM2M_INSTANCE(0, leds_control_resources)); LWM2M_OBJECT(leds_control, 3311, leds_control_instances); /*---------------------------------------------------------------------------*/ void object_leds_init(void) { leds_on(led_value); lwm2m_engine_register_object(&leds_control);