Skip to content

Commit

Permalink
Gr40 port (#108)
Browse files Browse the repository at this point in the history
* Port of gr-digitizer to GNU Radio 4.0

Make code compile with GR 4.0, latest ROOT and latest Picoscope drivers. Some tests don't pass atm.

open issues/improvements to be followed-up later:
#110
#111
#112
#113 
#114 
#115 
#116 

Co-authored-by: Alexander Krimm <[email protected]>
  • Loading branch information
frankosterfeld and wirew0rm authored Dec 2, 2022
1 parent d1ce91d commit 9c77498
Show file tree
Hide file tree
Showing 646 changed files with 20,080 additions and 222,127 deletions.
104 changes: 104 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlinesLeft: true
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: true
IndentBraces: false
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 90
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeCategories:
- Regex: '^"(gnuradio)/'
Priority: 1
- Regex: '^<(gnuradio)/'
Priority: 2
- Regex: '^<(boost)/'
Priority: 98
- Regex: '^<[a-z]*>$'
Priority: 99
- Regex: '^".*"$'
Priority: 0
- Regex: '.*'
Priority: 10

IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: c++20
TabWidth: 8
UseTab: Never
72 changes: 72 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: build and run tests
on: [pull_request]

jobs:
linux-docker:
runs-on: ubuntu-20.04
# The GH default is 360 minutes (it's also the max as of Feb-2021). However we should fail sooner.
# The only reason to exceed this time is if a test hangs.
timeout-minutes: 120
strategy:
# Enabling fail-fast would kill all Dockers if one of them fails. We want maximum output.
fail-fast: false
matrix:
# For every distro we want to test here, add one key 'distro' with a descriptive name, and one key
# 'containerId' with the name of the container (i.e., what you want to docker-pull)
include:
- distro: 'Ubuntu 22.04'
containerId: 'mormj/gr4-runtime-docker:ubuntu-22.04'
name: ${{ matrix.distro }}
container:
image: ${{ matrix.containerId }}
volumes:
- build_data:/build
options: --cpus 2
steps:
- uses: actions/checkout@v2
name: Checkout Project
- name: Install picoscope
run: |
su -c "apt-get update"
su -c "apt-get --yes install wget gnupg2 apt-utils udev"
# https://www.picotech.com/downloads/linux
wget -qO - https://labs.picotech.com/Release.gpg.key | su -c "apt-key add -"
su -c "bash -c 'echo \"deb https://labs.picotech.com/rc/picoscope7/debian/ picoscope main\" >/etc/apt/sources.list.d/picoscope7.list'"
su -c "apt-get update"
su -c "apt-get --yes install libps3000a libps4000a libps6000 libps6000a" || true # ignore udev errors in post install because of udev in container
- name: Install root
run: |
su -c "apt-get update"
# https://root.cern/install/dependencies/, removed X dependencies: libx11-dev libxpm-dev libxft-dev libxext-dev
su -c "apt-get --yes install dpkg-dev cmake g++ gcc binutils python3 libssl-dev" || true
# https://root.cern/install/#download-a-pre-compiled-binary-distribution
mkdir .local
cd .local
wget -qO - https://root.cern/download/root_v6.26.10.Linux-ubuntu22-x86_64-gcc11.3.tar.gz | tar -xzv
pwd
- name: Install gr-digitizer dependencies
run: |
su -c "apt-get update"
su -c "apt-get --yes install libboost-dev libboost-chrono-dev libboost-thread-dev libsndfile1-dev libcppunit-dev" || true
- name: Meson Setup
shell: bash
run: |
source .local/root/bin/thisroot.sh
meson setup build --buildtype=debugoptimized -Dlibpicoscope_prefix=/opt/picoscope -Dlibroot_prefix=./.local/root
- name: Make
shell: bash
run: |
source .local/root/bin/thisroot.sh
cd build
ninja
- name: Make Test
shell: bash
run: |
source .local/root/bin/thisroot.sh
cd build
ninja test
- uses: actions/upload-artifact@v1
if: failure()
with:
name: Linux_Meson_Testlog
path: build/meson-logs/testlog.txt
21 changes: 19 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
# Annoying OS Generated Files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.directory
*~

# IDE files
.vs/
.idea/
.vscode/
.cache
language.settings.xml
**/**.swp

/Digitizer*tar.gz
/DigitizerDependencies*tar.gz
# python venv files
virtualenv/
Loading

0 comments on commit 9c77498

Please sign in to comment.