Exemple #1
0
// returns last received message
uint32_t CMesh::receive(uint8_t handle) {
	uint8_t val[28];
	uint16_t len;
	APP_ERROR_CHECK(rbc_mesh_value_get(handle, val, &len, NULL));
	if (!len) return 0;
	return (uint32_t)val[0];
}
Exemple #2
0
bool CMesh::receive(uint8_t handle, void** p_data, uint16_t& length) {
	assert(length <= MAX_MESH_MESSAGE_LEN, "value too long to send");

	APP_ERROR_CHECK(rbc_mesh_value_get(handle, (uint8_t*)*p_data, &length, NULL));
	//LOGi("recv ch: %d, len: %d", handle, length);
	return length != 0;
}
Exemple #3
0
void GPIOTE_IRQHandler(void)
{
    NRF_GPIOTE->EVENTS_PORT = 0;
    for (uint8_t i = 0; i < 2; ++i)
    {
        if (NRF_GPIO->IN & (1 << (BUTTON_0 + i)))
        {
            uint8_t val[28];
            uint16_t len;
            APP_ERROR_CHECK(rbc_mesh_value_get(i + 1, val, &len, NULL));
            val[0] = !val[0];
            led_config(i + 1, val[0]);
            APP_ERROR_CHECK(rbc_mesh_value_set(i + 1, &val[0], 1));
        }
    }

}