Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
escalonely committed Jan 23, 2024
2 parents 3a8ba4f + a64e142 commit a488ffb
Show file tree
Hide file tree
Showing 25 changed files with 869 additions and 103 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "submodules/NanoOcp"]
path = submodules/NanoOcp
url = https://github.com/ChristianAhrens/NanoOcp.git
[submodule "submodules/create-dmg"]
path = submodules/create-dmg
url = https://github.com/create-dmg/create-dmg
22 changes: 15 additions & 7 deletions AES70_OCP1_StringGenerator.jucer
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>

<JUCERPROJECT id="bMvzN6" name="AES70_OCP1_StringGenerator" projectType="guiapp"
jucerFormatVersion="1" version="0.0.3" companyName="escalonely"
jucerFormatVersion="1" version="0.0.4" companyName="escalonely"
companyCopyright="Copyright (C) 2023 Bernardo Escalona" companyWebsite="https://github.com/escalonely"
headerPath="../../submodules/NanoOcp/Source/&#10;">
<MAINGROUP id="rBvj44" name="AES70_OCP1_StringGenerator">
Expand All @@ -25,10 +25,17 @@
</GROUP>
<GROUP id="{6B66A945-B301-BCC2-57E8-3798FC5D9015}" name="Resources">
<GROUP id="{36E37E30-6603-6B38-52E2-B72A2A0A1B80}" name="Images">
<FILE id="dneo2y" name="AES70_OCP1_StringGenerator.png" compile="0"
resource="1" file="Resources/Images/AES70_OCP1_StringGenerator.png"/>
<FILE id="E9WRHD" name="AES70_OCP1_StringGeneratorCanvas.png" compile="0"
resource="1" file="Resources/Images/AES70_OCP1_StringGeneratorCanvas.png"/>
<FILE id="CV4boh" name="AES70_OCP1_StringGeneratorRect.png" compile="0"
resource="1" file="Resources/Images/AES70_OCP1_StringGeneratorRect.png"/>
<FILE id="X5RdkA" name="StartHere.png" compile="0" resource="1" file="Resources/Images/StartHere.png"/>
</GROUP>
</GROUP>
<GROUP id="{2156CA2B-72B1-D5CD-005E-9718D619F5B0}" name="Source">
<FILE id="hjacwO" name="AbstractPage.h" compile="0" resource="0" file="Source/AbstractPage.h"/>
<FILE id="LeB7eW" name="Common.h" compile="0" resource="0" file="Source/Common.h"/>
<FILE id="fPL2AH" name="TestPage.cpp" compile="1" resource="0" file="Source/TestPage.cpp"/>
<FILE id="BIeZeo" name="TestPage.h" compile="0" resource="0" file="Source/TestPage.h"/>
Expand All @@ -47,10 +54,10 @@
</MAINGROUP>
<JUCEOPTIONS JUCE_STRICT_REFCOUNTEDPOINTER="1"/>
<EXPORTFORMATS>
<VS2019 targetFolder="Builds/VisualStudio2019">
<VS2022 targetFolder="Builds/VisualStudio2022" smallIcon="dneo2y" bigIcon="dneo2y">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" targetName="AES70_OCP1_StringGenerator"/>
<CONFIGURATION isDebug="0" name="Release" targetName="AES70_OCP1_StringGenerator"/>
<CONFIGURATION isDebug="1" name="Debug"/>
<CONFIGURATION isDebug="0" name="Release"/>
</CONFIGURATIONS>
<MODULEPATHS>
<MODULEPATH id="juce_core" path="submodules\JUCE\modules"/>
Expand All @@ -59,8 +66,9 @@
<MODULEPATH id="juce_graphics" path="submodules\JUCE\modules"/>
<MODULEPATH id="juce_gui_basics" path="submodules\JUCE\modules"/>
</MODULEPATHS>
</VS2019>
<VS2022 targetFolder="Builds/VisualStudio2022">
</VS2022>
<XCODE_MAC targetFolder="Builds/MacOSX" smallIcon="CV4boh" bigIcon="CV4boh"
applicationCategory="public.app-category.utilities" hardenedRuntime="1">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug"/>
<CONFIGURATION isDebug="0" name="Release"/>
Expand All @@ -72,7 +80,7 @@
<MODULEPATH id="juce_graphics" path="submodules\JUCE\modules"/>
<MODULEPATH id="juce_gui_basics" path="submodules\JUCE\modules"/>
</MODULEPATHS>
</VS2022>
</XCODE_MAC>
</EXPORTFORMATS>
<MODULES>
<MODULE id="juce_core" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
Expand Down
22 changes: 16 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
![TitleBar.png](Resources/Documentation/TitleBar.png "0x3b")

# AES70 OCP.1 Binary String Generator
# AES70 OCP.1 PDU Generator

The AES70 OCP.1 binary string generator is a privately created and driven project.
The AES70 OCP.1 PDU Generator is a privately created and driven project.

## Description

- This is a small tool that can generate AES70/OCA protocol data units (PDUs) for TCP-network-based control (OCP.1).
- The PDUs are generated quickly and on the fly after adjusting only a handful of parameters.
- The resulting PDUs can be used by integrators, e.g. by copy-pasting them into a script, for controlling and monitoring AES70-capable devices.
- The AES70 OCP.1 PDU Generator is a companion and debugging tool for integrating AES70-capable devices into a remote control solution.
- It is able to generate AES70/OCA protocol data units (PDUs) for TCP-network-based control (OCP.1) quickly and on the fly after adjusting only a handful of parameters.
- The textual representation of the resulting PDUs can be used by integrators for controlling and monitoring AES70-capable devices, e.g. by copy-pasting them into a script.

For more info in AES70 and/or OCA, visit https://ocaalliance.com/what-is-aes70/

Expand All @@ -17,10 +17,20 @@ For more info in AES70 and/or OCA, visit https://ocaalliance.com/what-is-aes70/
![GuiOverview01.png](Resources/Documentation/GuiOverview01.png "GUI Overview")

1. Start by selecting the parameters of the AES70 Command that you wish to generate.
2. Enter the unique object number (ONo) of the AES70 objct within the device.
2. Enter the unique object number (ONo) of the AES70 object within the device.
3. Copy the resulting binary string into your integration environment so that it can be transmitted via TCP/IP to the AES70-capable device in your network.
4. Use the generated Response string to help decode the reply from the device to the above Command.

## Video Tutorial

Video Tutorial Part 1: Quick Start

[![Video Tutorial Part 1: Quick Start](https://img.youtube.com/vi/GOEGQvrscU8/0.jpg)](https://www.youtube.com/watch?v=GOEGQvrscU8)

## User Guide

For a more in-depth look please check the [User Guide](Resources/Documentation/UserGuide.md).

## Submodules

- JUCE: https://github.com/juce-framework/JUCE
Expand Down
18 changes: 18 additions & 0 deletions Resources/Deployment/macOS/build_project.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# we are in Resources/Deployment/macOS/ -> change directory to project root
cd ../../../

# set convenience variables
JUCEDir=submodules/JUCE
ProjucerPath="$JUCEDir"/extras/Projucer/Builds/MacOSX
ProjucerBinPath="$ProjucerPath"/build/Release/Projucer.app/Contents/MacOS/Projucer
JucerProjectPath=AES70_OCP1_StringGenerator.jucer
XCodeProjectPath=Builds/MacOSX/AES70_OCP1_StringGenerator.xcodeproj

# build projucer
xcodebuild -project "$ProjucerPath"/Projucer.xcodeproj -configuration Release -jobs 8

# export projucer project
"$ProjucerBinPath" --resave "$JucerProjectPath"

# start building the project
xcodebuild -project "$XCodeProjectPath" -configuration Release -jobs 8
31 changes: 31 additions & 0 deletions Resources/Deployment/macOS/create_diskimage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# we are in Resources/Deployment/macOS/ -> change directory to project root
cd ../../../

# set convenience variables
AppBundlePath=Builds/MacOSX/build/Release/AES70_OCP1_StringGenerator.app
CreateDmgPath=submodules/create-dmg/create-dmg
IconSetSourcePng=AES70_OCP1_StringGenerator.png
LicensePath=LICENSE
VolIconPath=Resources/Images/Iconset.icns
DmgTargetPath=AES70_OCP1_StringGenerator.dmg
DmgContentsCollectionPath=ContentsPath

# create the icns from existing png
cd Resources/Images
chmod +x makeIconset.sh
./makeIconset.sh "$IconSetSourcePng"
cd ../../

# collect dmg contents
test -d "$DmgContentsCollectionPath" && rm -r "$DmgContentsCollectionPath"
mkdir "$DmgContentsCollectionPath"
cp -r "$AppBundlePath" "$DmgContentsCollectionPath"
ln -s /Applications "$DmgContentsCollectionPath"/Applications

# create project disk image
test -f "$DmgTargetPath" && rm "$DmgTargetPath"
"$CreateDmgPath" --eula "$LicensePath" --window-size 565 245 --volicon "$VolIconPath" "$DmgTargetPath" "$DmgContentsCollectionPath"

# cleanup
test -d "$DmgContentsCollectionPath" && rm -r "$DmgContentsCollectionPath"
test -f "$VolIconPath" && rm "$VolIconPath"
27 changes: 27 additions & 0 deletions Resources/Deployment/macOS/create_installer.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# we are in Resources/Deployment/macOS/ -> change directory to project root
cd ../../../

# set external variables
CodeSignCertName=$1 # e.g. "Developer ID Application: SomeIdentifier"

echo "Using certificate $CodeSignCertName for codesigning."

# set convenience variables
AppBundlePath=Builds/MacOSX/build/Release
CreateDmgPath=submodules/create-dmg/create-dmg
DmgTargetPath=AES70_OCP1_StringGenerator.dmg

# build the project and create dmg
cd Resources/Deployment/macOS
./build_project.sh
./create_diskimage.sh
cd ../../../

# codesign the disk image
codesign --force --sign "$CodesignCertName" "$DmgTargetPath"

# trigger notarization
# (assumes that credentials are stored to keychain, e.g. with xcrun notarytool store-credentials APP_NOTARIZATION_CREDENTIALS_PROFILE --apple-id APPLE_ID --team-id TEAM_ID)
xcrun notarytool submit --keychain-profile "APP_NOTARIZATION_CREDENTIALS_PROFILE" --wait "$DmgTargetPath"
# staple the notarization to the artifact for offline operation
xcrun stapler staple "$DmgTargetPath"
Loading

0 comments on commit a488ffb

Please sign in to comment.