mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Astyle
							parent
							
								
									17a4c1b2e9
								
							
						
					
					
						commit
						a8d8bd6c18
					
				| 
						 | 
				
			
			@ -460,4 +460,4 @@ int main(void)
 | 
			
		|||
{
 | 
			
		||||
    return !Harness::run(specification);
 | 
			
		||||
}
 | 
			
		||||
 #endif // ((!defined(TARGET_PSA)) || (!defined(MBEDTLS_PSA_CRYPTO_C)))
 | 
			
		||||
#endif // ((!defined(TARGET_PSA)) || (!defined(MBEDTLS_PSA_CRYPTO_C)))
 | 
			
		||||
| 
						 | 
				
			
			@ -84,13 +84,13 @@ int main()
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
#endif // (MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE == WIFI) && \
 | 
			
		||||
            !defined(TARGET_UBLOX_EVK_ODIN_W2)      && \
 | 
			
		||||
            !defined(TARGET_REALTEK_RTL8195AM)      && \
 | 
			
		||||
            !defined(TARGET_MTB_ADV_WISE_1530)      && \
 | 
			
		||||
            !defined(TARGET_MTB_USI_WM_BN_BM_22)    && \
 | 
			
		||||
            !defined(TARGET_MTB_MXCHIP_EMW3166)     && \
 | 
			
		||||
            !defined(TARGET_MTB_UBLOX_ODIN_W2)      && \
 | 
			
		||||
            !defined(TARGET_UNO_91H)
 | 
			
		||||
!defined(TARGET_UBLOX_EVK_ODIN_W2)      && \
 | 
			
		||||
!defined(TARGET_REALTEK_RTL8195AM)      && \
 | 
			
		||||
!defined(TARGET_MTB_ADV_WISE_1530)      && \
 | 
			
		||||
!defined(TARGET_MTB_USI_WM_BN_BM_22)    && \
 | 
			
		||||
!defined(TARGET_MTB_MXCHIP_EMW3166)     && \
 | 
			
		||||
!defined(TARGET_MTB_UBLOX_ODIN_W2)      && \
 | 
			
		||||
!defined(TARGET_UNO_91H)
 | 
			
		||||
 | 
			
		||||
#endif // MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE != ETHERNET && MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE != WIFI
 | 
			
		||||
#endif // !defined(MBED_CONF_APP_ECHO_SERVER) || !defined(MBED_CONF_APP_ECHO_SERVER_TRACE) || !defined(MBED_CONF_APP_WIFI_SCAN)
 | 
			
		||||
| 
						 | 
				
			
			@ -93,17 +93,17 @@ int main()
 | 
			
		|||
    return !Harness::run(specification);
 | 
			
		||||
}
 | 
			
		||||
#endif // defined(MBED_CONF_APP_WIFI_UNSECURE_SSID) &&  \
 | 
			
		||||
    !defined(MBED_CONF_APP_AP_MAC_UNSECURE)    || \
 | 
			
		||||
    !defined(MBED_CONF_APP_MAX_SCAN_SIZE)      || \
 | 
			
		||||
    !defined(MBED_CONF_APP_WIFI_CH_UNSECURE)   || \
 | 
			
		||||
    !defined(MBED_CONF_APP_WIFI_UNSECURE_SSID)
 | 
			
		||||
!defined(MBED_CONF_APP_AP_MAC_UNSECURE)    || \
 | 
			
		||||
!defined(MBED_CONF_APP_MAX_SCAN_SIZE)      || \
 | 
			
		||||
!defined(MBED_CONF_APP_WIFI_CH_UNSECURE)   || \
 | 
			
		||||
!defined(MBED_CONF_APP_WIFI_UNSECURE_SSID)
 | 
			
		||||
 | 
			
		||||
#endif // defined(MBED_CONF_APP_WIFI_SECURE_SSID) && \
 | 
			
		||||
   (!defined(MBED_CONF_APP_AP_MAC_SECURE)      || \
 | 
			
		||||
    !defined(MBED_CONF_APP_MAX_SCAN_SIZE)      || \
 | 
			
		||||
    !defined(MBED_CONF_APP_WIFI_CH_SECURE)     || \
 | 
			
		||||
    !defined(MBED_CONF_APP_WIFI_PASSWORD)      || \
 | 
			
		||||
    !defined(MBED_CONF_APP_WIFI_SECURE_SSID)   || \
 | 
			
		||||
    !defined MBED_CONF_APP_WIFI_SECURE_PROTOCOL)
 | 
			
		||||
    
 | 
			
		||||
(!defined(MBED_CONF_APP_AP_MAC_SECURE)      || \
 | 
			
		||||
!defined(MBED_CONF_APP_MAX_SCAN_SIZE)      || \
 | 
			
		||||
!defined(MBED_CONF_APP_WIFI_CH_SECURE)     || \
 | 
			
		||||
!defined(MBED_CONF_APP_WIFI_PASSWORD)      || \
 | 
			
		||||
!defined(MBED_CONF_APP_WIFI_SECURE_SSID)   || \
 | 
			
		||||
!defined MBED_CONF_APP_WIFI_SECURE_PROTOCOL)
 | 
			
		||||
 | 
			
		||||
#endif //!defined(MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE) || MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE != WIFI
 | 
			
		||||
| 
						 | 
				
			
			@ -31,7 +31,7 @@ using namespace utest::v1;
 | 
			
		|||
using ble::vendor::cordio::CordioHCIDriver;
 | 
			
		||||
using ble::vendor::cordio::CordioHCITransportDriver;
 | 
			
		||||
 | 
			
		||||
extern ble::vendor::cordio::CordioHCIDriver& ble_cordio_get_hci_driver();
 | 
			
		||||
extern ble::vendor::cordio::CordioHCIDriver &ble_cordio_get_hci_driver();
 | 
			
		||||
 | 
			
		||||
#if CORDIO_ZERO_COPY_HCI
 | 
			
		||||
#error [NOT_SUPPORTED] Test not relevant for zero copy hci.
 | 
			
		||||
| 
						 | 
				
			
			@ -42,15 +42,18 @@ namespace vendor {
 | 
			
		|||
namespace cordio {
 | 
			
		||||
 | 
			
		||||
struct CordioHCIHook {
 | 
			
		||||
    static CordioHCIDriver& get_driver() {
 | 
			
		||||
    static CordioHCIDriver &get_driver()
 | 
			
		||||
    {
 | 
			
		||||
        return ble_cordio_get_hci_driver();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static CordioHCITransportDriver& get_transport_driver() {
 | 
			
		||||
    static CordioHCITransportDriver &get_transport_driver()
 | 
			
		||||
    {
 | 
			
		||||
        return get_driver()._transport_driver;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static void set_data_received_handler(void (*handler)(uint8_t*, uint8_t)) {
 | 
			
		||||
    static void set_data_received_handler(void (*handler)(uint8_t *, uint8_t))
 | 
			
		||||
    {
 | 
			
		||||
        get_transport_driver().set_data_received_handler(handler);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -75,22 +78,24 @@ static const uint32_t WAITING_FLAGS =
 | 
			
		|||
 | 
			
		||||
static rtos::EventFlags event_channel;
 | 
			
		||||
 | 
			
		||||
static void signal_flag(uint32_t flag) {
 | 
			
		||||
static void signal_flag(uint32_t flag)
 | 
			
		||||
{
 | 
			
		||||
    if (!(event_channel.get() & flag)) {
 | 
			
		||||
        event_channel.set(flag);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uint32_t wait_for_event() {
 | 
			
		||||
uint32_t wait_for_event()
 | 
			
		||||
{
 | 
			
		||||
    // clear reception flags
 | 
			
		||||
    uint32_t flags = event_channel.get();
 | 
			
		||||
    event_channel.clear(flags & ~RESET_RECEIVED_FLAG);
 | 
			
		||||
 | 
			
		||||
    return event_channel.wait_any(
 | 
			
		||||
        WAITING_FLAGS,
 | 
			
		||||
        /* timeout */ RESET_COMMAND_TIMEOUT,
 | 
			
		||||
        /* clear */ false
 | 
			
		||||
    );
 | 
			
		||||
               WAITING_FLAGS,
 | 
			
		||||
               /* timeout */ RESET_COMMAND_TIMEOUT,
 | 
			
		||||
               /* clear */ false
 | 
			
		||||
           );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +109,8 @@ uint32_t wait_for_event() {
 | 
			
		|||
#define RESET_PACKET_LENGTH (1 + HCI_EVT_HDR_LEN + RESET_PARAMETER_LENGTH)
 | 
			
		||||
#define RESET_STATUS_INDEX 6
 | 
			
		||||
 | 
			
		||||
static bool is_reset_event(const uint8_t* data, uint16_t len) {
 | 
			
		||||
static bool is_reset_event(const uint8_t *data, uint16_t len)
 | 
			
		||||
{
 | 
			
		||||
    if (len != RESET_PACKET_LENGTH) {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -135,7 +141,8 @@ static bool is_reset_event(const uint8_t* data, uint16_t len) {
 | 
			
		|||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void hci_driver_rx_reset_handler(uint8_t* data, uint8_t len) {
 | 
			
		||||
static void hci_driver_rx_reset_handler(uint8_t *data, uint8_t len)
 | 
			
		||||
{
 | 
			
		||||
    enum packet_state_t {
 | 
			
		||||
        WAITING_FOR_PACKET_TYPE,
 | 
			
		||||
        WAITING_FOR_HEADER_COMPLETE,
 | 
			
		||||
| 
						 | 
				
			
			@ -166,19 +173,20 @@ static void hci_driver_rx_reset_handler(uint8_t* data, uint8_t len) {
 | 
			
		|||
 | 
			
		||||
            case WAITING_FOR_HEADER_COMPLETE:
 | 
			
		||||
            case WAITING_FOR_DATA_COMPLETE: {
 | 
			
		||||
                uint16_t step = std::min((uint16_t) len, (uint16_t) (packet_length - position));
 | 
			
		||||
                uint16_t step = std::min((uint16_t) len, (uint16_t)(packet_length - position));
 | 
			
		||||
                memcpy(packet + position, data, step);
 | 
			
		||||
                position+= step;
 | 
			
		||||
                position += step;
 | 
			
		||||
                data += step;
 | 
			
		||||
                len -= step;
 | 
			
		||||
 | 
			
		||||
                if (reception_state == WAITING_FOR_HEADER_COMPLETE &&
 | 
			
		||||
                    position == packet_length
 | 
			
		||||
                ) {
 | 
			
		||||
                        position == packet_length
 | 
			
		||||
                   ) {
 | 
			
		||||
                    reception_state = WAITING_FOR_DATA_COMPLETE;
 | 
			
		||||
                    packet_length += packet[HCI_EVT_HDR_LEN];
 | 
			
		||||
                }
 | 
			
		||||
            }   break;
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            // dead end; we never exit from the error state; just asignal it again.
 | 
			
		||||
| 
						 | 
				
			
			@ -192,7 +200,7 @@ static void hci_driver_rx_reset_handler(uint8_t* data, uint8_t len) {
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        bool packet_complete = (reception_state == WAITING_FOR_DATA_COMPLETE) &&
 | 
			
		||||
            (position == packet_length);
 | 
			
		||||
                               (position == packet_length);
 | 
			
		||||
 | 
			
		||||
        if (packet_complete) {
 | 
			
		||||
            if (is_reset_event(packet, packet_length)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -217,9 +225,10 @@ static uint8_t reset_cmd[] = {
 | 
			
		|||
    0 // parameter length
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void test_reset_command() {
 | 
			
		||||
    CordioHCIDriver& driver = CordioHCIHook::get_driver();
 | 
			
		||||
    CordioHCITransportDriver& transport_driver = CordioHCIHook::get_transport_driver();
 | 
			
		||||
void test_reset_command()
 | 
			
		||||
{
 | 
			
		||||
    CordioHCIDriver &driver = CordioHCIHook::get_driver();
 | 
			
		||||
    CordioHCITransportDriver &transport_driver = CordioHCIHook::get_transport_driver();
 | 
			
		||||
 | 
			
		||||
    driver.initialize();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -235,9 +244,10 @@ void test_reset_command() {
 | 
			
		|||
 | 
			
		||||
#define EXPECTED_CONSECUTIVE_RESET   10
 | 
			
		||||
 | 
			
		||||
void test_multiple_reset_command() {
 | 
			
		||||
    CordioHCIDriver& driver = CordioHCIHook::get_driver();
 | 
			
		||||
    CordioHCITransportDriver& transport_driver = CordioHCIHook::get_transport_driver();
 | 
			
		||||
void test_multiple_reset_command()
 | 
			
		||||
{
 | 
			
		||||
    CordioHCIDriver &driver = CordioHCIHook::get_driver();
 | 
			
		||||
    CordioHCITransportDriver &transport_driver = CordioHCIHook::get_transport_driver();
 | 
			
		||||
 | 
			
		||||
    driver.initialize();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -260,14 +270,16 @@ Case cases[] = {
 | 
			
		|||
    Case("Test multiple reset commands", test_multiple_reset_command)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
utest::v1::status_t greentea_test_setup(const size_t number_of_cases) {
 | 
			
		||||
utest::v1::status_t greentea_test_setup(const size_t number_of_cases)
 | 
			
		||||
{
 | 
			
		||||
    GREENTEA_SETUP(15, "default_auto");
 | 
			
		||||
    return verbose_test_setup_handler(number_of_cases);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Specification specification(greentea_test_setup, cases, greentea_test_teardown_handler);
 | 
			
		||||
 | 
			
		||||
int main() {
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
    return !Harness::run(specification);
 | 
			
		||||
}
 | 
			
		||||
#endif // CORDIO_ZERO_COPY_HCI
 | 
			
		||||
		Loading…
	
		Reference in New Issue