Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GUI v6 #1192

Merged
merged 73 commits into from
Sep 22, 2023
Merged

GUI v6 #1192

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
387bdcd
Update FilterUI and ConsoleLog popups to be not resizable
retiutut Jul 12, 2023
3b37855
Update version and changelog to v6.0.0
retiutut Jul 12, 2023
13bab83
Update check for Windows 11 OS #1077
retiutut Jul 25, 2023
50a67ec
Update Appveyor and Travis CI/CD to Processing 4
retiutut Jul 12, 2023
e5279e8
Update included Processing4 processing-java shell script for MacOS CI/CD
retiutut Jul 12, 2023
2e85631
Add MacOS Build GIthub Action
retiutut Jul 13, 2023
5900604
Update to BrainFlow 5.8.2 and update Mac plist
retiutut Jul 14, 2023
c803044
Merge pull request #1167 from OpenBCI/update-check-for-windows11
retiutut Jul 26, 2023
d8e8b04
Update DMG build settings for MacOS Build
retiutut Jul 31, 2023
60ef19b
Add Mac and Windows Build + Deploy Github Actions (+2 squashed commit)
retiutut Jul 26, 2023
d38587b
Add Linux Github Action for Build + Deploy
retiutut Jul 27, 2023
55b5f88
Remove Travis and Appveyor CI/CD
retiutut Jul 28, 2023
d4aae02
Add Encrypted MacOS Certificate as Github Secret
retiutut Jul 31, 2023
bfa69a3
Remove checks for workflow dispatch on deploy to S3 for all OS
retiutut Jul 31, 2023
e4f18b5
Update Actions for all OS to restructure S3 bucket deployment
retiutut Aug 1, 2023
1ea6ff2
Merge pull request #1166 from OpenBCI/processing4-july-2023
retiutut Aug 1, 2023
4303a75
Add W_Marker widget and a few base methods
retiutut Aug 2, 2023
13de3f7
Add insertMarker and getMarkerChannel methods to all relevant boards
retiutut Aug 3, 2023
482195f
Add time series to Marker Widget
retiutut Aug 4, 2023
0de3b4d
Fix non final variable due to scope in Marker widget
retiutut Aug 4, 2023
2c034cd
Add ability to playback marker data in Marker Widget
retiutut Aug 4, 2023
9e96344
Add more Marker keyboard shortcuts and remove s, b, and d shortcuts
retiutut Aug 4, 2023
bc8e2c9
Add Marker data type to networking output
retiutut Aug 4, 2023
e2f3411
Add brainflow libs outside jar
Andrey1994 Aug 7, 2023
08e9ef5
Update marker widget button positions using Grid class
retiutut Aug 10, 2023
f42f970
Add test for receiving Markers over UDP
retiutut Aug 14, 2023
690c0d8
Remove sampling rate check in sendMarkerData in Networking
retiutut Aug 14, 2023
05371a9
Add Marker Widget to Session settings and account for UI overlapping
retiutut Aug 14, 2023
3deb1a3
Add udp marker receiver to Marker widget
retiutut Aug 14, 2023
9eaf884
Update Marker Widget UI to improve UDP receiver textfield appearance
retiutut Aug 15, 2023
ac27e49
Update Marker Widget Vert Scale UI and show all 8 buttons always
retiutut Aug 15, 2023
254a705
Fix non-final variable in local scope in Marker Widget createTextfield
retiutut Aug 15, 2023
78eff9d
Update version to v6.0.0-alpha.1 and update changelog
retiutut Aug 15, 2023
d9b1221
Update line endings for certain files
retiutut Aug 16, 2023
2e7492e
Remove unnecessary comments left in from debugging
retiutut Aug 16, 2023
c5a35e9
Merge pull request #1175 from OpenBCI/libs
retiutut Aug 27, 2023
7987509
Add autoscale option to marker widget
retiutut Aug 27, 2023
8eabc56
Merge pull request #1174 from OpenBCI/software-marker-widget
retiutut Aug 28, 2023
8efcad5
Add channel labels for Cyton Digital Channels in GUI CSV and also lab…
retiutut Sep 1, 2023
dc5ea59
Merge pull request #1182 from OpenBCI/label-cyton-csv-digital-channels
retiutut Sep 1, 2023
0734561
Add Focus and BandPower data processing in background
retiutut Aug 28, 2023
a4db084
Add EmgJoystick data processing in background
retiutut Aug 28, 2023
1d6d62d
Refactor PulseSensor widget and process data in the background if ins…
retiutut Aug 28, 2023
2ba150a
Add accumulated data queues to background processing when Networking …
retiutut Aug 29, 2023
ef34af7
Add Accelerometer and Analog read data to networking streams while pr…
retiutut Aug 30, 2023
40856e2
Add NetworkStreamOut.pde to reduce code in W_Networking.pde
retiutut Aug 30, 2023
b1bfdca
Update to v6.0.0-alpha.2 and update changelog
retiutut Aug 30, 2023
5a73373
Refactor W_BandPower.pde and fix line endings
retiutut Aug 30, 2023
1d57505
Update Cyton Digital networking output to send integers
retiutut Aug 30, 2023
df7f022
Fix bug streaming Band Power over LSL for all channels
retiutut Aug 31, 2023
f52cadc
Refactor parts of NetworkStreamOut for developer readability and per …
retiutut Sep 7, 2023
4abc3a4
Add debugTimeSeriesDataSamplingRate method to NetworkStreamOut.pde
retiutut Sep 11, 2023
0afebcf
Merge pull request #1181 from OpenBCI/process-widget-data-background-…
retiutut Sep 11, 2023
fc422f5
Support Windows EV code signing
philippitts Sep 12, 2023
2ab68ce
Remove timestamp from build artifact names
philippitts Sep 12, 2023
90e2541
Sign MacOS app folder as well as DMG
philippitts Sep 13, 2023
afe4595
Merge pull request #1186 from OpenBCI/1185-add-ev-certificate-signing…
retiutut Sep 14, 2023
9d2e47f
Fix bug related to properly resetting brainflowStreamer between sess…
retiutut Sep 1, 2023
95f8554
Merge pull request #1183 from OpenBCI/brainflow-streamer-file-bugs
retiutut Sep 14, 2023
b370b87
Merge branch 'master' into development
retiutut Sep 16, 2023
825045f
Update to BrainFlow 5.10.0
retiutut Sep 16, 2023
d6a67a5
Update to GUI Helpers v2.0.0
retiutut Sep 16, 2023
ecf5fff
Update version to v6.0.0-alpha.3
retiutut Sep 18, 2023
e0150a3
Fix bug with Brainflow streamer on Windows #1190
retiutut Sep 18, 2023
c7340cd
Update to GUI helpers library 2.0.1
retiutut Sep 18, 2023
8b12ebe
Update version to stable v6.0.0
retiutut Sep 18, 2023
091bd5e
Merge pull request #1189 from OpenBCI/gui-v6-update-brainflow-and-hel…
retiutut Sep 19, 2023
cc99736
Update README to note compatibility with Processing 4 and update miss…
retiutut Sep 19, 2023
85a008d
Add MIT license to Mac installer #1176
retiutut Sep 19, 2023
f838bb4
Remove Python cache in Windows Github Action since it's not used
retiutut Sep 19, 2023
f83fd7f
Update Mac license to exclude garbage characters
retiutut Sep 19, 2023
60455d9
Update sample data files to v6 and move old files to deprecated folder
retiutut Sep 19, 2023
5095f6e
Update version to v6.0.0-beta.0
retiutut Sep 21, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/workflows/linux_build_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Build GUI for Linux

on:
workflow_dispatch:
pull_request:
branches: [master, development]
push:
branches: [master, development]

permissions:
id-token: write
contents: read

env:
AWS_REGION : us-east-1

jobs:
build:
name: Build for Linux
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'

- name: Install Python Dependencies
run: pip install -r release/requirements.txt

- name: Install Processing
run: |
mkdir -p $GITHUB_WORKSPACE/processing
cd $GITHUB_WORKSPACE/processing
curl -O -L --insecure https://github.com/processing/processing4/releases/download/processing-1292-4.2/processing-4.2-linux-x64.tgz
tar -xzvf processing-4.2-linux-x64.tgz
ls

- name: Add Processing to PATH
run: sudo su -c "ln -s $GITHUB_WORKSPACE/processing/processing-4.2/processing-java /usr/local/bin/processing-java"

- name: Print PATH
run: echo "$PATH"

- name: Test processing-java Command
run: processing-java --help

- name: Copy Libraries to Processing
run: |
mkdir -p $HOME/sketchbook/libraries/
cp -a $GITHUB_WORKSPACE/OpenBCI_GUI/libraries/. $HOME/sketchbook/libraries/

# Unit tests cannot be run on Linux without attached display.

- name: Build
run: python $GITHUB_WORKSPACE/release/build.py

- name: Package
run: python $GITHUB_WORKSPACE/release/package.py

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: ${{ env.AWS_REGION }}

- name: Get Branch Names
id: branch-name
uses: tj-actions/branch-names@v7

- name: Store Build on AWS
run: |
cd $GITHUB_WORKSPACE
ls
CURRENT_BRANCH=${{ steps.branch-name.outputs.head_ref_branch }}
echo $CURRENT_BRANCH
aws s3 rm s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_linux64.zip"
aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/${CURRENT_BRANCH} --recursive --exclude "*" --include "openbcigui_*_linux64.zip"
aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_linux64.zip"
119 changes: 119 additions & 0 deletions .github/workflows/mac_build_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Build GUI for macOS

on:
workflow_dispatch:
pull_request:
branches: [master, development]
push:
branches: [master, development]

permissions:
id-token: write
contents: read

env:
AWS_REGION : us-east-1

jobs:
build:
name: Build for macOS
runs-on: macos-latest

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
cache: 'pip'

- name: Install Python Dependencies
run: pip install -r release/requirements.txt

- name: Install Processing
run: |
curl -O -L --insecure https://github.com/processing/processing4/releases/download/processing-1292-4.2/processing-4.2-macos-x64.zip
unzip processing-4.2-macos-x64.zip
ls
mv Processing.app /Applications/Processing.app

- name: Configure PATH
run: |
echo "$GITHUB_WORKSPACE/release/mac/" >> $GITHUB_PATH
chmod +x $GITHUB_WORKSPACE/release/mac/processing-java

- name: Print PATH
run: echo "$PATH"

- name: Test processing-java command
run: processing-java --help

- name: Copy Libraries to Processing
run: |
mkdir -p $HOME/Documents/Processing/libraries/
cp -a $GITHUB_WORKSPACE/OpenBCI_GUI/libraries/. $HOME/Documents/Processing/libraries/

- name: Run Unit Tests
run: python $GITHUB_WORKSPACE/GuiUnitTests/run-unittests.py

- name: Decrypt Certificate
run: |
openssl version
echo $MAC_CERTIFICATE_ENCRYPTED | base64 --decode > $GITHUB_WORKSPACE/release/mac/encrypted-certificate.p12.enc
openssl enc -aes-256-cbc -a -d -pbkdf2 \
-in $GITHUB_WORKSPACE/release/mac/encrypted-certificate.p12.enc \
-out $GITHUB_WORKSPACE/release/mac/certificate.p12 \
-k "$OPENSSL_CERT_K"
env:
OPENSSL_CERT_K: ${{ secrets.OPENSSL_CERT_K }}
MAC_CERTIFICATE_ENCRYPTED: ${{ secrets.MAC_CERTIFICATE_ENCRYPTED }}

- name: Add OSX Signing Certificate to Keychain
uses: apple-actions/import-codesign-certs@v2
with:
p12-filepath: ${{ github.workspace }}/release/mac/certificate.p12
p12-password: ${{ secrets.CERTIFICATE_P12_PASSWORD }}

- name: Build
run: |
python $GITHUB_WORKSPACE/release/build.py
cp $GITHUB_WORKSPACE/OpenBCI_GUI/sketch.icns $GITHUB_WORKSPACE/application.macosx/OpenBCI_GUI.app/Contents/Resources/sketch.icns

- name: Sign Build
run: |
codesign -f -v -s "Developer ID Application: OpenBCI, Inc. (3P82WRGLM8)" $GITHUB_WORKSPACE/application.macosx/OpenBCI_GUI.app

- name: Create DMG
run: |
dmgbuild -s release/mac/dmgbuild_settings.py \
-D app=$GITHUB_WORKSPACE/application.macosx/OpenBCI_GUI.app \
OpenBCI_GUI $GITHUB_WORKSPACE/application.macosx.dmg

- name: Sign DMG
run: |
codesign -f -v -s "Developer ID Application: OpenBCI, Inc. (3P82WRGLM8)" $GITHUB_WORKSPACE/application.macosx.dmg

- name: Package
run: python $GITHUB_WORKSPACE/release/package.py

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: ${{ env.AWS_REGION }}

- name: Get Branch Names
id: branch-name
uses: tj-actions/branch-names@v7

- name: Store Build on AWS
run: |
cd $GITHUB_WORKSPACE
ls
CURRENT_BRANCH=${{ steps.branch-name.outputs.head_ref_branch }}
echo $CURRENT_BRANCH
aws s3 rm s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_macosx.dmg"
aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/${CURRENT_BRANCH} --recursive --exclude "*" --include "openbcigui_*_macosx.dmg"
aws s3 cp $GITHUB_WORKSPACE/. s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_macosx.dmg"
100 changes: 100 additions & 0 deletions .github/workflows/windows_build_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Build GUI for Windows

on:
workflow_dispatch:
pull_request:
branches: [master, development]
push:
branches: [master, development]

permissions:
id-token: write
contents: read

env:
AWS_REGION : us-east-1

jobs:
build:
name: Build for Windows
runs-on: windows-latest

steps:
- name: Clone Repository
uses: actions/checkout@v3

- name: Install Python 3.9
uses: actions/setup-python@v4
with:
python-version: '3.9'
architecture: 'x64'

- name: Install Processing
run: |
mkdir %GITHUB_WORKSPACE%\processing
cd %GITHUB_WORKSPACE%\processing
curl -O -L --insecure https://github.com/processing/processing4/releases/download/processing-1292-4.2/processing-4.2-windows-x64.zip
ls -l %GITHUB_WORKSPACE%\processing
unzip processing-4.2-windows-x64.zip
ls -l %GITHUB_WORKSPACE%\processing\processing-4.2
mkdir %userprofile%\documents\processing\libraries
xcopy %GITHUB_WORKSPACE%\OpenBCI_GUI\libraries\* %userprofile%\documents\processing\libraries /s /i /q
ls -l %userprofile%\documents\processing\libraries
shell: cmd

- name: Set Path
run: |
echo %GITHUB_WORKSPACE%\processing\processing-4.2>>%GITHUB_PATH%
echo C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64>>%GITHUB_PATH%
shell: cmd

- name: Print Path
run: echo %PATH%
shell: cmd

- name: Check processing-java Command
run: processing-java --help
shell: cmd

- name: Run Unit Tests
run: python %GITHUB_WORKSPACE%\GuiUnitTests\run-unittests.py
shell: cmd

- name: Build
run: python %GITHUB_WORKSPACE%\release\build.py
shell: cmd

- name: Sign
run: |
dotnet tool install --global azuresigntool
mt -manifest %GITHUB_WORKSPACE%\release\windows\gui.manifest -outputresource:%GITHUB_WORKSPACE%\application.windows64\OpenBCI_GUI.exe;#1
mt -manifest %GITHUB_WORKSPACE%\release\windows\java.manifest -outputresource:%GITHUB_WORKSPACE%\application.windows64\java\bin\java.exe;#1
mt -manifest %GITHUB_WORKSPACE%\release\windows\javaw.manifest -outputresource:%GITHUB_WORKSPACE%\application.windows64\java\bin\javaw.exe;#1
azuresigntool sign --azure-key-vault-url "${{ secrets.AZURE_KEY_VAULT_URI }}" --azure-key-vault-client-id "${{ secrets.AZURE_CLIENT_ID }}" --azure-key-vault-tenant-id "${{ secrets.AZURE_TENANT_ID }}" --azure-key-vault-client-secret "${{ secrets.AZURE_CLIENT_SECRET }}" --azure-key-vault-certificate "${{ secrets.AZURE_CERT_NAME }}" --timestamp-rfc3161 http://timestamp.digicert.com --verbose %GITHUB_WORKSPACE%\application.windows64\OpenBCI_GUI.exe
shell: cmd

- name: Package
run: python %GITHUB_WORKSPACE%\release\package.py
shell: cmd

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: ${{ env.AWS_REGION }}

- name: Get Branch Names
id: branch-name
uses: tj-actions/branch-names@v7

- name: Store Build on AWS
run: |
cd ${{ github.workspace }}
ls
echo "${{ steps.branch-name.outputs.head_ref_branch }}"
set S3_BRANCH_FOLDER=s3://openbci-public-gui-v6/${{ steps.branch-name.outputs.head_ref_branch }}
echo %S3_BRANCH_FOLDER%
aws s3 rm s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_windows64.zip"
aws s3 cp ${{ github.workspace }}/. %S3_BRANCH_FOLDER% --recursive --exclude "*" --include "openbcigui_*_windows64.zip"
aws s3 cp ${{ github.workspace }}/. s3://openbci-public-gui-v6/latest --recursive --exclude "*" --include "openbcigui_*_windows64.zip"
shell: cmd
54 changes: 54 additions & 0 deletions .github/workflows/windows_build_processing_3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Build GUI for Windows - Processing 3

on:
workflow_dispatch:
pull_request:
branches:
- development

jobs:
build:
name: Build for Windows - Processing 3
runs-on: windows-latest

steps:
- name: Clone Repository
uses: actions/checkout@v3

- name: Install Python 3.9
uses: actions/setup-python@v4
with:
python-version: '3.9'
architecture: 'x64'
cache: 'pip'

- name: Set Path
run: echo %GITHUB_WORKSPACE%\processing\processing-3.5.3>>%GITHUB_PATH%
shell: cmd

- name: Print Path
run: echo %PATH%
shell: cmd

- name: Install Processing
run: |
mkdir processing
cd %GITHUB_WORKSPACE%\processing
curl -O -L --insecure https://download.processing.org/processing-3.5.3-windows64.zip
ls -l %GITHUB_WORKSPACE%\processing
unzip processing-3.5.3-windows64.zip
ls -l %GITHUB_WORKSPACE%\processing\processing-3.5.3
mkdir %userprofile%\documents\processing\libraries
xcopy %GITHUB_WORKSPACE%\OpenBCI_GUI\libraries\* %userprofile%\documents\processing\libraries /s /i /q
ls -l %userprofile%\documents\processing\libraries
shell: cmd

- name: Check processing-java
run: processing-java --help
shell: cmd

- name: Build
run: |
python %GITHUB_WORKSPACE%\GuiUnitTests\run-unittests.py
python %GITHUB_WORKSPACE%\release\build.py
shell: cmd
Loading