Skip to content

Instantly share code, notes, and snippets.

@spikegrobstein
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spikegrobstein/5b92c538e017ecc8d4f2 to your computer and use it in GitHub Desktop.
Save spikegrobstein/5b92c538e017ecc8d4f2 to your computer and use it in GitHub Desktop.
tool to automatically connect to a bluetooth device (using on emulationstation w/ retropie)
#! /bin/bash -
# The MIT License (MIT)
#
# Copyright (c) 2014 Spike Grobstein
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# bluetooth_try
# attempt to connect to the given bluetooth device.
# it should already be paired, but just disconnected.
# intended to be stuffed into a cron to auto-pair to bluetooth controller
# if device is not paired, attempt, otherwise just exit.
# Written by Spike Grobstein <me@spike.cx>
ADDR=$1
warn() {
echo $@ >&2
}
# check if the device with address $ADDR is connected
is_device_connected() {
hcitool con | grep "$ADDR" &> /dev/null
}
# attempt to connec to device with address $ADDR
connect_to_device() {
bluez-test-input connect "$ADDR" &> /dev/null
}
# spit out usage
if [[ -z "$ADDR" ]];then
warn "USAGE: $0 <addr>"
exit 1
fi
# do it!
if is_device_connected; then
warn "Device connected. Not doing anything."
else
warn "Trying to connect to device..."
connect_to_device && warn "Success." || warn "Failed."
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment