Genie
Change Summary
-
Bug Fix: Memory Albums processor did not allow pause/replay for any 'new' items
-
Bug Fix: Multi language expressions for kiosk level languages fail to install on first attempt
-
Implement Marc's list of suggestions from his trip to Calgary early April
-
Show new memory album items after viewing all new messages
-
Optimize/simplify markup for the streaming media viewer and the logic around 'Press > to replay'
-
Pink 'new' indicator now shows correctly for memory album items
-
Wworkflow change : new memory album items after any new messages
-
Fixed several bugs
-
Implemented Marc's observations from his visit to Calgary first week of April
-
Startup: logs Kiosk app version & Windows version from the requesting kiosk, and some of the key startup view models
-
Instructional videos no longer time out due to the Info mode timer
-
Multi Language kiosk views using the database to store expressions
-
Remove the media item base class for now, revisit in future
-
Bug fix - Sending message to contacts using their phonebook
-
New UNCLUTTERED workflow
-
Bug Fixed: Could not initiate a new call using the phone book user selector (Megan)
-
Bug Fixed: User message count was incorrect (Ashley)
-
Changes to resident selection screen for the KM's
-
Added some french translations
-
Changed the order that new messages are displayed in
-
Genie install script now disables the auto update services for Windows
-
after last phone book message, go to next user in phone book
-
Image used for countdowns separate than those used for icons
-
New Messages: icon sizes
-
Cheryl's cosmetic changes - audio media shows image of speaker during play
Abby 2.0
AAT ABBY v22
-
Wednesday February 14, 2024
AAT ABBY v21
-
Wednesday February 14, 2024
Notes
-
Both versions contain Update 7
Abby Kiosk Mode
AAT ABBY Kiosk v22.1
AAT ABBY Kiosk v21.1
Notes
-
Contains Update 7 and Activity 1
-
Contains modification to Sync Service which grants file access permissions to kioskUser0
-
Implements a new system restart strategy
-
Shuts down ABBY and installs pending updates before each scheduled reboot
-
Update Reporter (in UI folder) needs to be included in the XML provisionary script
-
When running will reside down in the system tray and await MSMQ messages from the Update Installer
-
The Restart Trigger scheduled task triggers the Restart Service which then performs the following tasks:
-
Sends a KillDisplay response to the Display.exe which instructs it to exit itself
-
Runs the Update Installer and sends progress events to the Update Reporter (in system tray)
-
The Update Reporter locks the screen while displaying progress messages on the desktop
-
Applies updates to the Update Installer itself
-
Sends a task completed event to the Update Reporter
-
Proceeds with a system reboot
-
Note: The Update Reporter also provides a right-click context menu giving an Admin the ability to run the Update Installer by itself or force the entire Restart sequence to run
AAT ABBY Kiosk v22.1 (RFID)
Notes
-
Contains Update 7 and Activity 1
-
Kiosk-mode version of Abby with RFID identification service and admin card access to caregiver interface
Abby v3.0
Abby v3.0
-
Tuesday August 15, 2023
-
Phidgetless version that works with an arduino game controller
Abby Utilities
Media Uploader
Saturday Sept 27, 2025
-
Media Upload utility for Abby playlists
-
Useful when doing extensive file uploads (does not affect performance of Hub API)
-
Excellent tool for grooming Shared Library media
ABBY v21 Migation Tool
Wednesday December 4, 2024
Beacon Monitor
Friday March 3, 2023
Phidget Monitor
Friday March 3, 2023
Cross-compiling Abby For ARM64
This document outlines the required libraries, sysroot preparation steps, and build procedures for the ARM64 development environment and Raspberry Pi (RPi) target system.
Last updated: Thursday Febrary 26, 2026 7:15PM
1. Build Machine Required Libraries
Install the following packages on the development machine:
- gdb
- build-essential
- libx11-dev
- libasound2-dev
- libboost-all-dev
- libssl-dev
- libcurl4-openssl-dev
- libwebsocketpp-dev
- cmake
- gcc-aarch64-linux-gnu
- g++-aarch64-linux-gnu
- binutils-aarch64-linux-gnu
- sqlite3
2. Raspberry Pi Required Libraries
Install the following libraries on the Raspberry Pi prior creating a sysroot image or building curl/curlpp for ARM64:
- libssl-dev
- libcurl4-openssl-dev
- libasound2-dev
- libboost-all-dev
- libwebsocketpp-dev
- libphidget22-dev
- libusb-1.0-0-dev
Alternatively, a premade rpi-sysroot image can be downloaded here:
3. Create the RPi Sysroot Image
The folder /opt/rpi-sysroot/ is used as the location to store the image.
rsync -avz --rsync-path="sudo rsync" <hostname>@<ipaddress>:/lib /opt/rpi-sysroot
rsync -avz --rsync-path="sudo rsync" <hostname>@<ipaddress>:/usr/include /opt/rpi-sysroot/usr
rsync -avz --rsync-path="sudo rsync" <hostname>@<ipaddress>:/usr/lib /opt/rpi-sysroot/usr
4. Build Curl and Curlpp (On Raspberry Pi)
Note: Prebuilt curlpp headers and libraries for both Linux-x64 and ARM64 can be downloaded here:
4.1 Build Curl
mkdir $HOME/source
cd ~/source
# Download curl source from https://curl.se/download.html
# Decompress curl-8.14.1.tar.xz
# Create a folder to store the built binaries
mkdir $HOME/libs/curl
cd curl-8.14.1
./configure --with-ssl --prefix=$HOME/libs/curl
make
4.2 Build Curlpp
cd ~/source
git clone https://github.com/jpbarrette/curlpp.git
cd curlpp
mkdir build
cd build
cmake ..
-D CURL_INCLUDE_DIR=$HOME/libs/curl/include
-D CURL_LIBRARY=$HOME/libs/curl/lib/libcurl.a
-D CMAKE_INSTALL_PREFIX=$HOME/libs/curlpp
-D CURL_ROOT=$HOME/source/curl-8.14.1
make
Note: several harmless warnings will be displayed during this build.
5. Third-Party Library Location
The folder /usr/src/ is used as the location for third-party libraries.
- curlpp (built on Pi OS)
- nlohmann/json (header-only library)
Clone nlohmann/json
cd /usr/src
git clone https://github.com/nlohmann/json.git
Sync curlpp headers and shared objects from the RPi
mkdir /usr/src/curlpp-arm64
sudo rsync -ar <hostname>@<ipaddress>:/home/<hostname>/source/curlpp/include /usr/src/curlpp-arm64/include
sudo rsync -ar <hostname>@<ipaddress>:/home/<hostname>/source/curlpp/lib /usr/src/curlpp-arm64/lib
6. Build Projects
All projects use the following build pattern:
cmake --preset arm64-release
cmake --build --preset arm64-release
6.1 CreateDatabase
cd ~/source
git clone https://aatgegit clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.createdatabase.arm64/aat.abby.createdatabase.arm64
cd aat.abby.createdatabase.arm64
mkdir third_party
cd third_party
git clone https://github.com/SRombauts/SQLiteCpp.git
cd..
cmake --preset arm64-release
cmake --build --preset arm64-release
Note: a harmless warning will be displayed as SQLiteCpp gets linked.
6.2 DataAccess (Shared Object)
cd ~/source
git clone git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.dataaccess.arm64/aat.abby.dataaccess.arm64
cd aat.abby.dataaccess.arm64
mkdir third_party
cd third_party
git clone https://github.com/SRombauts/SQLiteCpp.git
cd..
cmake --preset arm64-release
cmake --build --preset arm64-release
Note: a harmless warning will be displayed as SQLiteCpp gets linked.
6.3 TokenGenerator (Shared Object)
Note: Prebuilt DataAccess.so exists in:
~/aat/data_access/lib/arm64
cd ~/source
git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.tokengen.arm64/aat.abby.tokengen.arm64
cd aat.abby.tokengen.arm64
cmake --preset arm64-release
cmake --build --preset arm64-release
6.4 Optional (For Production Mode Operation)
Copy shared objects to /usr/lib
cp ~/source/aat.abby.dataaccess.arm64/build/arm64/Release/DataAccess.so /usr/lib/
cp ~/source/aat.abby.tokengen.arm64/build/arm64/Release/TokenGenerator.so /usr/lib/
6.5 MediaSync
Note: Prebuilt DataAccess.so and TokenGenerator.so exist in their respective lib/arm64 folders.
cd ~/source
git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.mediasync.arm64/aat.abby.mediasync.arm64
cd aat.abby.mediasync.arm64
cmake --preset arm64-release
cmake --build --preset arm64-release
6.6 Controller
cd ~/source
git clone git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.controller.arm64/aat.abby.controller.arm64
cd aat.abby.controller.arm64
cmake --preset arm64-release
cmake --build --preset arm64-release
6.7 Abby
Note: Prebuilt DataAccess.so exists in:
~/abby/aat/data_access/lib/arm64
cd ~/source
git clone git@ssh.dev.azure.com:v3/aatgenie/aat.abby.arm64/aat.abby.arm64
cd aat.abby.arm64
cmake --preset arm64-release
cmake --build --preset arm64-release
Unblocking all files in all sub directories under C:\Deployments using Powershell
get-childitem "C:\Deployments" -recurse | unblock-file