# BEANalyzer UltraPro macOS App Bundle

This package includes:

```text
BEANalyzer UltraPro.app
Install_BEANalyzer_UltraPro_to_Applications.command
```

## Install

Double-click:

```text
Install_BEANalyzer_UltraPro_to_Applications.command
```

or copy manually:

```bash
cp -R "BEANalyzer UltraPro.app" /Applications/
```

## First Launch

On first launch, the app creates a Python virtual environment in:

```text
~/Library/Application Support/BEANalyzer UltraPro/.venv
```

Then it installs the Python requirements automatically.

Recommended Python version:

```text
Python 3.12.x
```

If Python 3.12 is not installed, install it with Homebrew:

```bash
brew install python@3.12
```

## Logs

Startup/runtime logs are saved here:

```text
~/Library/Application Support/BEANalyzer UltraPro/logs/
```

## If macOS blocks the app

Run:

```bash
xattr -dr com.apple.quarantine "/Applications/BEANalyzer UltraPro.app"
chmod +x "/Applications/BEANalyzer UltraPro.app/Contents/MacOS/BEANalyzerUltraPro"
```

Then open it again.

## v2.2 Maintenance Update

This package includes fixed CSV replay, updated application icons, and preserved macOS/Linux executable permissions in the ZIP archive.


## Help Menu

The application includes a top-level `Help` menu:

```text
Help -> Check for Updates...
Help -> About
```

`Check for Updates...` opens the AE&D website in the default system browser.
`About` opens a professional software information dialog with the BEANalyzer UltraPro icon, AE&D manufacturer logo, website link, version information, and © 2026 AE&D copyright notice.


## v2.5 Startup / About Menu Fix

- Hardened the About menu role handling for different PySide6 builds.
- Removed a risky macOS launcher override that could cause the app to open and close immediately on some systems.
- Added runtime/crash logging under `~/Library/Application Support/BEANalyzer UltraPro/logs/` on macOS.
- Help -> About BEANalyzer UltraPro remains available, and Check for Updates opens https://aend-tech.com.


## BEANalyzer UltraPro v2.6 - CAN Gateway Monitor

This version adds a dedicated CAN Gateway Monitor window. It can be opened from:

```text
View -> Open CAN Gateway Monitor
Devices / CAN Gateway -> Open CAN Gateway Monitor
```

The CAN Gateway Monitor shows CAN RX/TX traffic in real time, including frames received from python-can hardware such as CANalyst-II, CANable/SLCAN, SocketCAN, PCAN, Kvaser, Vector, or virtual backends, plus frames sent through the Arduino CAN serial bridge.

The window includes:

```text
- Live RX/TX table
- Backend/source column
- CAN ID, extended flag, DLC and data bytes
- Raw CAN notation ID#DATA
- Per-ID counter
- Per-ID delta time
- CSV export
- JSON export
- Manual CAN transmit console
- Repetition count
- Delay between transmissions
- Continuous loop mode when Count = 0
```

The manual CAN transmit console can send through either:

```text
python-can
Arduino CAN serial bridge
```

For CANalyst-II, remember that it normally does not use a COM/tty serial port. Use the python-can backend with interface `canalystii`, device/channel configuration, and the selected bitrate.
