Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b9704bbe2d | ||
|
|
ae80ff60b1 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
build/
|
build/
|
||||||
.vscode
|
.vscode
|
||||||
|
.DS_Store
|
||||||
|
|||||||
483
.idea/editor.xml
generated
Normal file
483
.idea/editor.xml
generated
Normal file
@ -0,0 +1,483 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="BackendCodeEditorSettings">
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSmartPointerVsMakeFunction/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSmartPointerVsMakeFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCStyleCast/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCStyleCast/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionalStyleCast/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionalStyleCast/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReinterpretCastFromVoidPtr/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReinterpretCastFromVoidPtr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConvertingConstructor/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConvertingConstructor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConversionOperator/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExplicitConversionOperator/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDiscardedPostfixOperatorResult/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDiscardedPostfixOperatorResult/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstValueFunctionReturnType/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstValueFunctionReturnType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeConst/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeConst/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeStatic/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberFunctionMayBeStatic/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMayBeConst/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMayBeConst/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConst/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConst/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVariableCanBeMadeConstexpr/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVariableCanBeMadeConstexpr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConstPtrOrRef/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterMayBeConstPtrOrRef/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPassValueParameterByConstReference/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPassValueParameterByConstReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppThrowExpressionCanBeReplacedWithRethrow/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppThrowExpressionCanBeReplacedWithRethrow/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroConstantCanBeReplacedWithNullptr/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroConstantCanBeReplacedWithNullptr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCompileTimeConstantCanBeReplacedWithBooleanConstant/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCompileTimeConstantCanBeReplacedWithBooleanConstant/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIfCanBeReplacedByConstexprIf/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIfCanBeReplacedByConstexprIf/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IfStdIsConstantEvaluatedCanBeReplaced/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IfStdIsConstantEvaluatedCanBeReplaced/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StdIsConstantEvaluatedWillAlwaysEvaluateToConstant/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StdIsConstantEvaluatedWillAlwaysEvaluateToConstant/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstevalIfIsAlwaysConstant/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstevalIfIsAlwaysConstant/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassCanBeFinal/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassCanBeFinal/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStructuredBinding/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStructuredBinding/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseTypeTraitAlias/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseTypeTraitAlias/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAlgorithmWithCount/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAlgorithmWithCount/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseRangeAlgorithm/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseRangeAlgorithm/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseElementsView/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseElementsView/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStdSize/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseStdSize/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForLoopCanBeReplacedWithWhile/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForLoopCanBeReplacedWithWhile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppJoinDeclarationAndAssignment/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppJoinDeclarationAndAssignment/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceTieWithStructuredBinding/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceTieWithStructuredBinding/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceMemsetWithZeroInitialization/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReplaceMemsetWithZeroInitialization/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAssociativeContains/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAssociativeContains/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseEraseAlgorithm/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseEraseAlgorithm/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseFamiliarTemplateSyntaxForGenericLambdas/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseFamiliarTemplateSyntaxForGenericLambdas/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScope/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScope/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScopeInitStatement/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTooWideScopeInitStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantNamespaceDefinition/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantNamespaceDefinition/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineFunctionDefinitionInHeaderFile/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineFunctionDefinitionInHeaderFile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineVariableDefinitionInHeaderFile/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonInlineVariableDefinitionInHeaderFile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionIsNotImplemented/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionIsNotImplemented/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrivateSpecialMemberFunctionIsNotImplemented/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrivateSpecialMemberFunctionIsNotImplemented/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHiddenFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHiddenFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHidingFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHidingFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPolymorphicClassWithNonVirtualPublicDestructor/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPolymorphicClassWithNonVirtualPublicDestructor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractClassWithoutSpecifier/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractClassWithoutSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompleteSwitchStatement/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompleteSwitchStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultCaseNotHandledInSwitchStatement/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultCaseNotHandledInSwitchStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyErroneousEmptyStatements/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyErroneousEmptyStatements/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExpressionWithoutSideEffects/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExpressionWithoutSideEffects/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNoDiscardExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNoDiscardExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionResultShouldBeUsed/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionResultShouldBeUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingKeywordThrow/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingKeywordThrow/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTypeWithoutTypenameKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTypeWithoutTypenameKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTemplateWithoutTemplateKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDependentTemplateWithoutTemplateKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppImplicitDefaultConstructorNotAvailable/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppImplicitDefaultConstructorNotAvailable/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeedsConstructorBecauseOfUninitializedMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeedsConstructorBecauseOfUninitializedMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedNonStaticDataMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedNonStaticDataMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRangeBasedForIncompatibleReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRangeBasedForIncompatibleReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroValuedExpressionUsedAsNullPointer/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppZeroValuedExpressionUsedAsNullPointer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUnintendedObjectSlicing/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUnintendedObjectSlicing/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUninitializedMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPossiblyUninitializedMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorDisambiguatedAsFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorDisambiguatedAsFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionInFinalClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionInFinalClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMustBePublicVirtualToImplementInterface/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMustBePublicVirtualToImplementInterface/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationSpecifierWithoutDeclarators/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationSpecifierWithoutDeclarators/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEmptyDeclaration/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEmptyDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesLocal/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesLocal/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesUncapturedLocal/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclarationHidesUncapturedLocal/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMismatchedClassTags/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMismatchedClassTags/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUsingResultOfAssignmentAsCondition/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUsingResultOfAssignmentAsCondition/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIntegralToPointerConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIntegralToPointerConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerToIntegralConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerToIntegralConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompatiblePointerConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIncompatiblePointerConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerConversionDropsQualifiers/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPointerConversionDropsQualifiers/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStringLiteralToCharPointerConversion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStringLiteralToCharPointerConversion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExceptionSafeResourceAcquisition/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNonExceptionSafeResourceAcquisition/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionCallInsideCtor/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVirtualFunctionCallInsideCtor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractVirtualFunctionCallInCtor/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractVirtualFunctionCallInCtor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInvalidLineContinuation/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInvalidLineContinuation/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfBadFormat/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfBadFormat/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfRiskyFormat/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfRiskyFormat/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfMissedArg/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfMissedArg/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfExtraArg/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrintfExtraArg/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatBadCode/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatBadCode/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatLegacyCode/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatLegacyCode/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatMixedArgs/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatMixedArgs/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooFewArgs/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooFewArgs/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooManyArgs/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBoostFormatTooManyArgs/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedEntity/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedEntity/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingIncludeGuard/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMissingIncludeGuard/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenSyntaxError/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenSyntaxError/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUnresolvedReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUnresolvedReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUndocumentedParameter/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDoxygenUndocumentedParameter/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeletingVoidPointer/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeletingVoidPointer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBooleanIncrementExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppBooleanIncrementExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedRegisterStorageClassSpecifier/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeprecatedRegisterStorageClassSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIdenticalOperandsInBinaryExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppIdenticalOperandsInBinaryExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEqualOperandsInBinaryExpression/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEqualOperandsInBinaryExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedefinitionOfDefaultArgumentInOverrideFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedefinitionOfDefaultArgumentInOverrideFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnamedNamespaceInHeaderFile/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnamedNamespaceInHeaderFile/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNamesMismatch/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNamesMismatch/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultedSpecialMemberFunctionIsImplicitlyDeleted/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultedSpecialMemberFunctionIsImplicitlyDeleted/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNodiscardFunctionWithoutReturnValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNodiscardFunctionWithoutReturnValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantComplexityInComparison/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantComplexityInComparison/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractFinalClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAbstractFinalClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSpecialFunctionWithoutNoexceptSpecification/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSpecialFunctionWithoutNoexceptSpecification/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnsignedZeroComparison/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnsignedZeroComparison/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterLiteral/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterLiteral/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterWideLiteral/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMultiCharacterWideLiteral/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantQualifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantQualifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantAccessSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantAccessSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAccessSpecifierWithNoDeclarations/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAccessSpecifierWithNoDeclarations/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTypenameKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTypenameKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeyword/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeywordInsideCompoundStatement/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElseKeywordInsideCompoundStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantControlFlowJump/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantControlFlowJump/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyStatement/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyStatement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyDeclaration/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantEmptyDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantParentheses/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantParentheses/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantLambdaParameterList/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantLambdaParameterList/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantCastExpression/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantCastExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHeaderHasBeenAlreadyIncluded/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppHeaderHasBeenAlreadyIncluded/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateArgumentsCanBeDeduced/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateArgumentsCanBeDeduced/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateArguments/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantTemplateArguments/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticSpecifierOnAnonymousNamespaceMember/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticSpecifierOnAnonymousNamespaceMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnMemberAllocationFunction/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnMemberAllocationFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnThreadLocalLocalVariable/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantStaticSpecifierOnThreadLocalLocalVariable/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassAccessSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassAccessSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantInlineSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantInlineSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConstSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConstSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBooleanExpressionArgument/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBooleanExpressionArgument/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantVoidArgumentList/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantVoidArgumentList/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantMemberInitializer/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantMemberInitializer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassInitializer/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantBaseClassInitializer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstParameterInDeclaration/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConstParameterInDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVolatileParameterInDeclaration/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppVolatileParameterInDeclaration/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalFunctionInFinalClass/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalFunctionInFinalClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalNonOverridingVirtualFunction/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFinalNonOverridingVirtualFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElaboratedTypeSpecifier/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantElaboratedTypeSpecifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantDereferencingAndTakingAddress/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantDereferencingAndTakingAddress/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConditionalExpression/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantConditionalExpression/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConditionalExpressionCanBeSimplified/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConditionalExpressionCanBeSimplified/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantExportKeyword/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantExportKeyword/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantZeroInitializerInAggregateInitialization/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRedundantZeroInitializerInAggregateInitialization/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUserDefinedLiteralSuffixDoesNotStartWithUnderscore/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassIsIncomplete/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassIsIncomplete/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterShadowing/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterShadowing/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMutableSpecifierOnReferenceMember/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMutableSpecifierOnReferenceMember/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultInitializationWithNoUserConstructor/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultInitializationWithNoUserConstructor/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExplicitSpecializationInNonNamespaceScope/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppExplicitSpecializationInNonNamespaceScope/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnionMemberOfReferenceType/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnionMemberOfReferenceType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedDependentBaseClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUninitializedDependentBaseClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderIsNotIncluded/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderIsNotIncluded/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderNotFound/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppPrecompiledHeaderNotFound/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCoroutineCallResolveError/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCoroutineCallResolveError/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAwaiterTypeIsNotClass/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppAwaiterTypeIsNotClass/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppOutParameterMustBeWritten/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppOutParameterMustBeWritten/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWarningDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWarningDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticAssertFailure/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticAssertFailure/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEvaluationFailure/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEvaluationFailure/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTypeAliasNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTypeAliasNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConceptNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppConceptNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppClassNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnumeratorNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnumeratorNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLambdaCaptureNeverUsed/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLambdaCaptureNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableWithNonTrivialDtorIsNeverUsed/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableWithNonTrivialDtorIsNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNeverUsed/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppParameterNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterNeverUsed/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTemplateParameterNeverUsed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityAssignedButNoRead/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityAssignedButNoRead/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityUsedOnlyInUnevaluatedContext/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEntityUsedOnlyInUnevaluatedContext/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMightNotBeInitialized/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLocalVariableMightNotBeInitialized/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppObjectMemberMightNotBeInitialized/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppObjectMemberMightNotBeInitialized/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSomeObjectMembersMightNotBeInitialized/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppSomeObjectMembersMightNotBeInitialized/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorUsedBeforeInitialization/@EntryIndexedValue" value="ERROR" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDeclaratorUsedBeforeInitialization/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnusedIncludeDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnusedIncludeDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNotAllPathsReturnValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppNotAllPathsReturnValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CDeclarationWithImplicitIntType/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CDeclarationWithImplicitIntType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionDoesntReturnValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppFunctionDoesntReturnValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReturnNoValueInNonVoidFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppReturnNoValueInNonVoidFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCVQualifierCanNotBeAppliedToReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppCVQualifierCanNotBeAppliedToReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDereferenceOperatorLimitExceeded/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDereferenceOperatorLimitExceeded/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForwardEnumDeclarationWithoutUnderlyingType/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppForwardEnumDeclarationWithoutUnderlyingType/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaRegionDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaRegionDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaEndRegionDirective/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnmatchedPragmaEndRegionDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticDataMemberInUnnamedStruct/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppStaticDataMemberInUnnamedStruct/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultIsUsedAsIdentifier/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDefaultIsUsedAsIdentifier/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLongFloat/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppLongFloat/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtReinterpretCastFromNullptr/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtReinterpretCastFromNullptr/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtBindingRValueToLvalueReference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtBindingRValueToLvalueReference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtAddressOfClassRValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtAddressOfClassRValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtDoubleUserConversionInCopyInit/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtDoubleUserConversionInCopyInit/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtCopyElisionInCopyInitDeclarator/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtCopyElisionInCopyInitDeclarator/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtNotInitializedStaticConstLocalVar/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMsExtNotInitializedStaticConstLocalVar/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRemoveRedundantBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppRemoveRedundantBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceIfStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceIfStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceForStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceForStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceWhileStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceWhileStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceDoStatementBraces/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceDoStatementBraces/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongIncludesOrder/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongIncludesOrder/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongSlashesInIncludeDirective/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppWrongSlashesInIncludeDirective/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceNestedNamespacesStyle/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceNestedNamespacesStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceTypeAliasCodeStyle/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceTypeAliasCodeStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceFunctionDeclarationStyle/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceFunctionDeclarationStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberInitializersOrder/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppMemberInitializersOrder/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingFunctionStyle/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingFunctionStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingDestructorStyle/@EntryIndexedValue" value="SUGGESTION" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceOverridingDestructorStyle/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAuto/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAuto/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAutoForNumeric/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUseAutoForNumeric/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersPlacement/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersPlacement/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersOrder/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppEnforceCVQualifiersOrder/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnecessaryWhitespace/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppUnnecessaryWhitespace/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTabsAreDisallowed/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppTabsAreDisallowed/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantConditions/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantConditions/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANullDereference/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANullDereference/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANotInitializedField/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFANotInitializedField/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALoopConditionNotUpdated/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALoopConditionNotUpdated/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFADeletedPointer/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFADeletedPointer/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAMemoryLeak/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAMemoryLeak/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInvalidatedMemory/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInvalidatedMemory/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesScope/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesScope/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesFunction/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFALocalValueEscapesFunction/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantParameter/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantParameter/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantFunctionResult/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAConstantFunctionResult/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAArrayIndexOutOfBounds/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAArrayIndexOutOfBounds/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableCode/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableCode/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableFunctionCall/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreachableFunctionCall/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAEndlessLoop/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAEndlessLoop/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInfiniteRecursion/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAInfiniteRecursion/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnusedValue/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnusedValue/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreadVariable/@EntryIndexedValue" value="WARNING" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFAUnreadVariable/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFATimeOver/@EntryIndexedValue" value="HINT" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppDFATimeOver/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInconsistentNaming/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CppInconsistentNaming/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralTypo/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CommentTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=CommentTypo/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IdentifierTypo/@EntryIndexedValue" value="DO_NOT_SHOW" type="string" />
|
||||||
|
<option name="/Default/CodeInspection/Highlighting/InspectionSeverities/=IdentifierTypo/@EntryIndexRemoved" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
24
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
24
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||||
|
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="ignoredPackages">
|
||||||
|
<value>
|
||||||
|
<list size="10">
|
||||||
|
<item index="0" class="java.lang.String" itemvalue="pgml" />
|
||||||
|
<item index="1" class="java.lang.String" itemvalue="asyncio" />
|
||||||
|
<item index="2" class="java.lang.String" itemvalue="pyvis" />
|
||||||
|
<item index="3" class="java.lang.String" itemvalue="scikit-learn" />
|
||||||
|
<item index="4" class="java.lang.String" itemvalue="ipython" />
|
||||||
|
<item index="5" class="java.lang.String" itemvalue="plotly" />
|
||||||
|
<item index="6" class="java.lang.String" itemvalue="PyPDF2" />
|
||||||
|
<item index="7" class="java.lang.String" itemvalue="pypdf" />
|
||||||
|
<item index="8" class="java.lang.String" itemvalue="numpy" />
|
||||||
|
<item index="9" class="java.lang.String" itemvalue="datasets" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</option>
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
153
.idea/workspace.xml
generated
Normal file
153
.idea/workspace.xml
generated
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="AutoImportSettings">
|
||||||
|
<option name="autoReloadType" value="SELECTIVE" />
|
||||||
|
</component>
|
||||||
|
<component name="BackendCodeEditorMiscSettings">
|
||||||
|
<option name="/Default/RiderDebugger/RiderRestoreDecompile/RestoreDecompileSetting/@EntryValue" value="false" type="bool" />
|
||||||
|
<option name="/Default/Housekeeping/GlobalSettingsUpgraded/IsUpgraded/@EntryValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/Housekeeping/FeatureSuggestion/FeatureSuggestionManager/DisabledSuggesters/=SwitchToGoToActionSuggester/@EntryIndexedValue" value="true" type="bool" />
|
||||||
|
<option name="/Default/Housekeeping/FeatureSuggestion/FeatureSuggestionManager/DisabledSuggesters/=SwitchToGoToActionSuggester/@EntryIndexRemoved" />
|
||||||
|
<option name="/Default/Environment/Hierarchy/GeneratedFilesCacheKey/Timestamp/@EntryValue" value="3" type="long" />
|
||||||
|
</component>
|
||||||
|
<component name="CMakePresetLoader">{
|
||||||
|
"useNewFormat": true
|
||||||
|
}</component>
|
||||||
|
<component name="CMakeProjectFlavorService">
|
||||||
|
<option name="flavorId" value="CMakePlainProjectFlavor" />
|
||||||
|
</component>
|
||||||
|
<component name="CMakeReloadState">
|
||||||
|
<option name="reloaded" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="CMakeRunConfigurationManager">
|
||||||
|
<generated>
|
||||||
|
<config projectName="PicoIris" targetName="PicoIris_i2c_pio_h" />
|
||||||
|
<config projectName="PicoIris" targetName="PicoIris" />
|
||||||
|
<config projectName="PicoIris" targetName="bs2_default_library" />
|
||||||
|
<config projectName="PicoIris" targetName="cyw43_driver_picow_cyw43_bus_pio_spi_pio_h" />
|
||||||
|
<config projectName="PicoIris" targetName="bs2_default_bin" />
|
||||||
|
<config projectName="PicoIris" targetName="bs2_default" />
|
||||||
|
</generated>
|
||||||
|
</component>
|
||||||
|
<component name="CMakeSettings">
|
||||||
|
<configurations>
|
||||||
|
<configuration PROFILE_NAME="Debug" ENABLED="true" CONFIG_NAME="Debug" />
|
||||||
|
</configurations>
|
||||||
|
</component>
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="51a5c9c0-ebfe-4d31-b391-1b542071ebbc" name="Changes" comment="">
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/PicoIris.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/src/PicoIris.cpp" afterDir="false" />
|
||||||
|
</list>
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="ClangdSettings">
|
||||||
|
<option name="formatViaClangd" value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" />
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectApplicationVersion">
|
||||||
|
<option name="ide" value="CLion" />
|
||||||
|
<option name="majorVersion" value="2024" />
|
||||||
|
<option name="minorVersion" value="3.4" />
|
||||||
|
<option name="productBranch" value="Classic" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectColorInfo">{
|
||||||
|
"associatedIndex": 5
|
||||||
|
}</component>
|
||||||
|
<component name="ProjectId" id="2udZkhEv91jWtQ4K8Rvo6Hv3c7Y" />
|
||||||
|
<component name="ProjectViewState">
|
||||||
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
|
<option name="showLibraryContents" value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">{
|
||||||
|
"keyToString": {
|
||||||
|
"RunOnceActivity.RadMigrateCodeStyle": "true",
|
||||||
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
|
"RunOnceActivity.cidr.known.project.marker": "true",
|
||||||
|
"RunOnceActivity.git.unshallow": "true",
|
||||||
|
"RunOnceActivity.readMode.enableVisualFormatting": "true",
|
||||||
|
"RunOnceActivity.west.config.association.type.startup.service": "true",
|
||||||
|
"cf.first.check.clang-format": "false",
|
||||||
|
"cidr.known.project.marker": "true",
|
||||||
|
"git-widget-placeholder": "main",
|
||||||
|
"node.js.detected.package.eslint": "true",
|
||||||
|
"node.js.detected.package.tslint": "true",
|
||||||
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
|
"node.js.selected.package.tslint": "(autodetect)",
|
||||||
|
"nodejs_package_manager_path": "npm",
|
||||||
|
"settings.editor.selected.configurable": "clion.platformio.config",
|
||||||
|
"vue.rearranger.settings.migration": "true"
|
||||||
|
}
|
||||||
|
}</component>
|
||||||
|
<component name="RunManager" selected="CMake Application.PicoIris">
|
||||||
|
<configuration name="PicoIris" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="PicoIris" TARGET_NAME="PicoIris" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="PicoIris" RUN_TARGET_NAME="PicoIris">
|
||||||
|
<method v="2">
|
||||||
|
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<configuration name="PicoIris_i2c_pio_h" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="PicoIris" TARGET_NAME="PicoIris_i2c_pio_h" CONFIG_NAME="Debug">
|
||||||
|
<method v="2">
|
||||||
|
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<configuration name="bs2_default" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="PicoIris" TARGET_NAME="bs2_default" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="PicoIris" RUN_TARGET_NAME="bs2_default">
|
||||||
|
<method v="2">
|
||||||
|
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<configuration name="bs2_default_bin" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="PicoIris" TARGET_NAME="bs2_default_bin" CONFIG_NAME="Debug">
|
||||||
|
<method v="2">
|
||||||
|
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<configuration name="bs2_default_library" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="PicoIris" TARGET_NAME="bs2_default_library" CONFIG_NAME="Debug">
|
||||||
|
<method v="2">
|
||||||
|
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<configuration name="cyw43_driver_picow_cyw43_bus_pio_spi_pio_h" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="PicoIris" TARGET_NAME="cyw43_driver_picow_cyw43_bus_pio_spi_pio_h" CONFIG_NAME="Debug">
|
||||||
|
<method v="2">
|
||||||
|
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<list>
|
||||||
|
<item itemvalue="CMake Application.PicoIris" />
|
||||||
|
<item itemvalue="CMake Application.bs2_default" />
|
||||||
|
<item itemvalue="CMake Application.bs2_default_bin" />
|
||||||
|
<item itemvalue="CMake Application.bs2_default_library" />
|
||||||
|
<item itemvalue="CMake Application.cyw43_driver_picow_cyw43_bus_pio_spi_pio_h" />
|
||||||
|
<item itemvalue="CMake Application.PicoIris_i2c_pio_h" />
|
||||||
|
</list>
|
||||||
|
</component>
|
||||||
|
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="51a5c9c0-ebfe-4d31-b391-1b542071ebbc" name="Changes" comment="" />
|
||||||
|
<created>1742580557791</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1742580557791</updated>
|
||||||
|
<workItem from="1742580559816" duration="794000" />
|
||||||
|
<workItem from="1742750595682" duration="59000" />
|
||||||
|
<workItem from="1742756844093" duration="379000" />
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
<option name="version" value="3" />
|
||||||
|
</component>
|
||||||
|
<component name="VCPKGProject">
|
||||||
|
<isAutomaticCheckingOnLaunch value="false" />
|
||||||
|
<isAutomaticFoundErrors value="true" />
|
||||||
|
<isAutomaticReloadCMake value="true" />
|
||||||
|
</component>
|
||||||
|
<component name="XSLT-Support.FileAssociations.UIState">
|
||||||
|
<expand />
|
||||||
|
<select />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@ -44,7 +44,7 @@ pico_set_program_version(PicoIris "0.1")
|
|||||||
# Generate PIO header
|
# Generate PIO header
|
||||||
pico_generate_pio_header(PicoIris ${CMAKE_CURRENT_LIST_DIR}/src/pio/i2c/i2c.pio)
|
pico_generate_pio_header(PicoIris ${CMAKE_CURRENT_LIST_DIR}/src/pio/i2c/i2c.pio)
|
||||||
|
|
||||||
# Modify the below lines to enable/disable output over UART/USB
|
#Disable debug messages on UART by redirecting them to USB
|
||||||
pico_enable_stdio_uart(PicoIris 0)
|
pico_enable_stdio_uart(PicoIris 0)
|
||||||
pico_enable_stdio_usb(PicoIris 1)
|
pico_enable_stdio_usb(PicoIris 1)
|
||||||
|
|
||||||
|
|||||||
69
bus_scan.c
69
bus_scan.c
@ -38,7 +38,8 @@
|
|||||||
bool reserved_addr(uint8_t addr) {
|
bool reserved_addr(uint8_t addr) {
|
||||||
return (addr & 0x78) == 0 || (addr & 0x78) == 0x78;
|
return (addr & 0x78) == 0 || (addr & 0x78) == 0x78;
|
||||||
}
|
}
|
||||||
|
#define PICO_DEFAULT_I2C_SDA_PIN 22
|
||||||
|
#define PICO_DEFAULT_I2C_SCL_PIN 19
|
||||||
int main() {
|
int main() {
|
||||||
// Enable UART so we can print status output
|
// Enable UART so we can print status output
|
||||||
stdio_init_all();
|
stdio_init_all();
|
||||||
@ -47,47 +48,51 @@ int main() {
|
|||||||
puts("Default I2C pins were not defined");
|
puts("Default I2C pins were not defined");
|
||||||
#else
|
#else
|
||||||
// This example will use I2C0 on the default SDA and SCL pins (GP4, GP5 on a Pico)
|
// This example will use I2C0 on the default SDA and SCL pins (GP4, GP5 on a Pico)
|
||||||
gpio_set_function(3, GPIO_FUNC_PWM);
|
gpio_set_function(11, GPIO_FUNC_PWM);
|
||||||
uint slice_num = pwm_gpio_to_slice_num(3);
|
uint slice_num = pwm_gpio_to_slice_num(11);
|
||||||
// 6 cycles (0 to 5), 125 MHz / 6 = ~20.83 MHz wrap rate
|
// 6 cycles (0 to 5), 125 MHz / 6 = ~20.83 MHz wrap rate
|
||||||
pwm_set_wrap(slice_num, 5);
|
pwm_set_wrap(slice_num, 5);
|
||||||
pwm_set_gpio_level(3, 3);
|
pwm_set_gpio_level(11, 3);
|
||||||
pwm_set_enabled(slice_num, true);
|
pwm_set_enabled(slice_num, true);
|
||||||
sleep_ms(1000);
|
sleep_ms(1000);
|
||||||
|
|
||||||
i2c_init(i2c_default, 100 * 1000);
|
i2c_init(i2c1, 100 * 1000);
|
||||||
gpio_set_function(PICO_DEFAULT_I2C_SDA_PIN, GPIO_FUNC_I2C);
|
gpio_set_function(22, GPIO_FUNC_I2C);
|
||||||
gpio_set_function(PICO_DEFAULT_I2C_SCL_PIN, GPIO_FUNC_I2C);
|
gpio_set_function(19, GPIO_FUNC_I2C);
|
||||||
gpio_pull_up(PICO_DEFAULT_I2C_SDA_PIN);
|
gpio_pull_up(22);
|
||||||
gpio_pull_up(PICO_DEFAULT_I2C_SCL_PIN);
|
gpio_pull_up(19);
|
||||||
// Make the I2C pins available to picotool
|
// Make the I2C pins available to picotool
|
||||||
bi_decl(bi_2pins_with_func(PICO_DEFAULT_I2C_SDA_PIN, PICO_DEFAULT_I2C_SCL_PIN, GPIO_FUNC_I2C));
|
bi_decl(bi_2pins_with_func(22, 19, GPIO_FUNC_I2C));
|
||||||
|
while(true){
|
||||||
|
printf("\nI2C Bus Scan\n");
|
||||||
|
printf(" 0 1 2 3 4 5 6 7 8 9 A B C D E F\n");
|
||||||
|
|
||||||
printf("\nI2C Bus Scan\n");
|
for (int addr = 0; addr < (1 << 7); ++addr) {
|
||||||
printf(" 0 1 2 3 4 5 6 7 8 9 A B C D E F\n");
|
if (addr % 16 == 0) {
|
||||||
|
printf("%02x ", addr);
|
||||||
|
}
|
||||||
|
|
||||||
for (int addr = 0; addr < (1 << 7); ++addr) {
|
// Perform a 1-byte dummy read from the probe address. If a slave
|
||||||
if (addr % 16 == 0) {
|
// acknowledges this address, the function returns the number of bytes
|
||||||
printf("%02x ", addr);
|
// transferred. If the address byte is ignored, the function returns
|
||||||
|
// -1.
|
||||||
|
|
||||||
|
// Skip over any reserved addresses.
|
||||||
|
int ret;
|
||||||
|
uint8_t rxdata;
|
||||||
|
if (reserved_addr(addr))
|
||||||
|
ret = PICO_ERROR_GENERIC;
|
||||||
|
else
|
||||||
|
ret = i2c_read_blocking(i2c1, addr, &rxdata, 1, false);
|
||||||
|
|
||||||
|
|
||||||
|
printf(ret < 0 ? "." : "@");
|
||||||
|
printf(addr % 16 == 15 ? "\n" : " ");
|
||||||
}
|
}
|
||||||
|
printf("Done.\n");
|
||||||
// Perform a 1-byte dummy read from the probe address. If a slave
|
sleep_ms(1000);
|
||||||
// acknowledges this address, the function returns the number of bytes
|
|
||||||
// transferred. If the address byte is ignored, the function returns
|
|
||||||
// -1.
|
|
||||||
|
|
||||||
// Skip over any reserved addresses.
|
|
||||||
int ret;
|
|
||||||
uint8_t rxdata;
|
|
||||||
if (reserved_addr(addr))
|
|
||||||
ret = PICO_ERROR_GENERIC;
|
|
||||||
else
|
|
||||||
ret = i2c_read_blocking(i2c_default, addr, &rxdata, 1, false);
|
|
||||||
|
|
||||||
printf(ret < 0 ? "." : "@");
|
|
||||||
printf(addr % 16 == 15 ? "\n" : " ");
|
|
||||||
}
|
}
|
||||||
printf("Done.\n");
|
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
314
image_receiver.py
Normal file
314
image_receiver.py
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
import serial
|
||||||
|
import struct
|
||||||
|
import numpy as np
|
||||||
|
import os
|
||||||
|
import binascii
|
||||||
|
import time
|
||||||
|
import cv2 # Added OpenCV for image processing
|
||||||
|
|
||||||
|
# Configure serial port - this will connect to the USB serial port from the Pico
|
||||||
|
PORT = '/dev/tty.usbmodem101' # Adjust for your system
|
||||||
|
BAUD_RATE = 3000 # Reduced to match the Pico's baud rate for debugging
|
||||||
|
TIMEOUT = 60 # Increased timeout for slower data transfer
|
||||||
|
|
||||||
|
# Enable detailed debugging information
|
||||||
|
DEBUG_MODE = True # Set to True for verbose output, False for normal operation
|
||||||
|
|
||||||
|
# Frame constants - match the values in the C++ code
|
||||||
|
FRAME_HEADER = b'\xDE\xAD\xBE\xEF' # Distinctive header
|
||||||
|
FRAME_FOOTER = b'\xCA\xFE\xBA\xBE' # Distinctive footer
|
||||||
|
BINARY_START_MARKER = "BINARY_START"
|
||||||
|
BINARY_END_MARKER = "###BINARY_END###" # Updated to match the new format
|
||||||
|
|
||||||
|
# Directory to save the frames
|
||||||
|
output_dir = "frames"
|
||||||
|
os.makedirs(output_dir, exist_ok=True)
|
||||||
|
|
||||||
|
def debug_hex(data):
|
||||||
|
"""Print data in hexadecimal format for debugging."""
|
||||||
|
return binascii.hexlify(data).decode('ascii')
|
||||||
|
|
||||||
|
def save_as_image(frame_data, filename_base, frame_size=(160, 120)):
|
||||||
|
"""Save the frame data as both PNG and raw file formats."""
|
||||||
|
try:
|
||||||
|
# Convert the raw data to a numpy array
|
||||||
|
img_array = np.frombuffer(frame_data, dtype=np.uint16)
|
||||||
|
|
||||||
|
# Reshape to the expected dimensions
|
||||||
|
width, height = frame_size
|
||||||
|
img_array = img_array.reshape(height, width)
|
||||||
|
|
||||||
|
# Convert from RGB565 to BGR format that OpenCV uses
|
||||||
|
# This conversion depends on your exact pixel format
|
||||||
|
# RGB565: 5 bits red, 6 bits green, 5 bits blue
|
||||||
|
img_rgb = np.zeros((height, width, 3), dtype=np.uint8)
|
||||||
|
|
||||||
|
# Extract R, G, B components from RGB565
|
||||||
|
r = ((img_array & 0xF800) >> 11) * 8 # 5 bits for red (0-31) scaled to 0-255
|
||||||
|
g = ((img_array & 0x07E0) >> 5) * 4 # 6 bits for green (0-63) scaled to 0-255
|
||||||
|
b = (img_array & 0x001F) * 8 # 5 bits for blue (0-31) scaled to 0-255
|
||||||
|
|
||||||
|
img_rgb[:,:,0] = b # OpenCV uses BGR order
|
||||||
|
img_rgb[:,:,1] = g
|
||||||
|
img_rgb[:,:,2] = r
|
||||||
|
|
||||||
|
# Save as PNG
|
||||||
|
png_filename = f"{filename_base}.png"
|
||||||
|
cv2.imwrite(png_filename, img_rgb)
|
||||||
|
print(f"Saved PNG image: {png_filename}")
|
||||||
|
|
||||||
|
# Save as JPG with 90% quality
|
||||||
|
jpg_filename = f"{filename_base}.jpg"
|
||||||
|
cv2.imwrite(jpg_filename, img_rgb, [cv2.IMWRITE_JPEG_QUALITY, 90])
|
||||||
|
print(f"Saved JPG image: {jpg_filename}")
|
||||||
|
|
||||||
|
# Also save the raw numpy array for further analysis if needed
|
||||||
|
np_filename = f"{filename_base}.npy"
|
||||||
|
np.save(np_filename, img_array)
|
||||||
|
print(f"Saved NumPy array: {np_filename}")
|
||||||
|
|
||||||
|
# Save raw binary data too
|
||||||
|
raw_filename = f"{filename_base}.raw"
|
||||||
|
with open(raw_filename, "wb") as f:
|
||||||
|
f.write(frame_data)
|
||||||
|
print(f"Saved raw data: {raw_filename}")
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error saving image: {e}")
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
return False
|
||||||
|
|
||||||
|
def receive_frame():
|
||||||
|
"""Receive a complete frame from the serial port."""
|
||||||
|
try:
|
||||||
|
with serial.Serial(PORT, BAUD_RATE, timeout=TIMEOUT) as ser:
|
||||||
|
print(f"Monitoring serial port: {ser.name}")
|
||||||
|
|
||||||
|
line = ""
|
||||||
|
in_binary_section = False
|
||||||
|
binary_data = bytearray()
|
||||||
|
|
||||||
|
# Safety check - maximum buffer size to prevent infinite collection
|
||||||
|
MAX_BUFFER_SIZE = 500000 # 500KB should be more than enough for a 160x120 frame
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Read data from serial port
|
||||||
|
if ser.in_waiting > 0:
|
||||||
|
# Try to read a line first to check for markers
|
||||||
|
c = ser.read(1)
|
||||||
|
|
||||||
|
# If in binary section, collect binary data
|
||||||
|
if in_binary_section:
|
||||||
|
binary_data.append(c[0])
|
||||||
|
|
||||||
|
# Safety check - if buffer gets too large, abort
|
||||||
|
if len(binary_data) > MAX_BUFFER_SIZE:
|
||||||
|
print(f"WARNING: Binary data exceeded maximum buffer size ({MAX_BUFFER_SIZE})")
|
||||||
|
print("Aborting binary collection to prevent memory issues")
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Show progress for large binary sections
|
||||||
|
if len(binary_data) % 1000 == 0:
|
||||||
|
print(f"Collected {len(binary_data)} bytes of binary data")
|
||||||
|
|
||||||
|
# Check if we've accumulated enough data to check for the end marker
|
||||||
|
# Add the character to our text buffer as well for end marker detection
|
||||||
|
if c.isascii() and not c.isspace():
|
||||||
|
line += c.decode('ascii', errors='replace')
|
||||||
|
else:
|
||||||
|
# For whitespace characters, we need special handling
|
||||||
|
if c == b'\n':
|
||||||
|
# If the current line contains our end marker
|
||||||
|
if BINARY_END_MARKER in line:
|
||||||
|
print(f"Binary end marker detected in line: {line}")
|
||||||
|
in_binary_section = False
|
||||||
|
print(f"Total binary data collected: {len(binary_data)} bytes")
|
||||||
|
|
||||||
|
# Print binary data summary
|
||||||
|
print("First 32 bytes:", debug_hex(binary_data[:32]))
|
||||||
|
print("Last 32 bytes:", debug_hex(binary_data[-32:]))
|
||||||
|
|
||||||
|
# Find the last occurrence of FRAME_FOOTER
|
||||||
|
footer_pos = -1
|
||||||
|
for i in range(len(binary_data) - len(FRAME_FOOTER)):
|
||||||
|
if binary_data[i:i+len(FRAME_FOOTER)] == FRAME_FOOTER:
|
||||||
|
footer_pos = i
|
||||||
|
|
||||||
|
if footer_pos >= 0:
|
||||||
|
print(f"Frame footer found at position {footer_pos}: {debug_hex(FRAME_FOOTER)}")
|
||||||
|
# Trim the binary data to end at the footer + footer length
|
||||||
|
binary_data = binary_data[:footer_pos + len(FRAME_FOOTER)]
|
||||||
|
else:
|
||||||
|
print(f"WARNING: Frame footer {debug_hex(FRAME_FOOTER)} not found in binary data")
|
||||||
|
|
||||||
|
# Process the binary data
|
||||||
|
return process_binary_data(binary_data)
|
||||||
|
line = ""
|
||||||
|
elif c == b'\r':
|
||||||
|
pass # Ignore CR characters
|
||||||
|
else:
|
||||||
|
# Normal text processing
|
||||||
|
if c == b'\n':
|
||||||
|
# Check if this line is the start marker
|
||||||
|
if BINARY_START_MARKER in line:
|
||||||
|
print("Binary start marker detected")
|
||||||
|
in_binary_section = True
|
||||||
|
binary_data = bytearray()
|
||||||
|
line = ""
|
||||||
|
else:
|
||||||
|
print(f"Log: {line}")
|
||||||
|
line = ""
|
||||||
|
else:
|
||||||
|
line += c.decode('ascii', errors='replace')
|
||||||
|
else:
|
||||||
|
# No data available, sleep briefly
|
||||||
|
time.sleep(0.01)
|
||||||
|
|
||||||
|
except serial.SerialException as e:
|
||||||
|
print(f"Serial error: {e}")
|
||||||
|
return None
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Unexpected error: {e}")
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
return None
|
||||||
|
|
||||||
|
def process_binary_data(data):
|
||||||
|
"""Process the binary data to extract the frame."""
|
||||||
|
print(f"Processing {len(data)} bytes of binary data")
|
||||||
|
|
||||||
|
# Search for the frame header
|
||||||
|
header_pos = -1
|
||||||
|
for i in range(len(data) - len(FRAME_HEADER)):
|
||||||
|
if data[i:i+len(FRAME_HEADER)] == FRAME_HEADER:
|
||||||
|
header_pos = i
|
||||||
|
break
|
||||||
|
|
||||||
|
if header_pos == -1:
|
||||||
|
print("Error: Frame header not found")
|
||||||
|
return None
|
||||||
|
|
||||||
|
print(f"Frame header found at position {header_pos}")
|
||||||
|
|
||||||
|
# Extract the frame size
|
||||||
|
size_start = header_pos + len(FRAME_HEADER)
|
||||||
|
size_bytes = data[size_start:size_start+4]
|
||||||
|
if len(size_bytes) < 4:
|
||||||
|
print("Error: Incomplete size bytes")
|
||||||
|
return None
|
||||||
|
|
||||||
|
frame_size = struct.unpack('<I', size_bytes)[0]
|
||||||
|
print(f"Frame size: {frame_size} bytes")
|
||||||
|
|
||||||
|
# Extract the frame data
|
||||||
|
data_start = size_start + 4
|
||||||
|
frame_data = data[data_start:data_start+frame_size]
|
||||||
|
|
||||||
|
if len(frame_data) != frame_size:
|
||||||
|
print(f"Warning: Incomplete frame data (got {len(frame_data)} of {frame_size} bytes)")
|
||||||
|
|
||||||
|
# Save the incomplete frame data for debugging
|
||||||
|
incomplete_filename = os.path.join(output_dir, "incomplete_frame.raw")
|
||||||
|
with open(incomplete_filename, "wb") as f:
|
||||||
|
f.write(frame_data)
|
||||||
|
print(f"Saved incomplete frame data: {incomplete_filename}")
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Extract and verify checksum
|
||||||
|
checksum_start = data_start + frame_size
|
||||||
|
checksum_bytes = data[checksum_start:checksum_start+4]
|
||||||
|
if len(checksum_bytes) < 4:
|
||||||
|
print("Error: Incomplete checksum bytes")
|
||||||
|
return None
|
||||||
|
|
||||||
|
received_checksum = struct.unpack('<I', checksum_bytes)[0]
|
||||||
|
calculated_checksum = sum(frame_data) & 0xFFFFFFFF
|
||||||
|
print(f"Checksum: received={received_checksum}, calculated={calculated_checksum}")
|
||||||
|
|
||||||
|
if received_checksum != calculated_checksum:
|
||||||
|
print("Error: Checksum mismatch")
|
||||||
|
#return None
|
||||||
|
|
||||||
|
# Verify frame footer
|
||||||
|
footer_start = checksum_start + 4
|
||||||
|
footer = data[footer_start:footer_start+len(FRAME_FOOTER)]
|
||||||
|
if footer != FRAME_FOOTER:
|
||||||
|
print("Error: Invalid frame footer")
|
||||||
|
#return None
|
||||||
|
|
||||||
|
print("Frame successfully extracted and verified!")
|
||||||
|
return frame_data
|
||||||
|
|
||||||
|
def find_serial_port():
|
||||||
|
"""Find the Pico's serial port by scanning available ports."""
|
||||||
|
import serial.tools.list_ports
|
||||||
|
|
||||||
|
# Look for common Pico identifiers
|
||||||
|
pico_identifiers = ['usbmodem', 'ttyACM']
|
||||||
|
|
||||||
|
ports = list(serial.tools.list_ports.comports())
|
||||||
|
for port in ports:
|
||||||
|
for identifier in pico_identifiers:
|
||||||
|
if identifier in port.device.lower():
|
||||||
|
print(f"Found likely Pico device at {port.device}")
|
||||||
|
return port.device
|
||||||
|
|
||||||
|
# If no specific Pico port was found, return the first available port if any
|
||||||
|
if ports:
|
||||||
|
print(f"No specific Pico device found. Using first available port: {ports[0].device}")
|
||||||
|
return ports[0].device
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Main function to receive and save frames."""
|
||||||
|
frame_count = 0
|
||||||
|
max_retries = 5
|
||||||
|
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
print("\n====== Waiting for new frame ======")
|
||||||
|
# Try to find a serial port if not already connected
|
||||||
|
try:
|
||||||
|
port = find_serial_port()
|
||||||
|
if port:
|
||||||
|
print(f"Using serial port: {port}")
|
||||||
|
global PORT
|
||||||
|
PORT = port
|
||||||
|
else:
|
||||||
|
print("No serial port found. Retrying in 5 seconds...")
|
||||||
|
time.sleep(5)
|
||||||
|
continue
|
||||||
|
|
||||||
|
frame_data = receive_frame()
|
||||||
|
|
||||||
|
if frame_data is not None:
|
||||||
|
# Create base filename for this frame
|
||||||
|
base_filename = os.path.join(output_dir, f"frame_{frame_count:04d}")
|
||||||
|
|
||||||
|
# Save the frame data as images
|
||||||
|
if save_as_image(frame_data, base_filename):
|
||||||
|
print(f"Successfully saved frame {frame_count}")
|
||||||
|
frame_count += 1
|
||||||
|
|
||||||
|
except serial.SerialException as e:
|
||||||
|
print(f"Serial connection error: {e}")
|
||||||
|
print("Waiting 5 seconds before retrying...")
|
||||||
|
time.sleep(5)
|
||||||
|
continue
|
||||||
|
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("\nProcess interrupted by user. Exiting...")
|
||||||
|
break
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
time.sleep(5) # Wait before retrying
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
148
src/PicoIris.cpp
148
src/PicoIris.cpp
@ -14,37 +14,141 @@
|
|||||||
#include <ov2640/camera.hpp>
|
#include <ov2640/camera.hpp>
|
||||||
#include "cstring"
|
#include "cstring"
|
||||||
|
|
||||||
// PIO2 is reserved for the cam data retreive functions
|
// Frame header and footer markers for synchronization - using distinctive values
|
||||||
|
const uint8_t FRAME_HEADER[] = {0xDE, 0xAD, 0xBE, 0xEF}; // Distinctive header
|
||||||
|
const uint8_t FRAME_FOOTER[] = {0xCA, 0xFE, 0xBA, 0xBE}; // Distinctive footer
|
||||||
|
const int FRAME_MARKER_SIZE = 4;
|
||||||
|
|
||||||
|
// Reduced baud rate for slower, more reliable debugging
|
||||||
|
#define BAUD_RATE 57600 // Reduced for debugging (standard options: 9600, 19200, 38400, 57600, 115200)
|
||||||
|
|
||||||
|
// PIO2 is reserved for the cam data retrieve functions
|
||||||
camera_config_t left_eye_config = {
|
camera_config_t left_eye_config = {
|
||||||
.pin_pwdn = -1, /*!< GPIO pin for camera power down line */ //? Also called PWDN, or set to -1 and tie to GND
|
.pin_pwdn = -1, /*!< GPIO pin for camera power down line */
|
||||||
.pin_reset = -1, /*!< GPIO pin for camera reset line */ //? Cam reset, or set to -1 and tie to 3.3V
|
.pin_reset = -1, /*!< GPIO pin for camera reset line */
|
||||||
.pin_xclk = 3, /*!< GPIO pin for camera XCLK line */ //? in theory could be shared or perhaps ommited?
|
.pin_xclk = 11, /*!< GPIO pin for camera XCLK line */
|
||||||
.pin_sccb_sda = 4, /*!< GPIO pin for camera SDA line */
|
.pin_sccb_sda = 22, /*!< GPIO pin for camera SDA line */
|
||||||
.pin_sccb_scl = 5, /*!< GPIO pin for camera SCL line */
|
.pin_sccb_scl = 19, /*!< GPIO pin for camera SCL line */
|
||||||
.pin_data_base = 6, /*!< this pin + 7 consecutive will be used D0-D7 PCLK HREF */
|
.pin_data_9 = 14, /*!< this pin + 7 consecutive will be used D0-D7 PCLK HREF */
|
||||||
.pin_vsync = 16, /*!< GPIO pin for camera VSYNC line */
|
.pin_data_8 = 12,
|
||||||
.xclk_freq_hz = 0, /*!< Frequency of XCLK signal, in Hz. */ //! Figure out the highest it can go to
|
.pin_data_7 = 10,
|
||||||
.sccb_ctrl = 0, /* Select i2c controller ctrl: 0 - i2c0, 1 - i2c1, 2 - pio0, 3 - pio1, 4 - pio2 */
|
.pin_data_6 = 8,
|
||||||
|
.pin_data_5 = 6,
|
||||||
|
.pin_data_4 = 5,
|
||||||
|
.pin_data_3 = 4,
|
||||||
|
.pin_data_2 = 3,
|
||||||
|
.pin_vsync = 17, /*!< GPIO pin for camera VSYNC line */
|
||||||
|
.pin_hsync = 15, /*!< GPIO pin for camera VSYNC line */
|
||||||
|
|
||||||
|
.xclk_freq_hz = 0, /*!< Frequency of XCLK signal, in Hz. */
|
||||||
|
.sccb_ctrl = 1, /* Select i2c controller ctrl: 0 - i2c0, 1 - i2c1, 2 - pio0, 3 - pio1, 4 - pio2 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Send a properly framed image using printf for binary data
|
||||||
|
void send_frame(const void* buffer, size_t size) {
|
||||||
|
// Ensure UART output buffer is flushed before sending binary data
|
||||||
|
printf("\n\nBINARY_START\n\n");
|
||||||
|
sleep_ms(100); // Small delay to ensure the text is transmitted separately
|
||||||
|
|
||||||
|
// Send binary data using fwrite directly to stdout
|
||||||
|
// This avoids any text processing that printf might do
|
||||||
|
|
||||||
|
// Send frame header
|
||||||
|
fwrite(FRAME_HEADER, 1, FRAME_MARKER_SIZE, stdout);
|
||||||
|
sleep_ms(100); // Small delay to ensure the text is transmitted separately
|
||||||
|
printf("test....");
|
||||||
|
|
||||||
|
// Send frame size (4 bytes, little-endian)
|
||||||
|
uint8_t size_bytes[4];
|
||||||
|
size_bytes[0] = size & 0xFF;
|
||||||
|
size_bytes[1] = (size >> 8) & 0xFF;
|
||||||
|
size_bytes[2] = (size >> 16) & 0xFF;
|
||||||
|
size_bytes[3] = (size >> 24) & 0xFF;
|
||||||
|
fwrite(size_bytes, 1, 4, stdout);
|
||||||
|
printf("test2....");
|
||||||
|
|
||||||
|
// Calculate checksum
|
||||||
|
uint32_t checksum = 0;
|
||||||
|
const uint8_t* buf = (const uint8_t*)buffer;
|
||||||
|
for (size_t i = 0; i < size; i++) {
|
||||||
|
checksum += buf[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send frame data
|
||||||
|
fwrite(buf, 1, size, stdout);
|
||||||
|
sleep_ms(100); // Small delay to ensure the text is transmitted separately
|
||||||
|
|
||||||
|
// Send checksum (4 bytes)
|
||||||
|
uint8_t checksum_bytes[4];
|
||||||
|
checksum_bytes[0] = checksum & 0xFF;
|
||||||
|
checksum_bytes[1] = (checksum >> 8) & 0xFF;
|
||||||
|
checksum_bytes[2] = (checksum >> 16) & 0xFF;
|
||||||
|
checksum_bytes[3] = (checksum >> 24) & 0xFF;
|
||||||
|
fwrite(checksum_bytes, 1, 4, stdout);
|
||||||
|
sleep_ms(100); // Small delay to ensure the text is transmitted separately
|
||||||
|
// Send frame footer
|
||||||
|
fwrite(FRAME_FOOTER, 1, FRAME_MARKER_SIZE, stdout);
|
||||||
|
sleep_ms(100); // Small delay to ensure the text is transmitted separately
|
||||||
|
|
||||||
|
// Flush to ensure all binary data is sent
|
||||||
|
fflush(stdout);
|
||||||
|
|
||||||
|
// Make the end marker very distinctive with multiple newlines and unique pattern
|
||||||
|
sleep_ms(100);
|
||||||
|
printf("\n\n###BINARY_END###\n\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test function to verify binary data transmission
|
||||||
|
void test_binary_transfer() {
|
||||||
|
printf("Testing binary transfer...\n");
|
||||||
|
|
||||||
|
// Create a small test buffer
|
||||||
|
uint8_t test_data[16];
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
test_data[i] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send it as a frame
|
||||||
|
send_frame(test_data, sizeof(test_data));
|
||||||
|
|
||||||
|
printf("Binary test complete\n");
|
||||||
|
}
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
stdio_init_all();
|
stdio_init_all();
|
||||||
|
|
||||||
sleep_ms(4000);
|
printf("\n\n=== PicoIris Starting ===\n");
|
||||||
//printf("Hello World!");
|
sleep_ms(1000);
|
||||||
|
|
||||||
|
// Test binary transfer
|
||||||
|
test_binary_transfer();
|
||||||
|
sleep_ms(1000);
|
||||||
|
|
||||||
|
printf("Configuring Camera...\n");
|
||||||
|
|
||||||
OV2640 left_cam = OV2640(left_eye_config);
|
OV2640 left_cam = OV2640(left_eye_config);
|
||||||
left_cam.begin(DMA_IRQ_0);
|
left_cam.begin(DMA_IRQ_0);
|
||||||
//left_cam.capture_frame();
|
printf("Camera Configured!...\n");
|
||||||
//fwrite(left_cam.fb, 1, sizeof(left_cam.fb), stdout);
|
|
||||||
|
// Image size (160 x 120 x 2 bytes per pixel for RGB565)
|
||||||
|
const size_t frame_size = 160 * 120 * 2;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
//printf("Hello, world!\n");
|
// Capture a frame
|
||||||
//sleep_ms(1000);
|
printf("Attempting to capture frame...\n");
|
||||||
left_cam.capture_frame();
|
left_cam.capture_frame();
|
||||||
//fwrite(&left_cam.fb, 1, sizeof(left_cam.fb), stdout);
|
|
||||||
memset(&left_cam.fb, 0x00, sizeof(left_cam.fb));
|
// Once the frame is ready, send it over UART
|
||||||
sleep_ms(1000);
|
printf("Checking if frame is ready...\n");
|
||||||
}
|
printf("Frame ready, sending...\n");
|
||||||
}
|
send_frame(left_cam.fb, frame_size);
|
||||||
|
left_cam.resetFrameReady();
|
||||||
|
printf("Frame sent...\n");
|
||||||
|
|
||||||
|
|
||||||
|
// Small delay to allow processing time
|
||||||
|
printf("Waiting before next attempt...\n");
|
||||||
|
sleep_ms(3000); // Increased delay for debugging
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -100,6 +100,6 @@ void SCCB::writeList(const register_val_t *cfg,
|
|||||||
for (int i = 0; i < len; i++)
|
for (int i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
writeRegister(cfg[i].reg, cfg[i].value);
|
writeRegister(cfg[i].reg, cfg[i].value);
|
||||||
sleep_ms(2); // Some cams require, else lockup on init
|
sleep_ms(10); // Some cams require, else lockup on init
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -14,29 +14,31 @@
|
|||||||
#include "src/pio/image/image.pio.h"
|
#include "src/pio/image/image.pio.h"
|
||||||
|
|
||||||
|
|
||||||
static volatile bool frameReady = false; // true at end-of-frame
|
static volatile bool frameReady = false;
|
||||||
static volatile bool suspended = true;
|
static volatile bool suspended = true;
|
||||||
|
static volatile bool dma_busy = false;
|
||||||
void* pointer;
|
void* pointer;
|
||||||
|
|
||||||
static void iCap_vsync_irq(uint gpio, uint32_t events) {
|
// VSYNC interrupt handler
|
||||||
if (!suspended) {
|
void iCap_vsync_irq(uint gpio, uint32_t events) {
|
||||||
// Clear PIO FIFOs and start DMA transfer
|
if (!suspended && !dma_busy) {
|
||||||
pio_sm_clear_fifos(pio2, 0);
|
pio_sm_clear_fifos(pio2, 0); // Clear PIO FIFOs
|
||||||
dma_channel_start(0);
|
dma_busy = true; // Mark DMA as busy
|
||||||
|
dma_channel_start(0); // Start DMA transfer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void iCap_dma_finish_irq() {
|
// DMA completion interrupt handler
|
||||||
frameReady = true;
|
void iCap_dma_finish_irq() {
|
||||||
suspended = true;
|
frameReady = true; // Signal frame is ready
|
||||||
//printf("iCap_dma_finish_irq");
|
suspended = true; // Suspend further captures
|
||||||
dma_channel_set_write_addr(0, (uint8_t *)(pointer), false);
|
dma_busy = false; // DMA is no longer busy
|
||||||
printf("0x%\n", (uintptr_t)pointer);
|
dma_channel_set_write_addr(0, pointer, false); // Reset write address
|
||||||
dma_hw->ints0 = 1u << 0;
|
dma_hw->ints0 = 1u << 0; // Clear DMA interrupt flag
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Stolen from Adafruit repo (Check if correct)
|
// TODO: Stolen from Adafruit repo (Check if correct)
|
||||||
|
|
||||||
|
|
||||||
// PIO code in this table is modified at runtime so that PCLK is
|
// PIO code in this table is modified at runtime so that PCLK is
|
||||||
// configurable (rather than fixed GP## or PIN offset). Data pins
|
// configurable (rather than fixed GP## or PIN offset). Data pins
|
||||||
// must be contiguous but are otherwise configurable.
|
// must be contiguous but are otherwise configurable.
|
||||||
@ -605,14 +607,16 @@ register_val_t OV2640_qqvga[] = {
|
|||||||
// };
|
// };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OV2640::OV2640(camera_config_t config)
|
OV2640::OV2640(camera_config_t config)
|
||||||
{
|
{
|
||||||
this->config = config;
|
this->config = config;
|
||||||
memset(&this->fb, 0x00, sizeof(this->fb));
|
memset(&this->fb, 0x00, sizeof(this->fb));
|
||||||
pointer = &this->fb;
|
pointer = &this->fb;
|
||||||
//this->fb = image_buf;
|
//this->fb = image_buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Pin interrupt on VSYNC calls this to start DMA transfer (unless suspended).
|
// Pin interrupt on VSYNC calls this to start DMA transfer (unless suspended).
|
||||||
// static void vsync_irq(uint gpio, uint32_t events)
|
// static void vsync_irq(uint gpio, uint32_t events)
|
||||||
// {
|
// {
|
||||||
@ -642,173 +646,134 @@ int OV2640::begin(int dma_irq)
|
|||||||
pwm_set_gpio_level(this->config.pin_xclk, 4);
|
pwm_set_gpio_level(this->config.pin_xclk, 4);
|
||||||
pwm_set_enabled(slice_num, true);
|
pwm_set_enabled(slice_num, true);
|
||||||
|
|
||||||
|
printf("PWM clock setup for XCLK complete (9.375 MHz)\n");
|
||||||
|
|
||||||
// Init SCCB
|
// Init SCCB
|
||||||
//prtintf("Init SCCB\n");
|
printf("Initializing SCCB on SDA=%d, SCL=%d...\n",
|
||||||
|
this->config.pin_sccb_sda, this->config.pin_sccb_scl);
|
||||||
this->sccb = SCCB(this->config.pin_sccb_sda, this->config.pin_sccb_scl);
|
this->sccb = SCCB(this->config.pin_sccb_sda, this->config.pin_sccb_scl);
|
||||||
this->sccb.begin(this->config.sccb_ctrl);
|
this->sccb.begin(this->config.sccb_ctrl);
|
||||||
//prtintf("Inited SCCB\n");
|
printf("SCCB initialization complete\n");
|
||||||
|
|
||||||
// ENABLE AND/OR RESET CAMERA --------------------------------------------
|
// ENABLE AND/OR RESET CAMERA --------------------------------------------
|
||||||
// Unsure of camera startup time from beginning of input clock.
|
// Unsure of camera startup time from beginning of input clock.
|
||||||
// Let's guess it's similar to tS:REG (300 ms) from datasheet.
|
// Let's guess it's similar to tS:REG (300 ms) from datasheet.
|
||||||
|
printf("Waiting for camera to stabilize...\n");
|
||||||
sleep_ms(300);
|
sleep_ms(300);
|
||||||
|
|
||||||
// Perform a soft reset (we dont wanna waste GPIO on wiring in reset pins)
|
// Perform a soft reset
|
||||||
|
printf("Sending camera reset command...\n");
|
||||||
this->sccb.writeRegister(OV2640_REG_RA_DLMT, OV2640_RA_DLMT_SENSOR); // Bank select 1
|
this->sccb.writeRegister(OV2640_REG_RA_DLMT, OV2640_RA_DLMT_SENSOR); // Bank select 1
|
||||||
this->sccb.writeRegister(OV2640_REG1_COM7, OV2640_COM7_SRST); // System reset
|
this->sccb.writeRegister(OV2640_REG1_COM7, OV2640_COM7_SRST); // System reset
|
||||||
sleep_ms(300); // Datasheet: tS:RESET = 1 ms
|
sleep_ms(1000); // Datasheet: tS:RESET = 1 ms
|
||||||
|
printf("Camera reset complete\n");
|
||||||
|
|
||||||
// Init main camera settings
|
printf("Initializing camera registers...\n");
|
||||||
//printf("Stolemjpg init\n");
|
|
||||||
//this->sccb.writeList(OV2640_stolem_jpeg_init, sizeof(OV2640_stolem_jpeg_init)/sizeof(OV2640_stolem_jpeg_init[0]));
|
|
||||||
//printf("Stolemjpg init DONE\n");
|
|
||||||
this->sccb.writeList(OV2640_init, sizeof(OV2640_init)/sizeof(OV2640_init[0]));
|
this->sccb.writeList(OV2640_init, sizeof(OV2640_init)/sizeof(OV2640_init[0]));
|
||||||
this->sccb.writeList(OV2640_qqvga, sizeof(OV2640_qqvga)/sizeof(OV2640_qqvga[0]));
|
this->sccb.writeList(OV2640_qqvga, sizeof(OV2640_qqvga)/sizeof(OV2640_qqvga[0]));
|
||||||
this->sccb.writeList(OV2640_rgb, sizeof(OV2640_rgb)/sizeof(OV2640_rgb[0]));
|
this->sccb.writeList(OV2640_rgb, sizeof(OV2640_rgb)/sizeof(OV2640_rgb[0]));
|
||||||
//this->sccb.writeList(OV2640_jpeg, sizeof(OV2640_jpeg)/sizeof(OV2640_jpeg[0]));
|
|
||||||
//this->sccb.writeRegister(0xd3, 0x0f);
|
// // Enable color bar test pattern for debugging
|
||||||
|
//printf("Enabling color bar test pattern...\n");
|
||||||
|
//this->sccb.writeRegister(OV2640_REG_RA_DLMT, OV2640_RA_DLMT_SENSOR);
|
||||||
|
//this->sccb.writeRegister(OV2640_REG1_COM7, OV2640_COM7_COLORBAR); // Output test pattern
|
||||||
|
//printf("Test pattern enabled\n");
|
||||||
|
|
||||||
|
// GPIO pin setup
|
||||||
// this->set_framesize();
|
printf("Setting up GPIO pins for camera data...\n");
|
||||||
// sleep_ms(10);
|
|
||||||
// this->sccb.writeList(OV2640_jpeg, sizeof(OV2640_jpeg)/sizeof(OV2640_jpeg[0]));
|
|
||||||
|
|
||||||
//this->set_gainceiling(GAINCEILING_2X);
|
|
||||||
//sleep_ms(10);
|
|
||||||
//this->set_bpc(false);
|
|
||||||
//sleep_ms(10);
|
|
||||||
//this->set_wpc(true);
|
|
||||||
//sleep_ms(10);
|
|
||||||
//this->set_lenc(true);
|
|
||||||
//sleep_ms(10);
|
|
||||||
// this->set_quality(5);
|
|
||||||
// sleep_ms(10);
|
|
||||||
// this->sccb.writeList(OV2640_jpeg, sizeof(OV2640_jpeg)/sizeof(OV2640_jpeg[0]));
|
|
||||||
|
|
||||||
// this->set_quality(5);
|
|
||||||
|
|
||||||
// //prtintf("Write list of init\n");
|
|
||||||
// // sleep_ms(10);
|
|
||||||
// // this->sccb.writeRegister(OV2640_REG_RA_DLMT, OV2640_RA_DLMT_DSP);
|
|
||||||
// sleep_ms(10);
|
|
||||||
// //this->sccb.writeRegister(0xd3, 0x05);
|
|
||||||
// sleep_ms(10);
|
|
||||||
|
|
||||||
|
|
||||||
// // for (int i=0; i<5; i++) {
|
|
||||||
// // this->sccb.writeRegister(0xff, 0x00);
|
|
||||||
// // this->sccb.writeRegister(special_effects_regs[0][i], special_effects_regs[3][i]);
|
|
||||||
// // }
|
|
||||||
|
|
||||||
// this->sccb.writeRegister(0xff, 0x00);
|
|
||||||
// this->sccb.writeRegister(0xd3, 0x05); // try 0x80 next
|
|
||||||
|
|
||||||
|
|
||||||
//prtintf("Gpio init\n");
|
|
||||||
gpio_init(this->config.pin_vsync);
|
gpio_init(this->config.pin_vsync);
|
||||||
gpio_set_dir(this->config.pin_vsync, GPIO_IN);
|
gpio_set_dir(this->config.pin_vsync, GPIO_IN);
|
||||||
gpio_pull_down(this->config.pin_vsync);
|
gpio_pull_down(this->config.pin_vsync);
|
||||||
for (uint8_t i = 0; i < 10; i++)
|
|
||||||
{
|
|
||||||
gpio_init(this->config.pin_data_base + i);
|
|
||||||
gpio_set_dir(this->config.pin_data_base + i, GPIO_IN);
|
|
||||||
//gpio_pull_down(this->config.pin_data_base + i);
|
|
||||||
}
|
|
||||||
//prtintf("Gpio init done\n");
|
|
||||||
|
|
||||||
// PIO periph to use is currently specified by the user in the arch struct,
|
|
||||||
// but I suppose this could be written to use whatever PIO has resources.
|
|
||||||
|
|
||||||
// Mask the GPIO pin used PCLK into the PIO opcodes -- see notes at top
|
gpio_init(this->config.pin_data_9 );
|
||||||
// TODO: check if this is correct (code made for rp2040 not rp2350 so it might differ)
|
gpio_set_dir(this->config.pin_data_9, GPIO_IN);
|
||||||
//prtintf("PIO init\n");
|
gpio_init(this->config.pin_data_8 );
|
||||||
//! Temporary replace with the image.pio from known working library rp2040_ov2640
|
gpio_set_dir(this->config.pin_data_8, GPIO_IN);
|
||||||
/*capture_pio_opcodes[0] |= (this->config.pin_href & 31);
|
gpio_init(this->config.pin_data_7 );
|
||||||
capture_pio_opcodes[1] |= (this->config.pin_pclk & 31);
|
gpio_set_dir(this->config.pin_data_7, GPIO_IN);
|
||||||
capture_pio_opcodes[3] |= (this->config.pin_pclk & 31);
|
gpio_init(this->config.pin_data_6 );
|
||||||
|
gpio_set_dir(this->config.pin_data_6, GPIO_IN);
|
||||||
|
gpio_init(this->config.pin_data_5 );
|
||||||
|
gpio_set_dir(this->config.pin_data_5, GPIO_IN);
|
||||||
|
gpio_init(this->config.pin_data_4 );
|
||||||
|
gpio_set_dir(this->config.pin_data_4, GPIO_IN);
|
||||||
|
gpio_init(this->config.pin_data_3 );
|
||||||
|
gpio_set_dir(this->config.pin_data_3, GPIO_IN);
|
||||||
|
gpio_init(this->config.pin_data_2 );
|
||||||
|
gpio_set_dir(this->config.pin_data_2, GPIO_IN);
|
||||||
|
|
||||||
uint offset = pio_add_program(pio2, &cap_pio_program);
|
|
||||||
this->sm = pio_claim_unused_sm(pio2, true); // 0-3
|
|
||||||
sm = this->sm;
|
|
||||||
pio_sm_set_consecutive_pindirs(pio2, this->sm, this->config.pin_data_base, 8, false);
|
|
||||||
|
|
||||||
pio_sm_config c = pio_get_default_sm_config();
|
|
||||||
c.pinctrl = 0; // SDK fails to set this
|
|
||||||
sm_config_set_wrap(&c, offset, offset + cap_pio_program.length - 1);
|
|
||||||
|
|
||||||
sm_config_set_in_pins(&c, this->config.pin_data_base);
|
|
||||||
sm_config_set_in_shift(&c, false, true, 16); // 1 pixel (16b) ISR to FIFO
|
|
||||||
sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_RX);
|
|
||||||
|
|
||||||
pio_sm_init(pio2, this->sm, offset, &c);
|
|
||||||
pio_sm_set_enabled(pio2, this->sm, true);
|
|
||||||
//prtintf("PIO init done\n");
|
|
||||||
|
|
||||||
// SET UP DMA ------------------------------------------------------------
|
|
||||||
//prtintf("DMA init\n");
|
|
||||||
this->dma_channel = dma_claim_unused_channel(false); // don't panic
|
|
||||||
dma_channel = this->dma_channel;
|
|
||||||
this->dma_config = dma_channel_get_default_config(this->dma_channel);
|
|
||||||
channel_config_set_transfer_data_size(&this->dma_config, DMA_SIZE_16);
|
|
||||||
channel_config_set_read_increment(&this->dma_config, false);
|
|
||||||
channel_config_set_write_increment(&this->dma_config, true);
|
|
||||||
channel_config_set_bswap(&this->dma_config, true);
|
|
||||||
|
|
||||||
// Set PIO RX as DMA trigger. Input shift register saturates at 16 bits
|
printf("GPIO initialization complete\n");
|
||||||
// (1 pixel), configured in data size above and in PIO setup elsewhere.
|
|
||||||
channel_config_set_dreq(&this->dma_config,
|
|
||||||
pio_get_dreq(pio2, this->sm, false));
|
|
||||||
// Set up baseline DMA configuration...it's initially lacking destination
|
|
||||||
// and count, set later (dma_change()) after resolution is known. DMA
|
|
||||||
// isn't started until later, and is triggered in the vsync interrupt.
|
|
||||||
dma_channel_configure(this->dma_channel, &this->dma_config, NULL,
|
|
||||||
&pio2->rxf[this->sm], 0, false);
|
|
||||||
|
|
||||||
// Set up end-of-DMA interrupt
|
|
||||||
dma_channel_set_irq0_enabled(this->dma_channel, true);
|
|
||||||
//prtintf("DMA init done\n");
|
|
||||||
//? setup diffrent handlers for each cam???
|
|
||||||
//? check with a button or smth if this fires all events or only one
|
|
||||||
//? cuz then I would be able to do dma_finish_irq_cam1, dma_finish_irq_cam2, dma_finish_irq_cam3
|
|
||||||
//? That would have hardcoded values for the buffers
|
|
||||||
irq_set_exclusive_handler(dma_irq, dma_finish_irq);
|
|
||||||
irq_set_enabled(dma_irq, true);
|
|
||||||
|
|
||||||
// SET UP VSYNC INTERRUPT ------------------------------------------------
|
|
||||||
//? This also could be redone with hardcoded values
|
|
||||||
gpio_set_irq_enabled_with_callback(this->config.pin_vsync, GPIO_IRQ_EDGE_RISE, true,
|
|
||||||
&vsync_irq);*/
|
|
||||||
|
|
||||||
|
// PIO setup for image capture
|
||||||
|
printf("Setting up PIO for image capture...\n");
|
||||||
uint offset = pio_add_program(pio2, &image_program);
|
uint offset = pio_add_program(pio2, &image_program);
|
||||||
image_program_init(pio2, 0, offset, this->config.pin_data_base);
|
|
||||||
|
|
||||||
//printf("IRQ init done\n");
|
image_program_init(pio2, 0, offset, this->config.pin_data_9);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_data_8);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_data_7);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_data_6);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_data_5);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_data_4);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_data_3);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_data_2);
|
||||||
|
image_program_init(pio2, 0, offset, this->config.pin_hsync);
|
||||||
|
|
||||||
//printf("config done");
|
printf("PIO setup complete\n");
|
||||||
|
|
||||||
|
// DMA setup
|
||||||
|
printf("Configuring DMA for image capture...\n");
|
||||||
dma_channel_config c = dma_channel_get_default_config(0);
|
dma_channel_config c = dma_channel_get_default_config(0);
|
||||||
channel_config_set_transfer_data_size(&c, DMA_SIZE_16);
|
channel_config_set_transfer_data_size(&c, DMA_SIZE_16);
|
||||||
channel_config_set_read_increment(&c, false);
|
channel_config_set_read_increment(&c, false);
|
||||||
channel_config_set_write_increment(&c, true);
|
channel_config_set_write_increment(&c, true);
|
||||||
channel_config_set_bswap(&c, true);
|
channel_config_set_bswap(&c, true);
|
||||||
// Set PIO RX as DMA trigger. Input shift register saturates at 16 bits
|
channel_config_set_dreq(&c, pio_get_dreq(pio2, 0, false));
|
||||||
// (1 pixel), configured in data size above and in PIO setup elsewhere.
|
dma_channel_configure(0, &c, this->fb, &pio2->rxf[0], 160 * 120, false);
|
||||||
channel_config_set_dreq(&c,
|
printf("DMA configuration complete\n");
|
||||||
pio_get_dreq(pio2, 0, false));
|
|
||||||
// Set up baseline DMA configuration...it's initially lacking destination
|
// Set up DMA interrupt
|
||||||
// and count, set later (dma_change()) after resolution is known. DMA
|
printf("Setting up DMA interrupt...\n");
|
||||||
// isn't started until later, and is triggered in the vsync interrupt.
|
|
||||||
dma_channel_configure(0, &c, &this->fb,
|
|
||||||
&pio2->rxf[0], sizeof(this->fb), false);
|
|
||||||
|
|
||||||
// Set up end-of-DMA interrupt
|
|
||||||
dma_channel_set_irq0_enabled(0, true);
|
dma_channel_set_irq0_enabled(0, true);
|
||||||
irq_set_exclusive_handler(DMA_IRQ_0, iCap_dma_finish_irq);
|
irq_set_exclusive_handler(DMA_IRQ_0, iCap_dma_finish_irq); // Register DMA handler
|
||||||
irq_set_enabled(DMA_IRQ_0, true);
|
irq_set_enabled(DMA_IRQ_0, true);
|
||||||
|
printf("DMA interrupt setup complete\n");
|
||||||
// SET UP VSYNC INTERRUPT ------------------------------------------------
|
|
||||||
|
// Set up VSYNC interrupt
|
||||||
|
printf("Setting up VSYNC interrupt on pin %d...\n", this->config.pin_vsync);
|
||||||
gpio_set_irq_enabled_with_callback(this->config.pin_vsync, GPIO_IRQ_EDGE_RISE, true,
|
gpio_set_irq_enabled_with_callback(this->config.pin_vsync, GPIO_IRQ_EDGE_RISE, true,
|
||||||
&iCap_vsync_irq);
|
&iCap_vsync_irq); // Register VSYNC handler
|
||||||
|
printf("VSYNC interrupt setup complete\n");
|
||||||
|
|
||||||
|
// Test if VSYNC is toggling
|
||||||
|
printf("Checking if VSYNC is toggling...\n");
|
||||||
|
bool initial_vsync = gpio_get(this->config.pin_vsync);
|
||||||
|
uint32_t start_time = time_us_32();
|
||||||
|
bool vsync_changed = false;
|
||||||
|
while ((time_us_32() - start_time) < 1000000) { // 1 second timeout
|
||||||
|
bool current_vsync = gpio_get(this->config.pin_vsync);
|
||||||
|
if (current_vsync != initial_vsync) {
|
||||||
|
vsync_changed = true;
|
||||||
|
printf("VSYNC toggled from %d to %d\n", initial_vsync, current_vsync);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
sleep_ms(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!vsync_changed) {
|
||||||
|
printf("WARNING: VSYNC signal not detected during initialization\n");
|
||||||
|
} else {
|
||||||
|
printf("VSYNC signal detected successfully\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Camera initialization complete\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -878,36 +843,78 @@ void OV2640::set_lenc(bool enable) {
|
|||||||
this->sccb.writeMaskRegister(0xC3, 1, 1, enable?1:0);
|
this->sccb.writeMaskRegister(0xC3, 1, 1, enable?1:0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool OV2640::isFrameReady() const {
|
||||||
void OV2640::capture_frame() {
|
return frameReady;
|
||||||
suspended = false;
|
|
||||||
while(!frameReady);
|
|
||||||
return;
|
|
||||||
// dma_channel_config c = dma_channel_get_default_config(0);
|
|
||||||
// channel_config_set_read_increment(&c, false);
|
|
||||||
// channel_config_set_write_increment(&c, true);
|
|
||||||
// channel_config_set_dreq(&c, pio_get_dreq(pio2, 0, false));
|
|
||||||
// channel_config_set_transfer_data_size(&c, DMA_SIZE_16);
|
|
||||||
|
|
||||||
// dma_channel_configure(
|
|
||||||
// 0, &c,
|
|
||||||
// &this->fb,
|
|
||||||
// &pio2->rxf[0],
|
|
||||||
// sizeof(this->fb),
|
|
||||||
// false
|
|
||||||
// );
|
|
||||||
|
|
||||||
// // Wait for vsync rising edge to start frame
|
|
||||||
// ////prtintf("pin_vsync) == true\n");
|
|
||||||
// while (gpio_get(this->config.pin_vsync) == true);
|
|
||||||
// ////prtintf("pin_vsync) == false\n");
|
|
||||||
// while (gpio_get(this->config.pin_vsync) == false);
|
|
||||||
// ////prtintf("after while loops\n");
|
|
||||||
|
|
||||||
// dma_channel_start(0);
|
|
||||||
// dma_channel_wait_for_finish_blocking(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OV2640::resetFrameReady() {
|
||||||
|
frameReady = false;
|
||||||
|
}
|
||||||
|
void OV2640::capture_frame() {
|
||||||
|
// Reset frame ready flag before starting capture
|
||||||
|
frameReady = false;
|
||||||
|
|
||||||
|
// Allow captures to proceed
|
||||||
|
suspended = false;
|
||||||
|
|
||||||
|
// Wait for frame with timeout to prevent infinite loops
|
||||||
|
uint32_t start_time = time_us_32();
|
||||||
|
uint32_t timeout_us = 2000000; // 2 second timeout
|
||||||
|
|
||||||
|
while(!frameReady) {
|
||||||
|
// Check for timeout
|
||||||
|
if ((time_us_32() - start_time) > timeout_us) {
|
||||||
|
printf("Frame capture timeout! Sending incomplete frame...\n");
|
||||||
|
// Reset DMA in case it's stuck
|
||||||
|
dma_channel_abort(0);
|
||||||
|
dma_channel_set_write_addr(0, pointer, false);
|
||||||
|
dma_busy = false;
|
||||||
|
suspended = true;
|
||||||
|
return; // Exit without waiting for frameReady
|
||||||
|
}
|
||||||
|
// Small yield to avoid tight loop
|
||||||
|
sleep_us(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Frame is ready, no need to do anything else
|
||||||
|
// The DMA handler has already set frameReady = true
|
||||||
|
printf("Frame captured successfully\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
// void OV2640::set_resolution(uint16_t width, uint16_t height) {
|
||||||
|
// // Set resolution registers
|
||||||
|
// this->sccb.writeRegister(OV2640_REG_RA_DLMT, OV2640_RA_DLMT_DSP); // DSP bank select 0
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_HSIZE8, (width >> 3) & 0xFF); // HSIZE high bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_VSIZE8, (height >> 3) & 0xFF); // VSIZE high bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_HSIZE, width & 0xFF); // HSIZE low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_VSIZE, height & 0xFF); // VSIZE low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_ZMOW, width & 0xFF); // OUTW low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_ZMOH, height & 0xFF); // OUTH low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_ZMHH, ((height >> 8) & 0x04) | ((width >> 8) & 0x03)); // OUTW/H high bits
|
||||||
|
// printf("Resolution set to %dx%d\n", width, height);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// void OV2640::set_resolution_vga() {
|
||||||
|
// // Set resolution to VGA (640x480)
|
||||||
|
// uint16_t width = 640;
|
||||||
|
// uint16_t height = 480;
|
||||||
|
|
||||||
|
// // Adjust frame buffer size for VGA resolution
|
||||||
|
// this->fb = new uint8_t[width * height * 2]; // Assuming 2 bytes per pixel (RGB565)
|
||||||
|
// pointer = this->fb;
|
||||||
|
|
||||||
|
// // Set resolution registers
|
||||||
|
// this->sccb.writeRegister(OV2640_REG_RA_DLMT, OV2640_RA_DLMT_DSP); // DSP bank select 0
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_HSIZE8, (width >> 3) & 0xFF); // HSIZE high bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_VSIZE8, (height >> 3) & 0xFF); // VSIZE high bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_HSIZE, width & 0xFF); // HSIZE low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_VSIZE, height & 0xFF); // VSIZE low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_ZMOW, width & 0xFF); // OUTW low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_ZMOH, height & 0xFF); // OUTH low bits
|
||||||
|
// this->sccb.writeRegister(OV2640_REG0_ZMHH, ((height >> 8) & 0x04) | ((width >> 8) & 0x03)); // OUTW/H high bits
|
||||||
|
|
||||||
|
// printf("Resolution set to VGA (640x480)\n");
|
||||||
|
// }
|
||||||
|
|
||||||
//! https://forums.raspberrypi.com/viewtopic.php?t=339299
|
//! https://forums.raspberrypi.com/viewtopic.php?t=339299
|
||||||
// TODO: change to switches and experiment with state machines, check if I can kinda reserve dma's so 0-3 would indicate state machines 0-3
|
// TODO: change to switches and experiment with state machines, check if I can kinda reserve dma's so 0-3 would indicate state machines 0-3
|
||||||
|
|||||||
@ -9,8 +9,16 @@ typedef struct {
|
|||||||
int pin_xclk; /*!< GPIO pin for camera XCLK line */ //? in theory could be shared or perhaps ommited?
|
int pin_xclk; /*!< GPIO pin for camera XCLK line */ //? in theory could be shared or perhaps ommited?
|
||||||
int pin_sccb_sda; /*!< GPIO pin for camera SDA line */
|
int pin_sccb_sda; /*!< GPIO pin for camera SDA line */
|
||||||
int pin_sccb_scl; /*!< GPIO pin for camera SCL line */
|
int pin_sccb_scl; /*!< GPIO pin for camera SCL line */
|
||||||
int pin_data_base; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
int pin_data_9; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
|
int pin_data_8; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
|
int pin_data_7; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
|
int pin_data_6; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
|
int pin_data_5; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
|
int pin_data_4; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
|
int pin_data_3; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
|
int pin_data_2; /*!< this pin + 9 consecutive will be used D0-D7 PCLK HREF */
|
||||||
int pin_vsync; /*!< GPIO pin for camera VSYNC line */
|
int pin_vsync; /*!< GPIO pin for camera VSYNC line */
|
||||||
|
int pin_hsync; /*!< GPIO pin for camera VSYNC line */
|
||||||
int xclk_freq_hz; /*!< Frequency of XCLK signal, in Hz. */ //! Figure out the highest it can go to
|
int xclk_freq_hz; /*!< Frequency of XCLK signal, in Hz. */ //! Figure out the highest it can go to
|
||||||
uint8_t sccb_ctrl; /* Select i2c controller ctrl: 0 - i2c0, 1 - i2c1, 2 - pio0, 3 - pio1, 4 - pio2 */
|
uint8_t sccb_ctrl; /* Select i2c controller ctrl: 0 - i2c0, 1 - i2c1, 2 - pio0, 3 - pio1, 4 - pio2 */
|
||||||
} camera_config_t;
|
} camera_config_t;
|
||||||
@ -34,6 +42,11 @@ class OV2640 {
|
|||||||
public:
|
public:
|
||||||
OV2640(camera_config_t config);
|
OV2640(camera_config_t config);
|
||||||
~OV2640();
|
~OV2640();
|
||||||
|
// Check if a new frame is ready
|
||||||
|
bool isFrameReady() const;
|
||||||
|
|
||||||
|
// Reset the frame ready flag after processing
|
||||||
|
void resetFrameReady();
|
||||||
|
|
||||||
int begin(int dma_irq);
|
int begin(int dma_irq);
|
||||||
void set_quality(int quality);
|
void set_quality(int quality);
|
||||||
@ -44,7 +57,7 @@ public:
|
|||||||
void set_framesize();
|
void set_framesize();
|
||||||
void capture_frame();
|
void capture_frame();
|
||||||
|
|
||||||
uint8_t fb[(352*288)];
|
uint8_t* fb; // Changed from fixed array to pointer
|
||||||
camera_config_t config;
|
camera_config_t config;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
0
src/ov2640/image_pio_wrapper.cpp
Normal file
0
src/ov2640/image_pio_wrapper.cpp
Normal file
@ -60,5 +60,7 @@ void image_program_init(PIO pio, uint sm, uint offset, uint pin_base) {
|
|||||||
pio_sm_set_enabled(pio, sm, true);
|
pio_sm_set_enabled(pio, sm, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// New function to initialize PIO with camera configuration pins - declaration only
|
||||||
|
// In image.pio.h, replace the implementation with a declaration
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user