Base on Project: https://github.com/linker-bot/can-finder
CAN Finder is a cross-platform desktop application specifically designed for LinkerHand devices, providing network device auto-discovery and management functionalities. Built using Go and the Wails framework, CAN Finder listens for UDP broadcasts from devices, displaying essential information in real-time, including device name, IP address, MAC address, model, and software version.
- Real-Time Device Discovery: Automatically discovers CAN devices in real-time through UDP broadcasts.
- Intuitive Desktop Interface: Offers an intuitive and user-friendly interface to display detailed device information, including first discovery and last active timestamps.
- Real-Time Updates: Utilizes event-driven architecture provided by Wails for seamless real-time frontend-backend communication, eliminating the need for manual refreshes.
CAN Finder comprises two main parts:
- Backend Service: Developed in Go, leveraging Wails for backend logic, including UDP broadcast handling and event-driven data communication.
- Frontend Display: Created using native HTML, CSS, and JavaScript, seamlessly integrated with the backend via Wails' event-based APIs.
- Go Language
- Wails Framework
- HTML, CSS, and JavaScript
- UDP Broadcast Protocol
Ensure Go and Wails CLI are installed:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# Verify installation
wails doctor
# Build and run
git clone https://github.com/your-username/can-finder.git
cd can-finder
wails build
After building, run the executable located in the build/bin
directory:
- Windows:
CAN Finder.exe
- macOS:
CAN Finder.app
- Linux:
CAN Finder
The desktop application will start automatically upon launching the executable.
can-finder/
├── main.go # Main entry point of the Wails app
├── backend
│ └── app.go # Backend logic, handling UDP broadcasts
└── frontend
└── index.html # Frontend display and logic
- UDP broadcast listening port is set to
9999
(modifiable in backend source code).
The desktop interface dynamically updates and displays:
- Device Name
- IP Address
- MAC Address
- Device Model
- Software Version (with links to GitHub Releases)
- First Seen Time
- Last Active Time
Comprehensive logging is implemented to assist in troubleshooting device discovery and communication issues. Logs can be viewed directly within the Wails runtime console.
Managed automatically via Go modules and Wails:
- github.com/wailsapp/wails/v2
Use go mod tidy
to manage dependencies.
CAN Finder leverages GitHub Actions for automatic builds across multiple platforms (Windows, macOS, Linux) upon tagged releases or manual triggers. See .github/workflows/build.yml
for more details.
CAN Finder is released under the GPL-3.0 license.
Contributions are warmly welcomed! Feel free to submit code, raise issues, or create pull requests to help us continuously improve CAN Finder.