minimalist hardware testing support

Dependents:   MAX5715BOB_Tester MAX11131BOB_Tester MAX5171BOB_Tester MAX11410BOB_Tester ... more

Committer:
whismanoid
Date:
Fri Jun 21 10:52:47 2019 +0000
Revision:
1:f98ddb04f9e0
Parent:
0:93d4119d3f14
Child:
3:080aa1bb1bc0
add LED indicators m_PassLED, m_FailLED, m_BusyLED; ; pulse blue LED during test to indicate activity

Who changed what in which revision?

UserRevisionLine numberNew contents of line
whismanoid 0:93d4119d3f14 1 // /*******************************************************************************
whismanoid 0:93d4119d3f14 2 // * Copyright (C) 2019 Maxim Integrated Products, Inc., All Rights Reserved.
whismanoid 0:93d4119d3f14 3 // *
whismanoid 0:93d4119d3f14 4 // * Permission is hereby granted, free of charge, to any person obtaining a
whismanoid 0:93d4119d3f14 5 // * copy of this software and associated documentation files (the "Software"),
whismanoid 0:93d4119d3f14 6 // * to deal in the Software without restriction, including without limitation
whismanoid 0:93d4119d3f14 7 // * the rights to use, copy, modify, merge, publish, distribute, sublicense,
whismanoid 0:93d4119d3f14 8 // * and/or sell copies of the Software, and to permit persons to whom the
whismanoid 0:93d4119d3f14 9 // * Software is furnished to do so, subject to the following conditions:
whismanoid 0:93d4119d3f14 10 // *
whismanoid 0:93d4119d3f14 11 // * The above copyright notice and this permission notice shall be included
whismanoid 0:93d4119d3f14 12 // * in all copies or substantial portions of the Software.
whismanoid 0:93d4119d3f14 13 // *
whismanoid 0:93d4119d3f14 14 // * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
whismanoid 0:93d4119d3f14 15 // * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
whismanoid 0:93d4119d3f14 16 // * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
whismanoid 0:93d4119d3f14 17 // * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
whismanoid 0:93d4119d3f14 18 // * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
whismanoid 0:93d4119d3f14 19 // * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
whismanoid 0:93d4119d3f14 20 // * OTHER DEALINGS IN THE SOFTWARE.
whismanoid 0:93d4119d3f14 21 // *
whismanoid 0:93d4119d3f14 22 // * Except as contained in this notice, the name of Maxim Integrated
whismanoid 0:93d4119d3f14 23 // * Products, Inc. shall not be used except as stated in the Maxim Integrated
whismanoid 0:93d4119d3f14 24 // * Products, Inc. Branding Policy.
whismanoid 0:93d4119d3f14 25 // *
whismanoid 0:93d4119d3f14 26 // * The mere transfer of this software does not imply any licenses
whismanoid 0:93d4119d3f14 27 // * of trade secrets, proprietary technology, copyrights, patents,
whismanoid 0:93d4119d3f14 28 // * trademarks, maskwork rights, or any other form of intellectual
whismanoid 0:93d4119d3f14 29 // * property whatsoever. Maxim Integrated Products, Inc. retains all
whismanoid 0:93d4119d3f14 30 // * ownership rights.
whismanoid 0:93d4119d3f14 31 // *******************************************************************************
whismanoid 0:93d4119d3f14 32 // */
whismanoid 0:93d4119d3f14 33 // *********************************************************************
whismanoid 0:93d4119d3f14 34 // @file MaximTinyTester.h
whismanoid 0:93d4119d3f14 35 // *********************************************************************
whismanoid 0:93d4119d3f14 36
whismanoid 0:93d4119d3f14 37 // Prevent multiple declaration
whismanoid 0:93d4119d3f14 38 #ifndef __MaximTinyTester_H__
whismanoid 0:93d4119d3f14 39 #define __MaximTinyTester_H__
whismanoid 0:93d4119d3f14 40
whismanoid 0:93d4119d3f14 41 #include "mbed.h"
whismanoid 0:93d4119d3f14 42 #include "CmdLine.h" // https://whismanoid@os.mbed.com/users/whismanoid/code/CmdLine/
whismanoid 0:93d4119d3f14 43
whismanoid 0:93d4119d3f14 44 /**
whismanoid 0:93d4119d3f14 45 * @brief MaximTinyTester class supports software and hardware testing
whismanoid 0:93d4119d3f14 46 *
whismanoid 0:93d4119d3f14 47 */
whismanoid 0:93d4119d3f14 48 class MaximTinyTester
whismanoid 0:93d4119d3f14 49 {
whismanoid 0:93d4119d3f14 50 protected:
whismanoid 0:93d4119d3f14 51 CmdLine& associatedCmdLine;
whismanoid 0:93d4119d3f14 52
whismanoid 0:93d4119d3f14 53 public:
whismanoid 0:93d4119d3f14 54 MaximTinyTester(CmdLine& AssociatedCmdLine,
whismanoid 0:93d4119d3f14 55 AnalogIn& analogInPin0,
whismanoid 0:93d4119d3f14 56 AnalogIn& analogInPin1,
whismanoid 0:93d4119d3f14 57 AnalogIn& analogInPin2,
whismanoid 0:93d4119d3f14 58 AnalogIn& analogInPin3,
whismanoid 0:93d4119d3f14 59 AnalogIn& analogInPin4,
whismanoid 1:f98ddb04f9e0 60 AnalogIn& analogInPin5,
whismanoid 1:f98ddb04f9e0 61 DigitalOut& m_RFailLED,
whismanoid 1:f98ddb04f9e0 62 DigitalOut& m_GPassLED,
whismanoid 1:f98ddb04f9e0 63 DigitalOut& m_BBusyLED);
whismanoid 0:93d4119d3f14 64
whismanoid 0:93d4119d3f14 65 AnalogIn& analogInPin0;
whismanoid 0:93d4119d3f14 66 AnalogIn& analogInPin1;
whismanoid 0:93d4119d3f14 67 AnalogIn& analogInPin2;
whismanoid 0:93d4119d3f14 68 AnalogIn& analogInPin3;
whismanoid 0:93d4119d3f14 69 AnalogIn& analogInPin4;
whismanoid 0:93d4119d3f14 70 AnalogIn& analogInPin5;
whismanoid 0:93d4119d3f14 71 float analogInPin_fullScaleVoltage[6];
whismanoid 0:93d4119d3f14 72
whismanoid 1:f98ddb04f9e0 73 // MaximTinyTester add LED indicators m_RFailLED, m_GPassLED, m_BBusyLED
whismanoid 1:f98ddb04f9e0 74 DigitalOut& m_RFailLED;
whismanoid 1:f98ddb04f9e0 75 DigitalOut& m_GPassLED;
whismanoid 1:f98ddb04f9e0 76 DigitalOut& m_BBusyLED;
whismanoid 1:f98ddb04f9e0 77 int blink_time_msec;
whismanoid 1:f98ddb04f9e0 78
whismanoid 0:93d4119d3f14 79 /** err_threshold determines how closely a float or double result must match the expected value
whismanoid 0:93d4119d3f14 80 */
whismanoid 0:93d4119d3f14 81 double err_threshold;
whismanoid 0:93d4119d3f14 82
whismanoid 0:93d4119d3f14 83 void clear();
whismanoid 0:93d4119d3f14 84
whismanoid 0:93d4119d3f14 85 /** serial returns reference to the associated serial port */
whismanoid 0:93d4119d3f14 86 CmdLine& cmdLine(void) const {
whismanoid 0:93d4119d3f14 87 return associatedCmdLine;
whismanoid 0:93d4119d3f14 88 };
whismanoid 0:93d4119d3f14 89
whismanoid 0:93d4119d3f14 90 int nPass;
whismanoid 0:93d4119d3f14 91 int nFail;
whismanoid 0:93d4119d3f14 92
whismanoid 0:93d4119d3f14 93 void PASS();
whismanoid 0:93d4119d3f14 94
whismanoid 0:93d4119d3f14 95 void FAIL();
whismanoid 0:93d4119d3f14 96
whismanoid 0:93d4119d3f14 97 void Report_Summary(void);
whismanoid 0:93d4119d3f14 98
whismanoid 0:93d4119d3f14 99 bool FunctionCall_Expect(const char *nameOfFunctionUnderTest,
whismanoid 0:93d4119d3f14 100 Callback<uint16_t(double)> functionUnderTest,
whismanoid 0:93d4119d3f14 101 double voltageV, uint16_t expect_result);
whismanoid 0:93d4119d3f14 102
whismanoid 0:93d4119d3f14 103 bool FunctionCall_Expect(const char *nameOfFunctionUnderTest,
whismanoid 0:93d4119d3f14 104 Callback<double(uint16_t)> functionUnderTest,
whismanoid 0:93d4119d3f14 105 uint16_t value_u16, double expect_result);
whismanoid 0:93d4119d3f14 106
whismanoid 0:93d4119d3f14 107 int input_timeout_time_msec;
whismanoid 0:93d4119d3f14 108
whismanoid 0:93d4119d3f14 109 bool AnalogIn0_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 110 bool AnalogIn1_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 111 bool AnalogIn2_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 112 bool AnalogIn3_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 113 bool AnalogIn4_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 114 bool AnalogIn5_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 115
whismanoid 0:93d4119d3f14 116 bool AnalogIn_Read_Expect_voltageV(AnalogIn& analogInPin, double expect_result);
whismanoid 0:93d4119d3f14 117
whismanoid 0:93d4119d3f14 118 bool DigitalIn_Read_Expect_WarnOnly(DigitalIn& digitalInPin, const char* pinName, int expect_result, const char *expect_description);
whismanoid 0:93d4119d3f14 119
whismanoid 0:93d4119d3f14 120 int settle_time_msec;
whismanoid 0:93d4119d3f14 121
whismanoid 0:93d4119d3f14 122 void Wait_Output_Settling();
whismanoid 0:93d4119d3f14 123
whismanoid 0:93d4119d3f14 124 };
whismanoid 0:93d4119d3f14 125
whismanoid 0:93d4119d3f14 126 #endif // __MaximTinyTester_H__
whismanoid 0:93d4119d3f14 127
whismanoid 0:93d4119d3f14 128 // End of file