Я пытаюсь выполнить простое умножение и сложение данных, отправленных через BLE.
Как показано ниже, строка:
evt.duty_cycle = p_evt_write *3 +10;
* 3 и +10 выдает ошибку:
invalid operands to binary * (have 'const ble_gatts_evt_write_t * {aka
const struct <anonymous> *}' and 'int')
Я знаю, что типы данных должны быть разными, но я не знаю, как с ними работать.Может кто-нибудь знакомый с этим, пожалуйста, объясните, как можно сделать операцию?
static void on_write(ble_cus_t * p_cus, ble_evt_t const * p_ble_evt)
{
ble_gatts_evt_write_t const * p_evt_write = &p_ble_evt-
>evt.gatts_evt.params.write;
ble_cus_evt_t evt;
if (p_evt_write->handle == p_cus->custom_value_handles.value_handle)
{
nrf_gpio_pin_toggle(LED_4);
if(p_evt_write->data != NULL)
{
evt.evt_type = BLE_CUS_EVT_SERVO;
evt.duty_cycle = p_evt_write * 3 +10;
//Print the caclulated duty cycle to the debug terminal
NRF_LOG_INFO("Duty Cycle: %d \r\n", evt.duty_cycle);
// Call the application event handler.
p_cus->evt_handler(p_cus, &evt);
}
}
}