2019-11-18 12:47 AM
2019-11-27 11:41 PM
Finally I solved it by calling "user_notify()" at HCI_Process():
void HCI_Process(void)
{
tHciDataPacket * hciReadPacket = NULL;
Disable_SPI_IRQ();
uint8_t list_empty = list_is_empty(&hciReadPktRxQueue);
/* process any pending events read */
while(list_empty == FALSE)
{
list_remove_head (&hciReadPktRxQueue, (tListNode **)&hciReadPacket);
Enable_SPI_IRQ();
HCI_Event_CB(hciReadPacket->dataBuff);
user_notify(hciReadPacket->dataBuff);
Disable_SPI_IRQ();
list_insert_tail(&hciReadPktPool, (tListNode *)hciReadPacket);
list_empty = list_is_empty(&hciReadPktRxQueue);
}
/* Explicit call to HCI_Isr(), since it cannot be called by ISR if IRQ is kept high by
BlueNRG. */
HCI_Isr();
Enable_SPI_IRQ();
}
2019-11-27 11:41 PM
Finally I solved it by calling "user_notify()" at HCI_Process():
void HCI_Process(void)
{
tHciDataPacket * hciReadPacket = NULL;
Disable_SPI_IRQ();
uint8_t list_empty = list_is_empty(&hciReadPktRxQueue);
/* process any pending events read */
while(list_empty == FALSE)
{
list_remove_head (&hciReadPktRxQueue, (tListNode **)&hciReadPacket);
Enable_SPI_IRQ();
HCI_Event_CB(hciReadPacket->dataBuff);
user_notify(hciReadPacket->dataBuff);
Disable_SPI_IRQ();
list_insert_tail(&hciReadPktPool, (tListNode *)hciReadPacket);
list_empty = list_is_empty(&hciReadPktRxQueue);
}
/* Explicit call to HCI_Isr(), since it cannot be called by ISR if IRQ is kept high by
BlueNRG. */
HCI_Isr();
Enable_SPI_IRQ();
}
2020-06-04 03:59 AM
Hi mavv !
When you say "mix BLE + mesh" do you mean that you can communicate with (for example) a PC by BLE and then transfert this message to Mesh network, like that, you can act on Mesh with a computer ?
If yes, is that possible to explain me how you construct your custom ble service pls