Merge pull request #12334 from AriParkkila/cell-c030-r412m

Update cellular drivers/tests for UBLOX_C030_R412M
pull/12349/head
Martin Kojtal 2020-02-05 12:50:11 +00:00 committed by GitHub
commit e3ad1cae55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 35 additions and 6 deletions

View File

@ -204,8 +204,8 @@ Case cases[] = {
Case("ASYNCHRONOUS_DNS", ASYNCHRONOUS_DNS),
Case("ASYNCHRONOUS_DNS_SIMULTANEOUS", ASYNCHRONOUS_DNS_SIMULTANEOUS),
Case("ASYNCHRONOUS_DNS_SIMULTANEOUS_CACHE", ASYNCHRONOUS_DNS_SIMULTANEOUS_CACHE),
Case("SYNCHRONOUS_DNS_CACHE", SYNCHRONOUS_DNS_CACHE),
#ifndef MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES
Case("SYNCHRONOUS_DNS_CACHE", SYNCHRONOUS_DNS_CACHE),
Case("ASYNCHRONOUS_DNS_CACHE", ASYNCHRONOUS_DNS_CACHE),
#endif
#if !defined MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES || MBED_CONF_CELLULAR_OFFLOAD_DNS_QUERIES > MBED_CONF_APP_DNS_TEST_HOSTS_NUM

View File

@ -86,6 +86,7 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
fill_tx_buffer_ascii(tx_buffer, BUFF_SIZE);
int packets_sent_prev = packets_sent;
bool is_oversized;
for (int retry_cnt = 0; retry_cnt <= 2; retry_cnt++) {
memset(rx_buffer, 0, BUFF_SIZE);
@ -94,8 +95,10 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
} else {
sent = sock.send(tx_buffer, pkt_s);
}
if (check_oversized_packets(sent, pkt_s)) {
is_oversized = check_oversized_packets(sent, pkt_s);
if (is_oversized) {
TEST_IGNORE_MESSAGE("This device does not handle oversized packets");
break;
} else if (sent == pkt_s) {
packets_sent++;
} else {
@ -126,6 +129,9 @@ void UDPSOCKET_ECHOTEST_impl(bool use_sendto)
}
}
if (is_oversized) {
continue;
}
if (use_sendto) {
// Verify received address is correct
TEST_ASSERT(udp_addr == recv_addr);
@ -187,6 +193,8 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
for (unsigned int s_idx = 0; s_idx < sizeof(pkt_sizes) / sizeof(*pkt_sizes); ++s_idx) {
int pkt_s = pkt_sizes[s_idx];
int packets_sent_prev = packets_sent;
bool is_oversized;
for (int retry_cnt = 0; retry_cnt <= RETRIES; retry_cnt++) {
fill_tx_buffer_ascii(tx_buffer, pkt_s);
@ -196,7 +204,11 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
sent = sock->send(tx_buffer, pkt_s);
}
if (sent == pkt_s) {
is_oversized = check_oversized_packets(sent, pkt_s);
if (is_oversized) {
TEST_IGNORE_MESSAGE("This device does not handle oversized packets");
break;
} else if (sent == pkt_s) {
packets_sent++;
} else if (sent == NSAPI_ERROR_WOULD_BLOCK) {
if (tc_exec_time.read() >= time_allotted ||
@ -237,6 +249,10 @@ void UDPSOCKET_ECHOTEST_NONBLOCK_impl(bool use_sendto)
break;
}
}
if (is_oversized) {
continue;
}
// Make sure that at least one packet of every size was sent.
TEST_ASSERT_TRUE(packets_sent > packets_sent_prev);
if (memcmp(tx_buffer, rx_buffer, pkt_s) == 0) {

View File

@ -251,7 +251,8 @@ nsapi_size_or_error_t UBLOX_AT_CellularStack::socket_recvfrom_impl(CellularSocke
timer.start();
if (socket->proto == NSAPI_UDP) {
while (success && (size > 0)) {
bool packet_received = false;
while (success && (size > 0 && !packet_received)) {
read_blk = UBLOX_MAX_PACKET_SIZE;
if (read_blk > size) {
read_blk = size;
@ -266,6 +267,8 @@ nsapi_size_or_error_t UBLOX_AT_CellularStack::socket_recvfrom_impl(CellularSocke
usorf_sz = _at.read_int();
if (usorf_sz > size) {
usorf_sz = size;
} else {
packet_received = true;
}
_at.read_bytes(&ch, 1);
_at.read_bytes((uint8_t *)buffer + count, usorf_sz);
@ -453,7 +456,7 @@ nsapi_error_t UBLOX_AT_CellularStack::get_ip_address(SocketAddress *address)
nsapi_error_t UBLOX_AT_CellularStack::gethostbyname(const char *host, SocketAddress *address, nsapi_version_t version, const char *interface_name)
{
char ipAddress[NSAPI_IP_SIZE];
nsapi_error_t err = NSAPI_ERROR_NO_CONNECTION;
nsapi_error_t err = NSAPI_ERROR_DNS_FAILURE;
_at.lock();
if (address->set_ip_address(host)) {

View File

@ -111,7 +111,7 @@ UBLOX_PPP::UBLOX_PPP(FileHandle *fh) : AT_CellularDevice(fh)
CellularDevice *CellularDevice::get_default_instance()
{
static BufferedSerial serial(MBED_CONF_UBLOX_PPP_TX, MBED_CONF_UBLOX_PPP_RX, MBED_CONF_UBLOX_PPP_BAUDRATE);
#if defined (MBED_CONF_UBLOX_AT_RTS) && defined(MBED_CONF_UBLOX_AT_CTS)
#if defined (MBED_CONF_UBLOX_PPP_RTS) && defined(MBED_CONF_UBLOX_PPP_CTS)
tr_debug("UBLOX_PPP flow control: RTS %d CTS %d", MBED_CONF_UBLOX_PPP_RTS, MBED_CONF_UBLOX_PPP_CTS);
serial.set_flow_control(SerialBase::RTSCTS, MBED_CONF_UBLOX_PPP_RTS, MBED_CONF_UBLOX_PPP_CTS);
#endif

View File

@ -26,8 +26,13 @@ using namespace mbed;
CellularDevice *CellularDevice::get_target_default_instance()
{
#if defined(TARGET_UBLOX_C030_R41XM)
#if (NSAPI_PPP_AVAILABLE)
static BufferedSerial serial(MDMTXD, MDMRXD, MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE);
static ONBOARD_UBLOX_PPP device(&serial);
#else
static BufferedSerial serial(MDMTXD, MDMRXD, MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE);
static ONBOARD_UBLOX_AT device(&serial);
#endif
#elif defined(TARGET_UBLOX_C030_N211)
static BufferedSerial serial(MDMTXD, MDMRXD, MBED_CONF_PLATFORM_DEFAULT_SERIAL_BAUD_RATE);
static ONBOARD_UBLOX_N2XX device(&serial);

View File

@ -43,6 +43,11 @@
"lwip.ppp-enabled": true,
"lwip.ethernet-enabled": false,
"cellular.debug-at": false
},
"UBLOX_C030_R412M": {
"platform.stdio-convert-newlines": true,
"platform.stdio-baud-rate": 115200,
"platform.default-serial-baud-rate": 115200
}
}
}