minimalist hardware testing support

Dependents:   MAX5715BOB_Tester MAX11131BOB_Tester MAX5171BOB_Tester MAX11410BOB_Tester ... more

Committer:
whismanoid
Date:
Mon Jun 10 07:47:42 2019 +0000
Revision:
0:93d4119d3f14
Child:
1:f98ddb04f9e0
initial commit

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 0:93d4119d3f14 60 AnalogIn& analogInPin5);
whismanoid 0:93d4119d3f14 61
whismanoid 0:93d4119d3f14 62 AnalogIn& analogInPin0;
whismanoid 0:93d4119d3f14 63 AnalogIn& analogInPin1;
whismanoid 0:93d4119d3f14 64 AnalogIn& analogInPin2;
whismanoid 0:93d4119d3f14 65 AnalogIn& analogInPin3;
whismanoid 0:93d4119d3f14 66 AnalogIn& analogInPin4;
whismanoid 0:93d4119d3f14 67 AnalogIn& analogInPin5;
whismanoid 0:93d4119d3f14 68 float analogInPin_fullScaleVoltage[6];
whismanoid 0:93d4119d3f14 69
whismanoid 0:93d4119d3f14 70 /** err_threshold determines how closely a float or double result must match the expected value
whismanoid 0:93d4119d3f14 71 */
whismanoid 0:93d4119d3f14 72 double err_threshold;
whismanoid 0:93d4119d3f14 73
whismanoid 0:93d4119d3f14 74 void clear();
whismanoid 0:93d4119d3f14 75
whismanoid 0:93d4119d3f14 76 /** serial returns reference to the associated serial port */
whismanoid 0:93d4119d3f14 77 CmdLine& cmdLine(void) const {
whismanoid 0:93d4119d3f14 78 return associatedCmdLine;
whismanoid 0:93d4119d3f14 79 };
whismanoid 0:93d4119d3f14 80
whismanoid 0:93d4119d3f14 81 int nPass;
whismanoid 0:93d4119d3f14 82 int nFail;
whismanoid 0:93d4119d3f14 83
whismanoid 0:93d4119d3f14 84 void PASS();
whismanoid 0:93d4119d3f14 85
whismanoid 0:93d4119d3f14 86 void FAIL();
whismanoid 0:93d4119d3f14 87
whismanoid 0:93d4119d3f14 88 void Report_Summary(void);
whismanoid 0:93d4119d3f14 89
whismanoid 0:93d4119d3f14 90 bool FunctionCall_Expect(const char *nameOfFunctionUnderTest,
whismanoid 0:93d4119d3f14 91 Callback<uint16_t(double)> functionUnderTest,
whismanoid 0:93d4119d3f14 92 double voltageV, uint16_t expect_result);
whismanoid 0:93d4119d3f14 93
whismanoid 0:93d4119d3f14 94 bool FunctionCall_Expect(const char *nameOfFunctionUnderTest,
whismanoid 0:93d4119d3f14 95 Callback<double(uint16_t)> functionUnderTest,
whismanoid 0:93d4119d3f14 96 uint16_t value_u16, double expect_result);
whismanoid 0:93d4119d3f14 97
whismanoid 0:93d4119d3f14 98 int input_timeout_time_msec;
whismanoid 0:93d4119d3f14 99
whismanoid 0:93d4119d3f14 100 bool AnalogIn0_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 101 bool AnalogIn1_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 102 bool AnalogIn2_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 103 bool AnalogIn3_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 104 bool AnalogIn4_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 105 bool AnalogIn5_Read_Expect_voltageV(double expect_result);
whismanoid 0:93d4119d3f14 106
whismanoid 0:93d4119d3f14 107 bool AnalogIn_Read_Expect_voltageV(AnalogIn& analogInPin, double expect_result);
whismanoid 0:93d4119d3f14 108
whismanoid 0:93d4119d3f14 109 bool DigitalIn_Read_Expect_WarnOnly(DigitalIn& digitalInPin, const char* pinName, int expect_result, const char *expect_description);
whismanoid 0:93d4119d3f14 110
whismanoid 0:93d4119d3f14 111 int settle_time_msec;
whismanoid 0:93d4119d3f14 112
whismanoid 0:93d4119d3f14 113 void Wait_Output_Settling();
whismanoid 0:93d4119d3f14 114
whismanoid 0:93d4119d3f14 115 };
whismanoid 0:93d4119d3f14 116
whismanoid 0:93d4119d3f14 117 #endif // __MaximTinyTester_H__
whismanoid 0:93d4119d3f14 118
whismanoid 0:93d4119d3f14 119 // End of file
whismanoid 0:93d4119d3f14 120