OBEX (Bluetooth) File Transfers

Summary

Mentor(s): Prof. Bill Griffin-Dubson
Dr. Mike Murphy
Project Type: Software development; networking; user interface design
Technologies: Python, Qt (PySide6, Qt Designer), Bluetooth, Git
Undergraduate Credit: CSCI 399, CSCI 490
Graduate Credit: IST 659
Locality: Main campus and/or remote

Purpose

One way of transferring files between computers is to send them wirelessly between systems. If both systems are connected to the same Wi-Fi network, then a file share could be used to enable these transfers. However, if the systems do not have access to the same network, then other wireless communications systems (like Bluetooth) could be used. For generic file transfers, Bluetooth has adopted the OBject EXchange (OBEX) protocol that was originally developed for infrared data transfers. Bluetooth devices can support file transfers via the File Transfer Profile.

On Linux systems, the Bluetooth protocol stack is provided by the BlueZ project. BlueZ exposes an OBEX API over D-Bus.

Scope of Work

Add support for Bluetooth file transfers to TealFiler by using Qt D-Bus to communicate with BlueZ to use OBEX. Some end-user configuration of this system is likely, so it may be necessary to add settings, dialogs, and menu items to the user interface to facilitate connecting to other Bluetooth devices.