diff --git a/docs/OpenHantek6022_User_Manual.odt b/docs/OpenHantek6022_User_Manual.odt index c49656be..6a31400d 100644 Binary files a/docs/OpenHantek6022_User_Manual.odt and b/docs/OpenHantek6022_User_Manual.odt differ diff --git a/openhantek/src/hantekdso/mathchannel.cpp b/openhantek/src/hantekdso/mathchannel.cpp index 4915ec84..9d36187b 100644 --- a/openhantek/src/hantekdso/mathchannel.cpp +++ b/openhantek/src/hantekdso/mathchannel.cpp @@ -95,6 +95,18 @@ void MathChannel::calculate( DSOsamples &result ) { ? 1.0 : 0.0 ); break; + case Dso::MathMode::GREAT_CH1_CH2: + for ( auto it = mathChannel.begin(), end = mathChannel.end(); it != end; ++it, ++ch1Iterator, ++ch2Iterator ) + *it = ( ( *ch1Iterator ) > ( *ch2Iterator ) + ? 1.0 + : 0.0 ); + break; + case Dso::MathMode::GREAT_CH2_CH1: + for ( auto it = mathChannel.begin(), end = mathChannel.end(); it != end; ++it, ++ch1Iterator, ++ch2Iterator ) + *it = ( ( *ch2Iterator ) > ( *ch1Iterator ) + ? 1.0 + : 0.0 ); + break; default: for ( auto it = mathChannel.begin(), end = mathChannel.end(); it != end; ++it ) *it = 0.0; diff --git a/openhantek/src/hantekdso/mathmodes.cpp b/openhantek/src/hantekdso/mathmodes.cpp index d4d66c7a..9c97ef45 100644 --- a/openhantek/src/hantekdso/mathmodes.cpp +++ b/openhantek/src/hantekdso/mathmodes.cpp @@ -10,7 +10,8 @@ Unit mathModeUnit( MathMode mode ) { if ( mode == MathMode::MUL_CH1_CH2 || mode == MathMode::SQ_CH1 || mode == MathMode::SQ_CH2 ) return UNIT_VOLTSQUARE; else if ( mode == MathMode::AND_CH1_CH2 || mode == MathMode::AND_NOT_CH1_CH2 || mode == MathMode::AND_CH1_NOT_CH2 || - mode == MathMode::AND_NOT_CH1_NOT_CH2 || mode == MathMode::EQU_CH1_CH2 || mode == MathMode::SIGN_AC_CH1 || + mode == MathMode::AND_NOT_CH1_NOT_CH2 || mode == MathMode::EQU_CH1_CH2 || mode == MathMode::GREAT_CH1_CH2 || + mode == MathMode::GREAT_CH2_CH1 || mode == MathMode::SIGN_AC_CH1 || mode == MathMode::SIGN_AC_CH2 || mode == MathMode::SIGN_CH1 || mode == MathMode::SIGN_CH2 || mode == MathMode::TRIG_CH2 || mode == MathMode::TRIG_CH1 || mode == MathMode::TRIG_CH2 ) return UNIT_NONE; // logic values 0 or 1 @@ -48,6 +49,10 @@ QString mathModeString( MathMode mode ) { return QCoreApplication::tr( "CH1 & /CH2" ); case MathMode::EQU_CH1_CH2: return QCoreApplication::tr( "CH1 == CH2" ); + case MathMode::GREAT_CH1_CH2: + return QCoreApplication::tr( "CH1 > CH2" ); + case MathMode::GREAT_CH2_CH1: + return QCoreApplication::tr( "CH2 > CH1" ); case MathMode::LP10_CH1: return QCoreApplication::tr( "CH1 LP10" ); case MathMode::LP10_CH2: diff --git a/openhantek/src/hantekdso/mathmodes.h b/openhantek/src/hantekdso/mathmodes.h index 254ef707..5ddec7bf 100644 --- a/openhantek/src/hantekdso/mathmodes.h +++ b/openhantek/src/hantekdso/mathmodes.h @@ -23,6 +23,8 @@ enum class MathMode : unsigned { AND_NOT_CH1_CH2, AND_CH1_NOT_CH2, EQU_CH1_CH2, + GREAT_CH1_CH2, + GREAT_CH2_CH1, // unary arithmetical functions LP10_CH1, LP10_CH2, @@ -47,7 +49,7 @@ enum class MathMode : unsigned { // this "extern" declaration must match the Enum definition in "mathchannel.cpp" extern Enum< Dso::MathMode, Dso::MathMode::ADD_CH1_CH2, Dso::MathMode::TRIG_CH2 > MathModeEnum; -const auto LastBinaryMathMode = MathMode::EQU_CH1_CH2; +const auto LastBinaryMathMode = MathMode::GREAT_CH2_CH1; const auto LastMathMode = MathMode::TRIG_CH2; Unit mathModeUnit( MathMode mode );