unit testing
This commit is contained in:
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -44,5 +44,6 @@
|
|||||||
"streambuf": "cpp",
|
"streambuf": "cpp",
|
||||||
"cinttypes": "cpp",
|
"cinttypes": "cpp",
|
||||||
"typeinfo": "cpp"
|
"typeinfo": "cpp"
|
||||||
}
|
},
|
||||||
|
"cmake.configureOnOpen": true
|
||||||
}
|
}
|
||||||
BIN
img/WhatsApp Image 2021-01-13 at 19.46.24.jpeg
Normal file
BIN
img/WhatsApp Image 2021-01-13 at 19.46.24.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 106 KiB |
100
lib/JC_Button/src/JC_Button.cpp
Normal file
100
lib/JC_Button/src/JC_Button.cpp
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
// Arduino Button Library
|
||||||
|
// https://github.com/JChristensen/JC_Button
|
||||||
|
// Copyright (C) 2018 by Jack Christensen and licensed under
|
||||||
|
// GNU GPL v3.0, https://www.gnu.org/licenses/gpl.html
|
||||||
|
|
||||||
|
#include "JC_Button.h"
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------*
|
||||||
|
/ initialize a Button object and the pin it's connected to. *
|
||||||
|
/-----------------------------------------------------------------------*/
|
||||||
|
void Button::begin()
|
||||||
|
{
|
||||||
|
pinMode(m_pin, m_puEnable ? INPUT_PULLUP : INPUT);
|
||||||
|
m_state = digitalRead(m_pin);
|
||||||
|
if (m_invert) m_state = !m_state;
|
||||||
|
m_time = millis();
|
||||||
|
m_lastState = m_state;
|
||||||
|
m_changed = false;
|
||||||
|
m_lastChange = m_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------*
|
||||||
|
/ returns the state of the button, true if pressed, false if released. *
|
||||||
|
/ does debouncing, captures and maintains times, previous state, etc. *
|
||||||
|
/-----------------------------------------------------------------------*/
|
||||||
|
bool Button::read()
|
||||||
|
{
|
||||||
|
uint32_t ms = millis();
|
||||||
|
bool pinVal = digitalRead(m_pin);
|
||||||
|
if (m_invert) pinVal = !pinVal;
|
||||||
|
if (ms - m_lastChange < m_dbTime)
|
||||||
|
{
|
||||||
|
m_changed = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_lastState = m_state;
|
||||||
|
m_state = pinVal;
|
||||||
|
m_changed = (m_state != m_lastState);
|
||||||
|
if (m_changed) m_lastChange = ms;
|
||||||
|
}
|
||||||
|
m_time = ms;
|
||||||
|
return m_state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------*
|
||||||
|
* isPressed() and isReleased() check the button state when it was last *
|
||||||
|
* read, and return false (0) or true (!=0) accordingly. *
|
||||||
|
* These functions do not cause the button to be read. *
|
||||||
|
*----------------------------------------------------------------------*/
|
||||||
|
bool Button::isPressed()
|
||||||
|
{
|
||||||
|
return m_state;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Button::isReleased()
|
||||||
|
{
|
||||||
|
return !m_state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------*
|
||||||
|
* wasPressed() and wasReleased() check the button state to see if it *
|
||||||
|
* changed between the last two reads and return false (0) or *
|
||||||
|
* true (!=0) accordingly. *
|
||||||
|
* These functions do not cause the button to be read. *
|
||||||
|
*----------------------------------------------------------------------*/
|
||||||
|
bool Button::wasPressed()
|
||||||
|
{
|
||||||
|
return m_state && m_changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Button::wasReleased()
|
||||||
|
{
|
||||||
|
return !m_state && m_changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------*
|
||||||
|
* pressedFor(ms) and releasedFor(ms) check to see if the button is *
|
||||||
|
* pressed (or released), and has been in that state for the specified *
|
||||||
|
* time in milliseconds. Returns false (0) or true (!=0) accordingly. *
|
||||||
|
* These functions do not cause the button to be read. *
|
||||||
|
*----------------------------------------------------------------------*/
|
||||||
|
bool Button::pressedFor(uint32_t ms)
|
||||||
|
{
|
||||||
|
return m_state && m_time - m_lastChange >= ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Button::releasedFor(uint32_t ms)
|
||||||
|
{
|
||||||
|
return !m_state && m_time - m_lastChange >= ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------*
|
||||||
|
* lastChange() returns the time the button last changed state, *
|
||||||
|
* in milliseconds. *
|
||||||
|
*----------------------------------------------------------------------*/
|
||||||
|
uint32_t Button::lastChange()
|
||||||
|
{
|
||||||
|
return m_lastChange;
|
||||||
|
}
|
||||||
111
lib/JC_Button/src/JC_Button.h
Normal file
111
lib/JC_Button/src/JC_Button.h
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
// Arduino Button Library
|
||||||
|
// https://github.com/JChristensen/JC_Button
|
||||||
|
// Copyright (C) 2018 by Jack Christensen and licensed under
|
||||||
|
// GNU GPL v3.0, https://www.gnu.org/licenses/gpl.html
|
||||||
|
|
||||||
|
#ifndef JC_BUTTON_H_INCLUDED
|
||||||
|
#define JC_BUTTON_H_INCLUDED
|
||||||
|
|
||||||
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
class Button
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Button(pin, dbTime, puEnable, invert) instantiates a button object.
|
||||||
|
//
|
||||||
|
// Required parameter:
|
||||||
|
// pin The Arduino pin the button is connected to
|
||||||
|
//
|
||||||
|
// Optional parameters:
|
||||||
|
// dbTime Debounce time in milliseconds (default 25ms)
|
||||||
|
// puEnable true to enable the AVR internal pullup resistor (default true)
|
||||||
|
// invert true to interpret a low logic level as pressed (default true)
|
||||||
|
Button(uint8_t pin, uint32_t dbTime=25, uint8_t puEnable=true, uint8_t invert=true)
|
||||||
|
: m_pin(pin), m_dbTime(dbTime), m_puEnable(puEnable), m_invert(invert) {}
|
||||||
|
|
||||||
|
// Initialize a Button object and the pin it's connected to
|
||||||
|
void begin();
|
||||||
|
|
||||||
|
// Returns the current debounced button state, true for pressed,
|
||||||
|
// false for released. Call this function frequently to ensure
|
||||||
|
// the sketch is responsive to user input.
|
||||||
|
bool read();
|
||||||
|
|
||||||
|
// Returns true if the button state was pressed at the last call to read().
|
||||||
|
// Does not cause the button to be read.
|
||||||
|
bool isPressed();
|
||||||
|
|
||||||
|
// Returns true if the button state was released at the last call to read().
|
||||||
|
// Does not cause the button to be read.
|
||||||
|
bool isReleased();
|
||||||
|
|
||||||
|
// Returns true if the button state at the last call to read() was pressed,
|
||||||
|
// and this was a change since the previous read.
|
||||||
|
bool wasPressed();
|
||||||
|
|
||||||
|
// Returns true if the button state at the last call to read() was released,
|
||||||
|
// and this was a change since the previous read.
|
||||||
|
bool wasReleased();
|
||||||
|
|
||||||
|
// Returns true if the button state at the last call to read() was pressed,
|
||||||
|
// and has been in that state for at least the given number of milliseconds.
|
||||||
|
bool pressedFor(uint32_t ms);
|
||||||
|
|
||||||
|
// Returns true if the button state at the last call to read() was released,
|
||||||
|
// and has been in that state for at least the given number of milliseconds.
|
||||||
|
bool releasedFor(uint32_t ms);
|
||||||
|
|
||||||
|
// Returns the time in milliseconds (from millis) that the button last
|
||||||
|
// changed state.
|
||||||
|
uint32_t lastChange();
|
||||||
|
|
||||||
|
private:
|
||||||
|
uint8_t m_pin; // arduino pin number connected to button
|
||||||
|
uint32_t m_dbTime; // debounce time (ms)
|
||||||
|
bool m_puEnable; // internal pullup resistor enabled
|
||||||
|
bool m_invert; // if true, interpret logic low as pressed, else interpret logic high as pressed
|
||||||
|
bool m_state; // current button state, true=pressed
|
||||||
|
bool m_lastState; // previous button state
|
||||||
|
bool m_changed; // state changed since last read
|
||||||
|
uint32_t m_time; // time of current state (ms from millis)
|
||||||
|
uint32_t m_lastChange; // time of last state change (ms)
|
||||||
|
};
|
||||||
|
|
||||||
|
// a derived class for a "push-on, push-off" (toggle) type button.
|
||||||
|
// initial state can be given, default is off (false).
|
||||||
|
class ToggleButton : public Button
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
// constructor is similar to Button, but includes the initial state for the toggle.
|
||||||
|
ToggleButton(uint8_t pin, bool initialState=false, uint32_t dbTime=25, uint8_t puEnable=true, uint8_t invert=true)
|
||||||
|
: Button(pin, dbTime, puEnable, invert), m_toggleState(initialState) {}
|
||||||
|
|
||||||
|
// read the button and return its state.
|
||||||
|
// should be called frequently.
|
||||||
|
bool read()
|
||||||
|
{
|
||||||
|
Button::read();
|
||||||
|
if (wasPressed())
|
||||||
|
{
|
||||||
|
m_toggleState = !m_toggleState;
|
||||||
|
m_changed = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_changed = false;
|
||||||
|
}
|
||||||
|
return m_toggleState;
|
||||||
|
}
|
||||||
|
|
||||||
|
// has the state changed?
|
||||||
|
bool changed() {return m_changed;}
|
||||||
|
|
||||||
|
// return the current state
|
||||||
|
bool toggleState() {return m_toggleState;}
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_toggleState;
|
||||||
|
bool m_changed;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
@@ -15,5 +15,11 @@ framework = arduino
|
|||||||
upload_port = stlink
|
upload_port = stlink
|
||||||
debug_tool = stlink
|
debug_tool = stlink
|
||||||
lib_deps =
|
lib_deps =
|
||||||
http://192.168.2.3/Bonobo.Git.Server/JCButton.git
|
# http://192.168.2.3/Bonobo.Git.Server/JCButton.git
|
||||||
|
|
||||||
|
[env:native]
|
||||||
|
platform = native
|
||||||
|
build_flags = -std=gnu++11
|
||||||
|
lib_deps =
|
||||||
|
ArduinoFake
|
||||||
|
|
||||||
|
|||||||
62
src/board.h
62
src/board.h
@@ -1,27 +1,55 @@
|
|||||||
#ifndef BOARDH
|
#ifndef BOARDH
|
||||||
#define BOARDH
|
#define BOARDH
|
||||||
|
|
||||||
#define LED1 PB0 //D3
|
#ifndef UNIT_TEST
|
||||||
#define LED2 PB7 //D4
|
|
||||||
#define LED3 PB6 //D5
|
|
||||||
|
|
||||||
#define DETECT1 PA6 //A5
|
#define LED1 PB0 //D3
|
||||||
#define DETECT2 PA5 //A4
|
#define LED2 PB7 //D4
|
||||||
#define DETECT3 PA4 //A3
|
#define LED3 PB6 //D5
|
||||||
|
|
||||||
#define SWITCH1 PA7 //A6 TOGGLE1
|
#define DETECT1 PA6 //A5
|
||||||
#define SWITCH12 PA2 //A7 MOMENTARY1
|
#define DETECT2 PA5 //A4
|
||||||
#define SWITCH2 PA1 //A1 TOGGLE1
|
#define DETECT3 PA4 //A3
|
||||||
#define SWITCH22 PA3 //A2 MOMENTARY1
|
|
||||||
#define SWITCH3 PB5 //D11 TOGGLE1
|
|
||||||
#define SWITCH32 PB4 //D12 MOMENTARY1
|
|
||||||
|
|
||||||
#define LD3LED PB3
|
#define SWITCH1 PA7 //A6 TOGGLE1
|
||||||
#define WAKEUPPIN PA2
|
#define SWITCH12 PA2 //A7 MOMENTARY1
|
||||||
|
#define SWITCH2 PA1 //A1 TOGGLE1
|
||||||
|
#define SWITCH22 PA3 //A2 MOMENTARY1
|
||||||
|
#define SWITCH3 PB5 //D11 TOGGLE1
|
||||||
|
#define SWITCH32 PB4 //D12 MOMENTARY1
|
||||||
|
|
||||||
#define REDLEDRES
|
#define LD3LED PB3
|
||||||
#define YELLOWLEDRES
|
#define WAKEUPPIN PA2
|
||||||
#define GREENLEDRES
|
|
||||||
|
#define REDLEDRES
|
||||||
|
#define YELLOWLEDRES
|
||||||
|
#define GREENLEDRES
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define LED1 0 //D3
|
||||||
|
#define LED2 1 //D4
|
||||||
|
#define LED3 2 //D5
|
||||||
|
|
||||||
|
#define DETECT1 3 //A5
|
||||||
|
#define DETECT2 4 //A4
|
||||||
|
#define DETECT3 5 //A3
|
||||||
|
|
||||||
|
#define SWITCH1 6 //A6 TOGGLE1
|
||||||
|
#define SWITCH12 7 //A7 MOMENTARY1
|
||||||
|
#define SWITCH2 8 //A1 TOGGLE1
|
||||||
|
#define SWITCH22 9 //A2 MOMENTARY1
|
||||||
|
#define SWITCH3 10 //D11 TOGGLE1
|
||||||
|
#define SWITCH32 11 //D12 MOMENTARY1
|
||||||
|
|
||||||
|
#define LD3LED 12
|
||||||
|
#define WAKEUPPIN 13
|
||||||
|
|
||||||
|
#define REDLEDRES
|
||||||
|
#define YELLOWLEDRES
|
||||||
|
#define GREENLEDRES
|
||||||
|
|
||||||
|
#endif //unit_test
|
||||||
|
|
||||||
|
|
||||||
#endif //BOARDH
|
#endif //BOARDH
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "buttons.h"
|
#include "buttons.h"
|
||||||
#include "board.h"
|
|
||||||
#include <vector>
|
|
||||||
#include "Arduino.h"
|
|
||||||
#include "JC_Button.h"
|
|
||||||
|
|
||||||
std::vector<c_button *> buttonlist;
|
std::vector<c_button *> buttonlist;
|
||||||
|
|
||||||
@@ -113,4 +111,4 @@ c_button *getButton(e_ledcolor color)
|
|||||||
std::vector<c_button *> *getButtonlist(void)
|
std::vector<c_button *> *getButtonlist(void)
|
||||||
{
|
{
|
||||||
return &buttonlist;
|
return &buttonlist;
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
#ifndef BUTTONSH
|
#ifndef BUTTONSH
|
||||||
#define BUTTONSH
|
#define BUTTONSH
|
||||||
|
|
||||||
#include <Arduino.h>
|
#include "Arduino.h"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "JC_Button.h"
|
#ifndef UNIT_TEST
|
||||||
|
#include "JC_Button.h"
|
||||||
|
#endif
|
||||||
|
#include "board.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
|
||||||
class c_button : public ToggleButton
|
class c_button : public ToggleButton
|
||||||
|
|||||||
@@ -1,30 +1,21 @@
|
|||||||
#include "chainGame.h"
|
#ifndef UNIT_TEST
|
||||||
#include "Arduino.h"
|
#ifdef ARDUINO
|
||||||
#include "buttons.h"
|
|
||||||
|
|
||||||
|
#include "chainGame.h"
|
||||||
|
|
||||||
uint8_t patternIndex = 0;
|
uint8_t patternIndex = 0;
|
||||||
bool patternFlag = false;
|
bool patternFlag = false;
|
||||||
bool firstpattern = false;
|
//bool firstpattern = false;
|
||||||
//e_ledcolor cheatbutton = NONE;
|
|
||||||
uint16_t cheatbutton = 0;
|
uint16_t cheatbutton = 0;
|
||||||
bool cheatButtonFlag = false;
|
bool cheatButtonFlag = false;
|
||||||
|
|
||||||
|
|
||||||
// e_ledcolor ledpattern[4] =
|
|
||||||
// {
|
|
||||||
// YELLOW,
|
|
||||||
// GREEN,
|
|
||||||
// YELLOW,
|
|
||||||
// RED};
|
|
||||||
|
|
||||||
uint16_t ledpattern[4] =
|
uint16_t ledpattern[4] =
|
||||||
{
|
{
|
||||||
1,
|
1,
|
||||||
3,
|
3,
|
||||||
1,
|
1,
|
||||||
2
|
2};
|
||||||
};
|
|
||||||
|
|
||||||
int patternlength = sizeof(ledpattern) / sizeof(ledpattern[0]);
|
int patternlength = sizeof(ledpattern) / sizeof(ledpattern[0]);
|
||||||
|
|
||||||
@@ -44,36 +35,44 @@ void ResetChainGame(void)
|
|||||||
{
|
{
|
||||||
patternIndex = 0;
|
patternIndex = 0;
|
||||||
patternFlag = false;
|
patternFlag = false;
|
||||||
firstpattern = false;
|
//firstpattern = false;
|
||||||
cheatbutton = 0;
|
cheatbutton = 0;
|
||||||
cheatButtonFlag = false;
|
cheatButtonFlag = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleChainGame(void)
|
void HandleChainGame(void)
|
||||||
{
|
{
|
||||||
if (buttonIsPressed(ledpattern[patternIndex]) && !patternFlag && !cheatButtonFlag)
|
if (!patternFlag && !cheatButtonFlag)
|
||||||
{
|
{
|
||||||
turnOnLed(ledpattern[patternIndex]);
|
if (buttonIsPressed(ledpattern[patternIndex]))
|
||||||
patternFlag = true;
|
{
|
||||||
cheatbutton = 0;
|
//pattern button pressed, turn on LED, set flag
|
||||||
}
|
turnOnLed(ledpattern[patternIndex]);
|
||||||
else if (buttonIsPressed(cheatbutton) && !patternFlag && !cheatButtonFlag)
|
patternFlag = true;
|
||||||
{
|
cheatbutton = 0;
|
||||||
turnOnLed(cheatbutton);
|
}
|
||||||
cheatButtonFlag = true;
|
else if (buttonIsPressed(cheatbutton))
|
||||||
}
|
{
|
||||||
else if (anybutton() && !patternFlag && !cheatButtonFlag )
|
// cheatbutton pressed, turn on cheat led, set flag
|
||||||
{
|
turnOnLed(cheatbutton);
|
||||||
cheatbutton = 0;
|
cheatButtonFlag = true;
|
||||||
|
}
|
||||||
|
else if (anybutton())
|
||||||
|
{
|
||||||
|
// if any other button is pressed, clear cheat button
|
||||||
|
cheatbutton = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!buttonIsPressed(ledpattern[patternIndex]))
|
if (!buttonIsPressed(ledpattern[patternIndex]))
|
||||||
{
|
{
|
||||||
|
// pattern switch is open, turn off pattern LED
|
||||||
turnOffLed(ledpattern[patternIndex]);
|
turnOffLed(ledpattern[patternIndex]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!buttonIsPressed(cheatbutton) && cheatButtonFlag)
|
if (!buttonIsPressed(cheatbutton) && cheatButtonFlag)
|
||||||
{
|
{
|
||||||
|
// cheat switch is open, turn of cheat LED
|
||||||
turnOffLed(cheatbutton);
|
turnOffLed(cheatbutton);
|
||||||
cheatButtonFlag = false;
|
cheatButtonFlag = false;
|
||||||
cheatbutton = 0;
|
cheatbutton = 0;
|
||||||
@@ -81,25 +80,33 @@ void HandleChainGame(void)
|
|||||||
|
|
||||||
if (!anybutton())
|
if (!anybutton())
|
||||||
{
|
{
|
||||||
|
//all switches are open, turn off all LEDs
|
||||||
turnOffAllLed();
|
turnOffAllLed();
|
||||||
if (patternFlag)
|
if (patternFlag)
|
||||||
{
|
{
|
||||||
|
// pattern LED was triggerd, reset flag, move to next pattern
|
||||||
patternFlag = false;
|
patternFlag = false;
|
||||||
nextPattern();
|
nextPattern();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//check cheatbuttons
|
//check cheatbuttons
|
||||||
if (buttonIsPressed(4) && (cheatbutton == 0))
|
if (buttonIsPressed(4) && (cheatbutton == 0))
|
||||||
{
|
{
|
||||||
|
// cheatbutton 4 (momentary 1) was closed, set cheatbutton to 1
|
||||||
cheatbutton = 1;
|
cheatbutton = 1;
|
||||||
}
|
}
|
||||||
else if (buttonIsPressed(5) && (cheatbutton == 0))
|
else if (buttonIsPressed(5) && (cheatbutton == 0))
|
||||||
{
|
{
|
||||||
|
// cheatbutton 5 (momentary 2) was closed, set cheatbutton to 2
|
||||||
cheatbutton = 2;
|
cheatbutton = 2;
|
||||||
}
|
}
|
||||||
else if (buttonIsPressed(6) && (cheatbutton == 0))
|
else if (buttonIsPressed(6) && (cheatbutton == 0))
|
||||||
{
|
{
|
||||||
|
// cheatbutton 5 (momentary 3) was closed, set cheatbutton to 3
|
||||||
cheatbutton = 3;
|
cheatbutton = 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#ifndef CHAINGAMEH
|
#ifndef CHAINGAMEH
|
||||||
#define CHAINGAMEH
|
#define CHAINGAMEH
|
||||||
|
|
||||||
|
#include "Arduino.h"
|
||||||
|
#include "buttons.h"
|
||||||
|
|
||||||
void HandleChainGame( void );
|
void HandleChainGame( void );
|
||||||
void ResetChainGame(void);
|
void ResetChainGame(void);
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
#include "Arduino.h"
|
|
||||||
#include "detectled.h"
|
#include "detectled.h"
|
||||||
#include "buttons.h"
|
|
||||||
#include "board.h"
|
|
||||||
#include "led.h"
|
|
||||||
#include "vector"
|
|
||||||
|
|
||||||
#define CHANNELS 3
|
#define CHANNELS 3
|
||||||
#define SAMPLES 20
|
#define SAMPLES 20
|
||||||
@@ -36,4 +32,5 @@ void initDetectLed(void)
|
|||||||
ledlist_ptr = getledlist();
|
ledlist_ptr = getledlist();
|
||||||
|
|
||||||
analogReadResolution(10);
|
analogReadResolution(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
#ifndef DETECTLEDH
|
#ifndef DETECTLEDH
|
||||||
#define DETECTLEDH
|
#define DETECTLEDH
|
||||||
|
|
||||||
|
#include "buttons.h"
|
||||||
|
#include "board.h"
|
||||||
|
#include "led.h"
|
||||||
|
#include "vector"
|
||||||
|
|
||||||
void handleDetectLed( void );
|
void handleDetectLed( void );
|
||||||
void initDetectLed( void );
|
void initDetectLed( void );
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
#include "Arduino.h"
|
|
||||||
|
|
||||||
c_leds ledlist;
|
c_leds ledlist;
|
||||||
|
|
||||||
@@ -237,3 +238,4 @@ bool c_led::checkIndex(uint16_t index)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
#ifndef LEDH
|
#ifndef LEDH
|
||||||
#define LEDH
|
#define LEDH
|
||||||
|
|
||||||
#include "arduino.h"
|
#include "Arduino.h"
|
||||||
#include "vector"
|
#include "vector"
|
||||||
|
#include "board.h"
|
||||||
|
|
||||||
enum e_ledcolor
|
enum e_ledcolor
|
||||||
{
|
{
|
||||||
@@ -92,4 +93,5 @@ void turnOffLed(uint16_t index);
|
|||||||
void turnOnLed(uint16_t index);
|
void turnOnLed(uint16_t index);
|
||||||
void turnOffAllLed();
|
void turnOffAllLed();
|
||||||
|
|
||||||
#endif //LEDH
|
#endif //LEDH
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "magicSwitchBoard.h"
|
#include "magicSwitchBoard.h"
|
||||||
#include "Arduino.h"
|
|
||||||
#include "buttons.h"
|
|
||||||
//#include "JC_Button.h"
|
|
||||||
|
|
||||||
#define CHANNELS 3
|
#define CHANNELS 3
|
||||||
#define TIMEOUT 7000 //game timeout
|
#define TIMEOUT 7000 //game timeout
|
||||||
@@ -171,3 +170,5 @@ void handleMagicSwitchBoard(void)
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#ifndef MAGICSWITCHBOARDH
|
#ifndef MAGICSWITCHBOARDH
|
||||||
#define MAGICSWITCHBOARDH
|
#define MAGICSWITCHBOARDH
|
||||||
|
|
||||||
|
#include "buttons.h"
|
||||||
|
|
||||||
void handleMagicSwitchBoard( void );
|
void handleMagicSwitchBoard( void );
|
||||||
|
|
||||||
#endif //MAGICSWITCHBOARDH
|
#endif //MAGICSWITCHBOARDH
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
#include <Arduino.h>
|
|
||||||
|
#include "Arduino.h"
|
||||||
|
|
||||||
|
|
||||||
#include "board.h"
|
#include "board.h"
|
||||||
#include "chainGame.h"
|
#include "chainGame.h"
|
||||||
#include "detectled.h"
|
#include "detectled.h"
|
||||||
@@ -8,7 +11,7 @@
|
|||||||
#include "led.h"
|
#include "led.h"
|
||||||
|
|
||||||
#define TIMEOUT 15000 // 15sec * 1000ms
|
#define TIMEOUT 15000 // 15sec * 1000ms
|
||||||
#define GAMESELECTTIMEOUT 5000 // 7sec * 1000ms
|
#define GAMESELECTTIMEOUT 10000 // 7sec * 1000ms
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
@@ -188,4 +191,4 @@ void loop()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
#include "simpleled.h"
|
#include "simpleled.h"
|
||||||
#include "led.h"
|
|
||||||
#include "buttons.h"
|
|
||||||
#include "vector"
|
|
||||||
|
|
||||||
extern std::vector<c_button *> buttonlist;
|
extern std::vector<c_button *> buttonlist;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
#ifndef SIMPLELEDH
|
#ifndef SIMPLELEDH
|
||||||
#define SIMPLELEDH
|
#define SIMPLELEDH
|
||||||
|
|
||||||
|
#include "led.h"
|
||||||
|
#include "buttons.h"
|
||||||
|
#include "vector"
|
||||||
|
|
||||||
void initSimpleLed( void );
|
void initSimpleLed( void );
|
||||||
void handleSimpleLed( void );
|
void handleSimpleLed( void );
|
||||||
|
|
||||||
|
|||||||
12
test/native/test_games.cpp
Normal file
12
test/native/test_games.cpp
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#include <unity.h>
|
||||||
|
#ifdef UNIT_TEST
|
||||||
|
|
||||||
|
|
||||||
|
int main( int argc, char **argv) {
|
||||||
|
UNITY_BEGIN();
|
||||||
|
|
||||||
|
UNITY_END();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif //UNIT_TEST
|
||||||
Reference in New Issue
Block a user