apps/wireless/bluetooth/btsak: Remove unnecessary gatt get commands
This commit is contained in:
parent
8eb249eea5
commit
c8a252d4ed
@ -252,8 +252,6 @@ void btsak_cmd_security(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_gatt_exchange_mtu(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_gatt_exchange_mtu_result(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_connect(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_disconnect(FAR struct btsak_s *btsak, int argc,
|
||||
@ -264,17 +262,11 @@ void btsak_cmd_gatt_discover_characteristic(FAR struct btsak_s *btsak,
|
||||
int argc, FAR char *argv[]);
|
||||
void btsak_cmd_gatt_discover_descriptor(FAR struct btsak_s *btsak,
|
||||
int argc, FAR char *argv[]);
|
||||
void btsak_cmd_gatt_discover_get(FAR struct btsak_s *btsak,
|
||||
int argc, FAR char *argv[]);
|
||||
void btsak_cmd_gatt_read(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_gatt_read_multiple(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_gatt_read_get(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_gatt_write(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
void btsak_cmd_gatt_write_get(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[]);
|
||||
|
||||
#endif /* __APPS_EXAMPLES_WIRELESS_BLUETOOTH_BTSAK_BTSAK_H */
|
||||
|
@ -77,6 +77,9 @@ static void btsak_cmd_discover_common(FAR struct btsak_s *btsak,
|
||||
unsigned int argndx;
|
||||
int sockfd;
|
||||
int ret;
|
||||
FAR struct bt_discresonse_s *rsp;
|
||||
struct bt_discresonse_s result[CONFIG_BLUETOOTH_MAXDISCOVER];
|
||||
int i;
|
||||
|
||||
/* Check for help command */
|
||||
|
||||
@ -144,6 +147,10 @@ static void btsak_cmd_discover_common(FAR struct btsak_s *btsak,
|
||||
|
||||
/* Perform the IOCTL to start the discovery */
|
||||
|
||||
btreq.btr_gnrsp = CONFIG_BLUETOOTH_MAXDISCOVER;
|
||||
btreq.btr_grsp = result;
|
||||
btreq.btr_indx = 0;
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
@ -155,7 +162,15 @@ static void btsak_cmd_discover_common(FAR struct btsak_s *btsak,
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Discovery in progress..\n");
|
||||
/* Show the results that we obtained */
|
||||
|
||||
printf("Discovered %d handles:\n", btreq.btr_gnrsp);
|
||||
for (i = 0; i < btreq.btr_gnrsp; i++)
|
||||
{
|
||||
rsp = &result[i];
|
||||
printf("%d.\thandle 0x%04x perm: %02x\n",
|
||||
i, rsp->dr_handle, rsp->dr_perm);
|
||||
}
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
@ -226,6 +241,100 @@ static void btsak_cmd_connect_common(FAR struct btsak_s *btsak, int argc,
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: btsak_cmd_read_common
|
||||
*
|
||||
* Description:
|
||||
* Function used by the read and read_multiple commands.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
static void btsak_cmd_read_common(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[], bool multiple)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
int ret;
|
||||
int sockfd;
|
||||
uint8_t data[HCI_GATTRD_DATA];
|
||||
struct btreq_s btreq;
|
||||
|
||||
memset(&btreq, 0, sizeof(struct btreq_s));
|
||||
|
||||
if (argc < 4 || argc > 5)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"ERROR: Invalid number of arguments. Found %d expected 3 or 4\n",
|
||||
argc - 1);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ret = btsak_str2addr(argv[1], btreq.btr_rdpeer.val);
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Bad value for <addr>: %s\n", argv[1]);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ret = btsak_str2addrtype(argv[2], &btreq.btr_rdpeer.type);
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Bad value for address type: %s\n", argv[2]);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
btreq.btr_rdoffset = 0;
|
||||
btreq.btr_rdnhandles = multiple ? argc - 3 : 1;
|
||||
|
||||
if (!multiple && argc > 4)
|
||||
{
|
||||
btreq.btr_rdoffset = btsak_str2uint16(argv[4]);
|
||||
}
|
||||
|
||||
for (i = 0; i < btreq.btr_rdnhandles; i++)
|
||||
{
|
||||
btreq.btr_rdhandles[i] = btsak_str2uint16(argv[i + 3]);
|
||||
}
|
||||
|
||||
/* Perform the IOCTL to start the read */
|
||||
|
||||
strncpy(btreq.btr_name, btsak->ifname, IFNAMSIZ);
|
||||
btreq.btr_rdsize = HCI_GATTRD_DATA;
|
||||
btreq.btr_rddata = data;
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
ret = ioctl(sockfd, SIOCBTGATTRD, (unsigned long)((uintptr_t)&btreq));
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: ioctl(SIOCBTGATTRD) failed: %d\n", errno);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Show the results that we obtained */
|
||||
|
||||
printf("Read %d bytes:\n", btreq.btr_rdsize);
|
||||
for (i = 0; i < btreq.btr_rdsize; i += 16)
|
||||
{
|
||||
for (j = 0; j < 16 && (i + j) < btreq.btr_rdsize; j++)
|
||||
{
|
||||
if (j == 8)
|
||||
{
|
||||
putchar(' ');
|
||||
}
|
||||
|
||||
printf(" %02x", data[i + j]);
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
}
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Public functions
|
||||
****************************************************************************/
|
||||
@ -287,54 +396,8 @@ void btsak_cmd_gatt_exchange_mtu(FAR struct btsak_s *btsak, int argc,
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("MTU exchange pending...\n");
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: btsak_cmd_gatt_exchange_mtu_result
|
||||
*
|
||||
* Description:
|
||||
* gatt [-h] mget [-h] command
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void btsak_cmd_gatt_exchange_mtu_result(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[])
|
||||
{
|
||||
struct btreq_s btreq;
|
||||
int sockfd;
|
||||
int ret;
|
||||
|
||||
/* Perform the IOCTL to recover the result of the MTU exchange */
|
||||
|
||||
strncpy(btreq.btr_name, btsak->ifname, IFNAMSIZ);
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
ret = ioctl(sockfd, SIOCBTEXRESULT, (unsigned long)((uintptr_t)&btreq));
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: ioctl(SIOCBTEXRESULT) failed: %d\n",
|
||||
errno);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("MTU Exchange Result:\n");
|
||||
if (btreq.btr_expending)
|
||||
{
|
||||
printf("\tState: Pending\n");
|
||||
printf("\tResult: Not yet available\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\tState: Complete\n");
|
||||
printf("\tResult: %u\n", btreq.btr_exresult);
|
||||
}
|
||||
printf("MTU Exchange %s\n",
|
||||
btreq.btr_exresult == 0 ? "succeeded" : "failed");
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
@ -382,68 +445,6 @@ void btsak_cmd_gatt_discover_descriptor(FAR struct btsak_s *btsak,
|
||||
btsak_cmd_discover_common(btsak, argc, argv, GATT_DISCOVER_DESC);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: btsak_cmd_gatt_discover_get
|
||||
*
|
||||
* Description:
|
||||
* gatt [-h] dget [-h]
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void btsak_cmd_gatt_discover_get(FAR struct btsak_s *btsak,
|
||||
int argc, FAR char *argv[])
|
||||
{
|
||||
FAR struct bt_discresonse_s *rsp;
|
||||
struct bt_discresonse_s result[8];
|
||||
struct btreq_s btreq;
|
||||
int sockfd;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
/* Check for help command */
|
||||
|
||||
if (argc == 2 && strcmp(argv[1], "-h") == 0)
|
||||
{
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
if (argc != 1)
|
||||
{
|
||||
fprintf(stderr, "ERROR: No arguments expected\n");
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Perform the IOCTL to get the result of the discovery */
|
||||
|
||||
strncpy(btreq.btr_name, btsak->ifname, IFNAMSIZ);
|
||||
btreq.btr_gnrsp = 8;
|
||||
btreq.btr_grsp = result;
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
ret = ioctl(sockfd, SIOCBTDISCGET, (unsigned long)((uintptr_t)&btreq));
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: ioctl(SIOCBTDISCGET) failed: %d\n", errno);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Show the results that we obtained */
|
||||
|
||||
printf("Discovered:\n");
|
||||
for (i = 0; i < btreq.btr_gnrsp; i++)
|
||||
{
|
||||
rsp = &result[i];
|
||||
printf("%d.\thandle 0x%04x perm: %02x\n",
|
||||
rsp->dr_handle, rsp->dr_perm);
|
||||
}
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: btsak_cmd_gatt_read
|
||||
*
|
||||
@ -455,66 +456,12 @@ void btsak_cmd_gatt_discover_get(FAR struct btsak_s *btsak,
|
||||
void btsak_cmd_gatt_read(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[])
|
||||
{
|
||||
struct btreq_s btreq;
|
||||
int sockfd;
|
||||
int ret;
|
||||
|
||||
if (argc == 2 && strcmp(argv[1], "-h") == 0)
|
||||
{
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
if (argc < 4 || argc > 5)
|
||||
{
|
||||
fprintf(stderr,
|
||||
"ERROR: Invalid number of arguments. Found %d expected 3 or 4\n",
|
||||
argc - 1);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ret = btsak_str2addr(argv[1], btreq.btr_rdpeer.val);
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Bad value for <addr>: %s\n", argv[1]);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ret = btsak_str2addrtype(argv[2], &btreq.btr_rdpeer.type);
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Bad value for address type: %s\n", argv[2]);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
btreq.btr_rdhandles[0] = btsak_str2uint16(argv[3]);
|
||||
btreq.btr_rdnhandles = 1;
|
||||
|
||||
btreq.btr_rdoffset = 0;
|
||||
if (argc > 4)
|
||||
{
|
||||
btreq.btr_rdoffset = btsak_str2uint16(argv[4]);
|
||||
}
|
||||
|
||||
/* Perform the IOCTL to start the read */
|
||||
|
||||
strncpy(btreq.btr_name, btsak->ifname, IFNAMSIZ);
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
ret = ioctl(sockfd, SIOCBTGATTRD, (unsigned long)((uintptr_t)&btreq));
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: ioctl(SIOCBTGATTRD) failed: %d\n",
|
||||
errno);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Read pending...\n");
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
}
|
||||
btsak_cmd_read_common(btsak, argc, argv, false);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -528,11 +475,6 @@ void btsak_cmd_gatt_read(FAR struct btsak_s *btsak, int argc,
|
||||
void btsak_cmd_gatt_read_multiple(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[])
|
||||
{
|
||||
struct btreq_s btreq;
|
||||
int sockfd;
|
||||
int ret;
|
||||
int i;
|
||||
|
||||
if (argc == 2 && strcmp(argv[1], "-h") == 0)
|
||||
{
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_SUCCESS);
|
||||
@ -546,126 +488,7 @@ void btsak_cmd_gatt_read_multiple(FAR struct btsak_s *btsak, int argc,
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ret = btsak_str2addr(argv[1], btreq.btr_rdpeer.val);
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Bad value for <addr>: %s\n", argv[1]);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ret = btsak_str2addrtype(argv[2], &btreq.btr_rdpeer.type);
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Bad value for address type: %s\n", argv[2]);
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
btreq.btr_rdoffset = 0;
|
||||
btreq.btr_rdnhandles = argc - 3;
|
||||
|
||||
for (i = 0; i < btreq.btr_rdnhandles; i++)
|
||||
{
|
||||
btreq.btr_rdhandles[i] = btsak_str2uint16(argv[i + 3]);
|
||||
}
|
||||
|
||||
/* Perform the IOCTL to start the read */
|
||||
|
||||
strncpy(btreq.btr_name, btsak->ifname, IFNAMSIZ);
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
ret = ioctl(sockfd, SIOCBTGATTRD, (unsigned long)((uintptr_t)&btreq));
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: ioctl(SIOCBTGATTRD) failed: %d\n",
|
||||
errno);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Read pending...\n");
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: btsak_cmd_gatt_read_get
|
||||
*
|
||||
* Description:
|
||||
* gatt [-h] rget [-h]
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void btsak_cmd_gatt_read_get(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[])
|
||||
{
|
||||
struct btreq_s btreq;
|
||||
uint8_t data[HCI_GATTRD_DATA];
|
||||
int sockfd;
|
||||
int ret;
|
||||
int i;
|
||||
int j;
|
||||
|
||||
/* Check for help command */
|
||||
|
||||
if (argc == 2 && strcmp(argv[1], "-h") == 0)
|
||||
{
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
if (argc != 1)
|
||||
{
|
||||
fprintf(stderr, "ERROR: No arguments expected\n");
|
||||
btsak_gatt_showusage(btsak->progname, argv[0], EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* Perform the IOCTL to start the discovery */
|
||||
|
||||
memset(&btreq, 0, sizeof(struct btreq_s));
|
||||
strncpy(btreq.btr_name, btsak->ifname, IFNAMSIZ);
|
||||
btreq.btr_rdsize = HCI_GATTRD_DATA;
|
||||
btreq.btr_rddata = data;
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
ret = ioctl(sockfd, SIOCBTGATTRDGET, (unsigned long)((uintptr_t)&btreq));
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: ioctl(SIOCBTGATTRDGET) failed: %d\n", errno);
|
||||
}
|
||||
|
||||
/* Has the read completed? */
|
||||
|
||||
else if (btreq.btr_rdpending)
|
||||
{
|
||||
printf("Read pending. Data not yet available.\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Show the results that we obtained */
|
||||
|
||||
printf("Read:\n");
|
||||
for (i = 0; i < btreq.btr_rdsize; i += 16)
|
||||
{
|
||||
for (j = 0; j < 16 && (i + j) < btreq.btr_rdsize; j++)
|
||||
{
|
||||
if (j == 8)
|
||||
{
|
||||
putchar(' ');
|
||||
}
|
||||
|
||||
printf(" %02x", data[i]);
|
||||
}
|
||||
|
||||
putchar('\n');
|
||||
}
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
}
|
||||
btsak_cmd_read_common(btsak, argc, argv, true);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
@ -712,7 +535,7 @@ void btsak_cmd_gatt_write(FAR struct btsak_s *btsak, int argc,
|
||||
}
|
||||
|
||||
btreq.btr_wrhandle = btsak_str2uint16(argv[3]);
|
||||
btreq.btr_wrnbytes = argc - 3;
|
||||
btreq.btr_wrnbytes = argc - 4;
|
||||
|
||||
if (btreq.btr_wrnbytes > HCI_GATTWR_DATA)
|
||||
{
|
||||
@ -723,7 +546,7 @@ void btsak_cmd_gatt_write(FAR struct btsak_s *btsak, int argc,
|
||||
|
||||
for (i = 0; i < btreq.btr_wrnbytes; i++)
|
||||
{
|
||||
btreq.btr_wrdata[i] = btsak_str2uint8(argv[i + 3]);
|
||||
btreq.btr_wrdata[i] = btsak_str2uint8(argv[i + 4]);
|
||||
}
|
||||
|
||||
/* Perform the IOCTL to start the read */
|
||||
@ -741,54 +564,8 @@ void btsak_cmd_gatt_write(FAR struct btsak_s *btsak, int argc,
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Write pending...\n");
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: btsak_cmd_gatt_write_get
|
||||
*
|
||||
* Description:
|
||||
* gatt [-h] dget [-h]
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void btsak_cmd_gatt_write_get(FAR struct btsak_s *btsak, int argc,
|
||||
FAR char *argv[])
|
||||
{
|
||||
struct btreq_s btreq;
|
||||
int sockfd;
|
||||
int ret;
|
||||
|
||||
/* Perform the IOCTL to recover the result of the write operation */
|
||||
|
||||
strncpy(btreq.btr_name, btsak->ifname, IFNAMSIZ);
|
||||
|
||||
sockfd = btsak_socket(btsak);
|
||||
if (sockfd >= 0)
|
||||
{
|
||||
ret = ioctl(sockfd, SIOCBTGATTWRGET, (unsigned long)((uintptr_t)&btreq));
|
||||
if (ret < 0)
|
||||
{
|
||||
fprintf(stderr, "ERROR: ioctl(SIOCBTGATTWRGET) failed: %d\n",
|
||||
errno);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Write Result:\n");
|
||||
if (btreq.btr_wrpending)
|
||||
{
|
||||
printf("\tState: Pending\n");
|
||||
printf("\tResult: Not yet available\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\tState: Complete\n");
|
||||
printf("\tResult: %u\n", btreq.btr_wrresult);
|
||||
}
|
||||
printf("Write %s\n",
|
||||
btreq.btr_wrresult == 0 ? "succeeded" : "failed");
|
||||
}
|
||||
|
||||
close(sockfd);
|
||||
|
@ -122,11 +122,6 @@ static const struct btsak_command_s g_btsak_gatt_commands[] =
|
||||
(CODE void *)btsak_cmd_gatt_exchange_mtu,
|
||||
"[-h] <addr> public|private"
|
||||
},
|
||||
{
|
||||
"mget",
|
||||
(CODE void *)btsak_cmd_gatt_exchange_mtu_result,
|
||||
"[-h]"
|
||||
},
|
||||
{
|
||||
"connect",
|
||||
(CODE void *)btsak_cmd_connect,
|
||||
@ -152,11 +147,6 @@ static const struct btsak_command_s g_btsak_gatt_commands[] =
|
||||
(CODE void *)btsak_cmd_gatt_discover_descriptor,
|
||||
"[-h] <addr> public|private [<start> [<end>]]"
|
||||
},
|
||||
{
|
||||
"dget",
|
||||
(CODE void *)btsak_cmd_gatt_discover_get,
|
||||
"[-h]"
|
||||
},
|
||||
{
|
||||
"read",
|
||||
(CODE void *)btsak_cmd_gatt_read,
|
||||
@ -167,20 +157,10 @@ static const struct btsak_command_s g_btsak_gatt_commands[] =
|
||||
(CODE void *)btsak_cmd_gatt_read_multiple,
|
||||
"[-h] <addr> public|private <handle> [<handle> [<handle>]..]"
|
||||
},
|
||||
{
|
||||
"rget",
|
||||
(CODE void *)btsak_cmd_gatt_read_get,
|
||||
"[-h]"
|
||||
},
|
||||
{
|
||||
"write",
|
||||
(CODE void *)btsak_cmd_gatt_write,
|
||||
"[-h] <addr> public|private <handle> <byte> [<byte> [<byte>]..]"
|
||||
},
|
||||
{
|
||||
"wget",
|
||||
(CODE void *)btsak_cmd_gatt_write_get,
|
||||
"[-h]"
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user