Module transport

Module transport 

Source
Expand description

Async transport trait and implementations for radio communication.

The TH-D75 communicates over USB CDC ACM (Communications Device Class Abstract Control Model) which presents as a standard serial port, and Bluetooth SPP (Serial Port Profile) via RFCOMM.

§Bluetooth (per Operating Tips §5.12)

  • Bluetooth version 3.0, Class 2 (range ~10m)
  • Profiles: HSP (Headset Profile) + SPP (Serial Port Profile)
  • No BLE (Bluetooth Low Energy) and no HFP (Hands-Free Profile)
  • BT headset provides mic + earphone for voice; PTT remains on the radio body (no BT PTT except via VOX)
  • Menu No. 112: BT microphone sensitivity adjustment
  • When a BT headset is connected, audio is NOT routed to the USB port or external speaker jack
  • Menu No. 933: view/manage connected BT devices

§USB (per Operating Tips §5.13)

  • CDC virtual COM port (same driver as TH-D74, available at kenwood.com)
  • USB audio output: 48 kHz / 16-bit / mono, output only (same as speaker output). Adjustable via Menu No. 91A.
  • USB Mass Storage: Menu No. 980 (Windows only for mass storage feature)

Implementations:

On macOS, prefer BluetoothTransport over SerialTransport for BT connections. The macOS serial port driver has a bug where closing and reopening /dev/cu.TH-D75 kills the RFCOMM channel permanently. BluetoothTransport talks directly to the RFCOMM channel via IOBluetooth and can be closed and reopened without issues.

Re-exports§

pub use bluetooth::BluetoothTransport;
pub use either::EitherTransport;
pub use mmdvm_adapter::MmdvmTransportAdapter;
pub use mock::MockTransport;
pub use serial::SerialTransport;

Modules§

bluetooth
Native macOS Bluetooth RFCOMM transport.
either
Enum transport that dispatches to either Serial, Bluetooth, or Mock.
mmdvm_adapter
Adapter bridging crate::Transport to tokio’s [AsyncRead] + [AsyncWrite] contracts.
mock
Mock transport for testing without real hardware.
serial
Serial port transport for USB CDC ACM and Bluetooth SPP connections.

Traits§

Transport
Async transport for communicating with the radio.