Color Oled(SSD1331) connect to STMicroelectronics Nucleo-F466

Dependencies:   ssd1331

Committer:
kadonotakashi
Date:
Thu Oct 11 02:27:46 2018 +0000
Revision:
3:f3764f852aa8
Parent:
0:8fdf9a60065b
Nucreo 446 + SSD1331 test version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kadonotakashi 0:8fdf9a60065b 1 /*
kadonotakashi 0:8fdf9a60065b 2 * Copyright (c) 2018, ARM Limited, All Rights Reserved
kadonotakashi 0:8fdf9a60065b 3 * SPDX-License-Identifier: Apache-2.0
kadonotakashi 0:8fdf9a60065b 4 *
kadonotakashi 0:8fdf9a60065b 5 * Licensed under the Apache License, Version 2.0 (the "License"); you may
kadonotakashi 0:8fdf9a60065b 6 * not use this file except in compliance with the License.
kadonotakashi 0:8fdf9a60065b 7 * You may obtain a copy of the License at
kadonotakashi 0:8fdf9a60065b 8 *
kadonotakashi 0:8fdf9a60065b 9 * http://www.apache.org/licenses/LICENSE-2.0
kadonotakashi 0:8fdf9a60065b 10 *
kadonotakashi 0:8fdf9a60065b 11 * Unless required by applicable law or agreed to in writing, software
kadonotakashi 0:8fdf9a60065b 12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
kadonotakashi 0:8fdf9a60065b 13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kadonotakashi 0:8fdf9a60065b 14 * See the License for the specific language governing permissions and
kadonotakashi 0:8fdf9a60065b 15 * limitations under the License.
kadonotakashi 0:8fdf9a60065b 16 */
kadonotakashi 0:8fdf9a60065b 17
kadonotakashi 0:8fdf9a60065b 18 #define WIFI 2
kadonotakashi 0:8fdf9a60065b 19 #if !defined(MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE) || \
kadonotakashi 0:8fdf9a60065b 20 (MBED_CONF_TARGET_NETWORK_DEFAULT_INTERFACE_TYPE == WIFI && !defined(MBED_CONF_NSAPI_DEFAULT_WIFI_SSID))
kadonotakashi 0:8fdf9a60065b 21 #error [NOT_SUPPORTED] No network configuration found for this target.
kadonotakashi 0:8fdf9a60065b 22 #endif
kadonotakashi 0:8fdf9a60065b 23 #ifndef MBED_CONF_APP_ECHO_SERVER_ADDR
kadonotakashi 0:8fdf9a60065b 24 #error [NOT_SUPPORTED] Requires parameters from mbed_app.json
kadonotakashi 0:8fdf9a60065b 25 #endif
kadonotakashi 0:8fdf9a60065b 26
kadonotakashi 0:8fdf9a60065b 27 #include "mbed.h"
kadonotakashi 0:8fdf9a60065b 28 #include "greentea-client/test_env.h"
kadonotakashi 0:8fdf9a60065b 29 #include "unity/unity.h"
kadonotakashi 0:8fdf9a60065b 30 #include "utest.h"
kadonotakashi 0:8fdf9a60065b 31 #include "utest/utest_stack_trace.h"
kadonotakashi 0:8fdf9a60065b 32 #include "udp_tests.h"
kadonotakashi 0:8fdf9a60065b 33
kadonotakashi 0:8fdf9a60065b 34 using namespace utest::v1;
kadonotakashi 0:8fdf9a60065b 35
kadonotakashi 0:8fdf9a60065b 36 namespace {
kadonotakashi 0:8fdf9a60065b 37 NetworkInterface *net;
kadonotakashi 0:8fdf9a60065b 38 }
kadonotakashi 0:8fdf9a60065b 39
kadonotakashi 0:8fdf9a60065b 40 NetworkInterface *get_interface()
kadonotakashi 0:8fdf9a60065b 41 {
kadonotakashi 0:8fdf9a60065b 42 return net;
kadonotakashi 0:8fdf9a60065b 43 }
kadonotakashi 0:8fdf9a60065b 44
kadonotakashi 0:8fdf9a60065b 45 static void _ifup()
kadonotakashi 0:8fdf9a60065b 46 {
kadonotakashi 0:8fdf9a60065b 47 net = NetworkInterface::get_default_instance();
kadonotakashi 0:8fdf9a60065b 48 nsapi_error_t err = net->connect();
kadonotakashi 0:8fdf9a60065b 49 TEST_ASSERT_EQUAL(NSAPI_ERROR_OK, err);
kadonotakashi 0:8fdf9a60065b 50 printf("MBED: UDPClient IP address is '%s'\n", net->get_ip_address());
kadonotakashi 0:8fdf9a60065b 51 }
kadonotakashi 0:8fdf9a60065b 52
kadonotakashi 0:8fdf9a60065b 53 static void _ifdown()
kadonotakashi 0:8fdf9a60065b 54 {
kadonotakashi 0:8fdf9a60065b 55 net->disconnect();
kadonotakashi 0:8fdf9a60065b 56 printf("MBED: ifdown\n");
kadonotakashi 0:8fdf9a60065b 57 }
kadonotakashi 0:8fdf9a60065b 58
kadonotakashi 0:8fdf9a60065b 59 void drop_bad_packets(UDPSocket &sock, int orig_timeout)
kadonotakashi 0:8fdf9a60065b 60 {
kadonotakashi 0:8fdf9a60065b 61 nsapi_error_t err;
kadonotakashi 0:8fdf9a60065b 62 sock.set_timeout(0);
kadonotakashi 0:8fdf9a60065b 63 while (true) {
kadonotakashi 0:8fdf9a60065b 64 err = sock.recvfrom(NULL, 0, 0);
kadonotakashi 0:8fdf9a60065b 65 if (err == NSAPI_ERROR_WOULD_BLOCK) {
kadonotakashi 0:8fdf9a60065b 66 break;
kadonotakashi 0:8fdf9a60065b 67 }
kadonotakashi 0:8fdf9a60065b 68 }
kadonotakashi 0:8fdf9a60065b 69 sock.set_timeout(orig_timeout);
kadonotakashi 0:8fdf9a60065b 70 }
kadonotakashi 0:8fdf9a60065b 71
kadonotakashi 0:8fdf9a60065b 72 void fill_tx_buffer_ascii(char *buff, size_t len)
kadonotakashi 0:8fdf9a60065b 73 {
kadonotakashi 0:8fdf9a60065b 74 for (size_t i = 0; i < len; ++i) {
kadonotakashi 0:8fdf9a60065b 75 buff[i] = (rand() % 43) + '0';
kadonotakashi 0:8fdf9a60065b 76 }
kadonotakashi 0:8fdf9a60065b 77 }
kadonotakashi 0:8fdf9a60065b 78
kadonotakashi 0:8fdf9a60065b 79 // Test setup
kadonotakashi 0:8fdf9a60065b 80 utest::v1::status_t greentea_setup(const size_t number_of_cases)
kadonotakashi 0:8fdf9a60065b 81 {
kadonotakashi 0:8fdf9a60065b 82 GREENTEA_SETUP(480, "default_auto");
kadonotakashi 0:8fdf9a60065b 83 _ifup();
kadonotakashi 0:8fdf9a60065b 84 return greentea_test_setup_handler(number_of_cases);
kadonotakashi 0:8fdf9a60065b 85 }
kadonotakashi 0:8fdf9a60065b 86
kadonotakashi 0:8fdf9a60065b 87 void greentea_teardown(const size_t passed, const size_t failed, const failure_t failure)
kadonotakashi 0:8fdf9a60065b 88 {
kadonotakashi 0:8fdf9a60065b 89 _ifdown();
kadonotakashi 0:8fdf9a60065b 90 return greentea_test_teardown_handler(passed, failed, failure);
kadonotakashi 0:8fdf9a60065b 91 }
kadonotakashi 0:8fdf9a60065b 92
kadonotakashi 0:8fdf9a60065b 93 Case cases[] = {
kadonotakashi 0:8fdf9a60065b 94 Case("UDPSOCKET_ECHOTEST_NONBLOCK", UDPSOCKET_ECHOTEST_NONBLOCK),
kadonotakashi 0:8fdf9a60065b 95 Case("UDPSOCKET_OPEN_CLOSE_REPEAT", UDPSOCKET_OPEN_CLOSE_REPEAT),
kadonotakashi 0:8fdf9a60065b 96 Case("UDPSOCKET_OPEN_LIMIT", UDPSOCKET_OPEN_LIMIT),
kadonotakashi 0:8fdf9a60065b 97 Case("UDPSOCKET_SENDTO_TIMEOUT", UDPSOCKET_SENDTO_TIMEOUT),
kadonotakashi 0:8fdf9a60065b 98 #ifdef MBED_EXTENDED_TESTS
kadonotakashi 0:8fdf9a60065b 99 Case("UDPSOCKET_SENDTO_INVALID", UDPSOCKET_SENDTO_INVALID),
kadonotakashi 0:8fdf9a60065b 100 Case("UDPSOCKET_ECHOTEST", UDPSOCKET_ECHOTEST),
kadonotakashi 0:8fdf9a60065b 101 Case("UDPSOCKET_ECHOTEST_BURST", UDPSOCKET_ECHOTEST_BURST),
kadonotakashi 0:8fdf9a60065b 102 Case("UDPSOCKET_ECHOTEST_BURST_NONBLOCK", UDPSOCKET_ECHOTEST_BURST_NONBLOCK),
kadonotakashi 0:8fdf9a60065b 103 Case("UDPSOCKET_SENDTO_REPEAT", UDPSOCKET_SENDTO_REPEAT),
kadonotakashi 0:8fdf9a60065b 104 #endif
kadonotakashi 0:8fdf9a60065b 105 };
kadonotakashi 0:8fdf9a60065b 106
kadonotakashi 0:8fdf9a60065b 107 Specification specification(greentea_setup, cases, greentea_teardown);
kadonotakashi 0:8fdf9a60065b 108
kadonotakashi 0:8fdf9a60065b 109 int main()
kadonotakashi 0:8fdf9a60065b 110 {
kadonotakashi 0:8fdf9a60065b 111 return !Harness::run(specification);
kadonotakashi 0:8fdf9a60065b 112 }