summaryrefslogtreecommitdiff
path: root/libaltos/libaltos_linux.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-05-13 15:24:20 -0700
committerKeith Packard <keithp@keithp.com>2017-05-13 15:29:13 -0700
commit2536640b852feff41975d2da50befdda91ee6303 (patch)
treedbcd54b2bb96db41cfe7325ec4513e52b60b98e9 /libaltos/libaltos_linux.c
parent91c2af9ac1387842a5fdc61dbc9e26e04de2cdd0 (diff)
libaltos: Add support for TeleBT-v4.0 bluetooth channel change
The RN4678 in TeleBT v4.0 uses channel 6 instead of channel 1. There is code in the linux bits which discovers this value, but that crashes when run under java for unknown reasons. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'libaltos/libaltos_linux.c')
-rw-r--r--libaltos/libaltos_linux.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/libaltos/libaltos_linux.c b/libaltos/libaltos_linux.c
index b187bb19..255b9773 100644
--- a/libaltos/libaltos_linux.c
+++ b/libaltos/libaltos_linux.c
@@ -501,32 +501,33 @@ altos_bt_fill_in(char *name, char *addr, struct altos_bt_device *device)
struct altos_file *
altos_bt_open(struct altos_bt_device *device)
{
- static const uint8_t svc_uuid_int[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0x11, 0x01
- };
- uuid_t svc_uuid;
struct sockaddr_rc addr = { 0 };
int status, i;
struct altos_file_posix *file;
sdp_session_t *session = NULL;
- sdp_list_t *search_list, *attrid_list;
- sdp_list_t *response_list = NULL, *r;
- uint32_t range;
- int err;
- int channel = 1;
+ int channel = 0;
if (str2ba(device->addr, &addr.rc_bdaddr) < 0) {
altos_set_last_posix_error();
goto no_file;
}
+#if 0
/*
* Search for the RFCOMM service to get the right channel
*/
session = sdp_connect(BDADDR_ANY, &addr.rc_bdaddr, SDP_RETRY_IF_BUSY);
if (session) {
+ static const uint8_t svc_uuid_int[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0x11, 0x01
+ };
+ int err;
+ uuid_t svc_uuid;
+ uint32_t range;
+ sdp_list_t *search_list, *attrid_list;
+ sdp_list_t *response_list = NULL, *r;
sdp_uuid16_create(&svc_uuid, PUBLIC_BROWSE_GROUP);
search_list = sdp_list_append(NULL, &svc_uuid);
@@ -560,6 +561,9 @@ altos_bt_open(struct altos_bt_device *device)
* the RFCOMM channel
*/
}
+#endif
+ if (channel == 0)
+ channel = altos_bt_port(device);
/* Connect to the channel */
file = calloc(1, sizeof (struct altos_file_posix));