| /* |
| * Copyright (c) 2022 Nordic Semiconductor |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #define LOG_MODULE_NAME app_timer |
| #include <zephyr/logging/log.h> |
| LOG_MODULE_REGISTER(LOG_MODULE_NAME); |
| |
| #include "modules.h" |
| |
| #include <zephyr/net/lwm2m.h> |
| |
| #define TIMER_NAME "Test timer" |
| |
| /* An example data validation callback. */ |
| static int timer_on_off_validate_cb(uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, |
| uint8_t *data, uint16_t data_len, bool last_block, |
| size_t total_size) |
| { |
| LOG_INF("Validating On/Off data"); |
| |
| if (data_len != 1) { |
| return -EINVAL; |
| } |
| |
| if (*data > 1) { |
| return -EINVAL; |
| } |
| |
| return 0; |
| } |
| |
| static int timer_digital_state_cb(uint16_t obj_inst_id, uint16_t res_id, uint16_t res_inst_id, |
| uint8_t *data, uint16_t data_len, bool last_block, |
| size_t total_size) |
| { |
| bool *digital_state = (bool *)data; |
| |
| if (*digital_state) { |
| LOG_INF("TIMER: ON"); |
| } else { |
| LOG_INF("TIMER: OFF"); |
| } |
| |
| return 0; |
| } |
| |
| void init_timer_object(void) |
| { |
| lwm2m_engine_create_obj_inst("3340/0"); |
| lwm2m_engine_register_validate_callback("3340/0/5850", timer_on_off_validate_cb); |
| lwm2m_engine_register_post_write_callback("3340/0/5543", timer_digital_state_cb); |
| lwm2m_engine_set_res_buf("3340/0/5750", TIMER_NAME, sizeof(TIMER_NAME), sizeof(TIMER_NAME), |
| LWM2M_RES_DATA_FLAG_RO); |
| } |