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 and affiliates
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");
kadonotakashi 0:8fdf9a60065b 6 * you may 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,
kadonotakashi 0:8fdf9a60065b 13 * WITHOUT 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 #include "gtest/gtest.h"
kadonotakashi 0:8fdf9a60065b 19 #include "LoRaMacChannelPlan.h"
kadonotakashi 0:8fdf9a60065b 20 #include "LoRaPHY_stub.h"
kadonotakashi 0:8fdf9a60065b 21 #include "LoRaPHY.h"
kadonotakashi 0:8fdf9a60065b 22
kadonotakashi 0:8fdf9a60065b 23 class my_LoRaPHY : public LoRaPHY
kadonotakashi 0:8fdf9a60065b 24 {
kadonotakashi 0:8fdf9a60065b 25 public:
kadonotakashi 0:8fdf9a60065b 26 my_LoRaPHY(){};
kadonotakashi 0:8fdf9a60065b 27
kadonotakashi 0:8fdf9a60065b 28 virtual ~my_LoRaPHY(){};
kadonotakashi 0:8fdf9a60065b 29 };
kadonotakashi 0:8fdf9a60065b 30
kadonotakashi 0:8fdf9a60065b 31
kadonotakashi 0:8fdf9a60065b 32 class Test_LoRaMacChannelPlan : public testing::Test {
kadonotakashi 0:8fdf9a60065b 33 protected:
kadonotakashi 0:8fdf9a60065b 34 LoRaMacChannelPlan *object;
kadonotakashi 0:8fdf9a60065b 35 my_LoRaPHY phy;
kadonotakashi 0:8fdf9a60065b 36
kadonotakashi 0:8fdf9a60065b 37 virtual void SetUp()
kadonotakashi 0:8fdf9a60065b 38 {
kadonotakashi 0:8fdf9a60065b 39 object = new LoRaMacChannelPlan();
kadonotakashi 0:8fdf9a60065b 40 object->activate_channelplan_subsystem(&phy);
kadonotakashi 0:8fdf9a60065b 41
kadonotakashi 0:8fdf9a60065b 42 LoRaPHY_stub::uint8_value = 0;
kadonotakashi 0:8fdf9a60065b 43 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 44 LoRaPHY_stub::lorawan_status_value = LORAWAN_STATUS_OK;
kadonotakashi 0:8fdf9a60065b 45 LoRaPHY_stub::uint16_value = 0;
kadonotakashi 0:8fdf9a60065b 46 memcpy(LoRaPHY_stub::bool_table, "0", 20);
kadonotakashi 0:8fdf9a60065b 47 }
kadonotakashi 0:8fdf9a60065b 48
kadonotakashi 0:8fdf9a60065b 49 virtual void TearDown()
kadonotakashi 0:8fdf9a60065b 50 {
kadonotakashi 0:8fdf9a60065b 51 delete object;
kadonotakashi 0:8fdf9a60065b 52 }
kadonotakashi 0:8fdf9a60065b 53 };
kadonotakashi 0:8fdf9a60065b 54
kadonotakashi 0:8fdf9a60065b 55 TEST_F(Test_LoRaMacChannelPlan, constructor)
kadonotakashi 0:8fdf9a60065b 56 {
kadonotakashi 0:8fdf9a60065b 57 EXPECT_TRUE(object);
kadonotakashi 0:8fdf9a60065b 58 }
kadonotakashi 0:8fdf9a60065b 59
kadonotakashi 0:8fdf9a60065b 60 TEST_F(Test_LoRaMacChannelPlan, set_plan)
kadonotakashi 0:8fdf9a60065b 61 {
kadonotakashi 0:8fdf9a60065b 62 lorawan_channelplan_t plan;
kadonotakashi 0:8fdf9a60065b 63 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 64 LoRaPHY_stub::bool_table[0] = false;
kadonotakashi 0:8fdf9a60065b 65 EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_SERVICE_UNKNOWN);
kadonotakashi 0:8fdf9a60065b 66
kadonotakashi 0:8fdf9a60065b 67 plan.nb_channels = 1;
kadonotakashi 0:8fdf9a60065b 68 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 69 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 70 LoRaPHY_stub::uint8_value = 0;
kadonotakashi 0:8fdf9a60065b 71 EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_PARAMETER_INVALID);
kadonotakashi 0:8fdf9a60065b 72
kadonotakashi 0:8fdf9a60065b 73 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 74 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 75 LoRaPHY_stub::uint8_value = 10;
kadonotakashi 0:8fdf9a60065b 76 LoRaPHY_stub::lorawan_status_value = LORAWAN_STATUS_PARAMETER_INVALID;
kadonotakashi 0:8fdf9a60065b 77 EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_PARAMETER_INVALID);
kadonotakashi 0:8fdf9a60065b 78
kadonotakashi 0:8fdf9a60065b 79 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 80 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 81 plan.nb_channels = 2;
kadonotakashi 0:8fdf9a60065b 82 LoRaPHY_stub::lorawan_status_value = LORAWAN_STATUS_OK;
kadonotakashi 0:8fdf9a60065b 83 EXPECT_TRUE(object->set_plan(plan) == LORAWAN_STATUS_OK);
kadonotakashi 0:8fdf9a60065b 84 }
kadonotakashi 0:8fdf9a60065b 85
kadonotakashi 0:8fdf9a60065b 86 TEST_F(Test_LoRaMacChannelPlan, get_plan)
kadonotakashi 0:8fdf9a60065b 87 {
kadonotakashi 0:8fdf9a60065b 88 lorawan_channelplan_t plan;
kadonotakashi 0:8fdf9a60065b 89 channel_params_t params;
kadonotakashi 0:8fdf9a60065b 90 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 91 LoRaPHY_stub::bool_table[0] = false;
kadonotakashi 0:8fdf9a60065b 92 EXPECT_TRUE(object->get_plan(plan, &params) == LORAWAN_STATUS_SERVICE_UNKNOWN);
kadonotakashi 0:8fdf9a60065b 93
kadonotakashi 0:8fdf9a60065b 94 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 95 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 96 LoRaPHY_stub::bool_table[1] = false;
kadonotakashi 0:8fdf9a60065b 97
kadonotakashi 0:8fdf9a60065b 98 LoRaPHY_stub::uint8_value = 1;
kadonotakashi 0:8fdf9a60065b 99 LoRaPHY_stub::uint16_value = 0xABCD;
kadonotakashi 0:8fdf9a60065b 100 EXPECT_TRUE(object->get_plan(plan, &params) == LORAWAN_STATUS_OK);
kadonotakashi 0:8fdf9a60065b 101
kadonotakashi 0:8fdf9a60065b 102 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 103 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 104 LoRaPHY_stub::bool_table[1] = true;
kadonotakashi 0:8fdf9a60065b 105 LoRaPHY_stub::bool_table[2] = false;
kadonotakashi 0:8fdf9a60065b 106 loramac_channel_t ch;
kadonotakashi 0:8fdf9a60065b 107 plan.channels = &ch;
kadonotakashi 0:8fdf9a60065b 108 EXPECT_TRUE(object->get_plan(plan, &params) == LORAWAN_STATUS_OK);
kadonotakashi 0:8fdf9a60065b 109 }
kadonotakashi 0:8fdf9a60065b 110
kadonotakashi 0:8fdf9a60065b 111 TEST_F(Test_LoRaMacChannelPlan, remove_plan)
kadonotakashi 0:8fdf9a60065b 112 {
kadonotakashi 0:8fdf9a60065b 113 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 114 LoRaPHY_stub::bool_table[0] = false;
kadonotakashi 0:8fdf9a60065b 115 EXPECT_TRUE(object->remove_plan() == LORAWAN_STATUS_SERVICE_UNKNOWN);
kadonotakashi 0:8fdf9a60065b 116
kadonotakashi 0:8fdf9a60065b 117 LoRaPHY_stub::uint8_value = 4;
kadonotakashi 0:8fdf9a60065b 118 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 119 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 120 LoRaPHY_stub::bool_table[1] = true; //first continue
kadonotakashi 0:8fdf9a60065b 121 LoRaPHY_stub::bool_table[2] = false;
kadonotakashi 0:8fdf9a60065b 122 LoRaPHY_stub::bool_table[3] = false;//second continue
kadonotakashi 0:8fdf9a60065b 123 LoRaPHY_stub::bool_table[4] = false;
kadonotakashi 0:8fdf9a60065b 124 LoRaPHY_stub::bool_table[5] = true;
kadonotakashi 0:8fdf9a60065b 125 LoRaPHY_stub::bool_table[6] = false;//false for remove_single_channel(i)
kadonotakashi 0:8fdf9a60065b 126
kadonotakashi 0:8fdf9a60065b 127 EXPECT_TRUE(object->remove_plan() == LORAWAN_STATUS_SERVICE_UNKNOWN);
kadonotakashi 0:8fdf9a60065b 128
kadonotakashi 0:8fdf9a60065b 129 LoRaPHY_stub::uint8_value = 3;
kadonotakashi 0:8fdf9a60065b 130 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 131 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 132 LoRaPHY_stub::bool_table[1] = false;
kadonotakashi 0:8fdf9a60065b 133 LoRaPHY_stub::bool_table[2] = true;
kadonotakashi 0:8fdf9a60065b 134 LoRaPHY_stub::bool_table[3] = true;
kadonotakashi 0:8fdf9a60065b 135 LoRaPHY_stub::bool_table[4] = true;
kadonotakashi 0:8fdf9a60065b 136 LoRaPHY_stub::bool_table[5] = true;
kadonotakashi 0:8fdf9a60065b 137 LoRaPHY_stub::bool_table[7] = true;
kadonotakashi 0:8fdf9a60065b 138 LoRaPHY_stub::bool_table[8] = true;
kadonotakashi 0:8fdf9a60065b 139 LoRaPHY_stub::bool_table[9] = true;
kadonotakashi 0:8fdf9a60065b 140 LoRaPHY_stub::bool_table[10] = true;
kadonotakashi 0:8fdf9a60065b 141
kadonotakashi 0:8fdf9a60065b 142 EXPECT_TRUE(object->remove_plan() == LORAWAN_STATUS_OK);
kadonotakashi 0:8fdf9a60065b 143
kadonotakashi 0:8fdf9a60065b 144 }
kadonotakashi 0:8fdf9a60065b 145
kadonotakashi 0:8fdf9a60065b 146 TEST_F(Test_LoRaMacChannelPlan, remove_single_channel)
kadonotakashi 0:8fdf9a60065b 147 {
kadonotakashi 0:8fdf9a60065b 148 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 149 LoRaPHY_stub::bool_table[0] = false;
kadonotakashi 0:8fdf9a60065b 150 EXPECT_TRUE(object->remove_single_channel(4) == LORAWAN_STATUS_SERVICE_UNKNOWN);
kadonotakashi 0:8fdf9a60065b 151
kadonotakashi 0:8fdf9a60065b 152 LoRaPHY_stub::uint8_value = 2;
kadonotakashi 0:8fdf9a60065b 153 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 154 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 155
kadonotakashi 0:8fdf9a60065b 156 EXPECT_TRUE(object->remove_single_channel(4) == LORAWAN_STATUS_PARAMETER_INVALID);
kadonotakashi 0:8fdf9a60065b 157
kadonotakashi 0:8fdf9a60065b 158 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 159 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 160 LoRaPHY_stub::bool_table[1] = false;
kadonotakashi 0:8fdf9a60065b 161 EXPECT_TRUE(object->remove_single_channel(1) == LORAWAN_STATUS_PARAMETER_INVALID);
kadonotakashi 0:8fdf9a60065b 162
kadonotakashi 0:8fdf9a60065b 163 LoRaPHY_stub::bool_counter = 0;
kadonotakashi 0:8fdf9a60065b 164 LoRaPHY_stub::bool_table[0] = true;
kadonotakashi 0:8fdf9a60065b 165 LoRaPHY_stub::bool_table[1] = true;
kadonotakashi 0:8fdf9a60065b 166 EXPECT_TRUE(object->remove_single_channel(1) == LORAWAN_STATUS_OK);
kadonotakashi 0:8fdf9a60065b 167 }
kadonotakashi 0:8fdf9a60065b 168