/******************************************************************************* * Function Name: HandleUartRxTraffic ******************************************************************************** * * Summary: * This function takes data from received notfications and pushes it to the * UART TX buffer. * * Parameters: * CYBLE_GATTC_HANDLE_VALUE_NTF_PARAM_T * - the notification parameter as * recieved by the BLE stack * * Return: * None. * *******************************************************************************/ void HandleUartRxTraffic(CYBLE_GATTC_HANDLE_VALUE_NTF_PARAM_T *uartRxDataNotification) { if(uartRxDataNotification->handleValPair.attrHandle == txCharHandle) { UART_SpiUartPutArray(uartRxDataNotification->handleValPair.value.val, \ (uint32) uartRxDataNotification->handleValPair.value.len); } }
/******************************************************************************* * Function Name: CyBtldrCommWrite ******************************************************************************** * * Summary: * Allows the caller to write data to the bootloader host. This function uses * a block write function for writing data using UART communication component. * * Parameters: * pData: A pointer to the block of data to send to the device * size: The number of bytes to write. * count: Pointer to an unsigned short variable to write the number of * bytes actually written. * timeOut: Number of units to wait before returning because of a timeout. * * Return: * cystatus: This function will return CYRET_SUCCESS if data is sent successfully. * * Side Effects: * This function should be called after command was received . * *******************************************************************************/ cystatus CyBtldrCommWrite(uint8 * pData, uint16 Size, uint16 * Count, uint8 TimeOut) { cystatus status = CYRET_EMPTY; uint8 timeOutms = TimeOut; /* This timeout is not used in this function, defined to avoid compiler warning */ timeOutms += 10; receivedDataCount=0; /* Write TX data using blocking function */ UART_SpiUartPutArray(pData, (uint8)Size); /* Return success code */ *Count = Size; status = CYRET_SUCCESS; return status; }
/******************************************************************************* * Function Name: UART_UartCyBtldrCommWrite ******************************************************************************** * * Summary: * Allows the caller to write data to the bootloader host (the host reads the * data). The function does not use timeout and returns after data has been * copied into the transmit buffer. The data transmission starts immediately * after the first data element is written into the buffer and lasts until all * data elements from the buffer are sent. * * Parameters: * pData: Pointer to the block of data to be written to the bootloader host. * size: Number of bytes to be written. * count: Pointer to the variable to write the number of bytes actually * written. * timeOut: The timeout is not used by this function. The function returns * as soon as data is copied into the transmit buffer. * * Return: * Returns CYRET_SUCCESS if no problem was encountered or returns the value * that best describes the problem. For more information refer to the * "Return Codes" section of the System Reference Guide. * *******************************************************************************/ cystatus UART_UartCyBtldrCommWrite(const uint8 pData[], uint16 size, uint16 * count, uint8 timeOut) { cystatus status; status = CYRET_BAD_PARAM; if ((NULL != pData) && (size > 0u)) { /* Transmit data. This function does not wait until data is sent. */ UART_SpiUartPutArray(pData, (uint32) size); *count = size; status = CYRET_SUCCESS; if (0u != timeOut) { /* Suppress compiler warning */ } } return (status); }
void uartPutArray(uint8 val[], uint32 len){ UART_SpiUartPutArray(val, len); // This is common to SPI and UART modes }