Hello,
I am using 15.2.0 SDK and 3.1.0 Mesh SDK.
I was trying to control two LED's on the nRF52DK using two generic level server models. I made following changes to the code for dimming_server:
Added an extra PWM module, initialized and enabled it to control different LED -
APP_PWM_INSTANCE(PWM1, 2);
app_pwm_config_t m_pwm1_config = APP_PWM_DEFAULT_CONFIG_1CH(1000, BSP_LED_1);
uint32_t status1 = app_pwm_init(&PWM1, &m_pwm1_config, NULL); APP_ERROR_CHECK(status1);
app_pwm_enable(&PWM1);
Then, created a new level server model -
APP_LEVEL_SERVER_DEF(m_level_server_1, APP_CONFIG_FORCE_SEGMENTATION, APP_CONFIG_MIC_SIZE, NULL, app_level_server_set_cb, app_level_server_get_cb);
Modified level_set_cb() as below differentiate between models using model handles -
static void app_level_server_set_cb(const app_level_server_t * p_server, int16_t present_level)
{
/* Resolve the server instance here if required, this example uses only 1 instance. */
m_pwm0_present_level = present_level;
if(p_server->server.model_handle == m_level_server_0.server.model_handle)
(void) app_pwm_channel_duty_ticks_set(&PWM0, 0, scaled_pwm_ticks_get(m_pwm0_present_level));
else if(p_server -> server.model_handle == m_level_server_1.server.model_handle)
(void) app_pwm_channel_duty_ticks_set(&PWM1, 0, scaled_pwm_ticks_get(m_pwm0_present_level));
}
And initiated both the generic level models in the app_model_init().
I provisioned the board and when I try to set the dimming level using the app, both the models control BSP_LED_0 whereas they are supposed to control different LED's.
Similar behavior is observed with generic_onoff models too.
I am using the model handle to differentiate between them which ain't working. Is there any other way to achieve the control over two LED's?
Thank you.