aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Huang <jimmy.huang@intel.com>2016-09-23 09:55:03 -0700
committerJimmy Huang <jimmy.huang@intel.com>2016-09-23 09:59:39 -0700
commit9a5a4f8c302494568a4509284f33bf16a65c3b5a (patch)
tree4d031e5adc722fa36718cdb297caaf6b5bb1eb54
parent97e5e7e70344879e7c075982a1567b56fc94e03c (diff)
[BLE] Implement missing disconnect() API
Signed-off-by: Jimmy Huang <jimmy.huang@intel.com>
-rw-r--r--docs/ble.md7
-rw-r--r--src/zjs_ble.c17
2 files changed, 24 insertions, 0 deletions
diff --git a/docs/ble.md b/docs/ble.md
index 107e9e4..0632bf5 100644
--- a/docs/ble.md
+++ b/docs/ble.md
@@ -33,6 +33,7 @@ specific API functions.
[NoInterfaceObject]
interface BLE {
+ void disconnect();
void on(string eventType, EventCallback callback);
void startAdvertising(string name, string[] uuids, string url);
void stopAdvertising();
@@ -90,6 +91,12 @@ interface Characteristic {
API Documentation
-----------------
+### BLE.disconnect
+
+`void disconnect();`
+
+Disconnect the remote client.
+
### BLE.on
`void on(string eventType, EventCallback callback);`
diff --git a/src/zjs_ble.c b/src/zjs_ble.c
index 5b43f5f..9c4e724 100644
--- a/src/zjs_ble.c
+++ b/src/zjs_ble.c
@@ -575,6 +575,22 @@ void zjs_ble_enable() {
bt_conn_auth_cb_register(&zjs_ble_auth_cb_display);
}
+static jerry_value_t zjs_ble_disconnect(const jerry_value_t function_obj,
+ const jerry_value_t this,
+ const jerry_value_t argv[],
+ const jerry_length_t argc)
+{
+ if (zjs_ble_default_conn) {
+ int error = bt_conn_disconnect(zjs_ble_default_conn,
+ BT_HCI_ERR_REMOTE_USER_TERM_CONN);
+ if (error) {
+ return zjs_error("zjs_ble_disconnect: disconnect failed");
+ }
+ }
+
+ return ZJS_UNDEFINED;
+}
+
static jerry_value_t zjs_ble_on(const jerry_value_t function_obj,
const jerry_value_t this,
const jerry_value_t argv[],
@@ -1254,6 +1270,7 @@ jerry_value_t zjs_ble_init()
// create global BLE object
jerry_value_t ble_obj = jerry_create_object();
+ zjs_obj_add_function(ble_obj, zjs_ble_disconnect, "disconnect");
zjs_obj_add_function(ble_obj, zjs_ble_on, "on");
zjs_obj_add_function(ble_obj, zjs_ble_start_advertising, "startAdvertising");
zjs_obj_add_function(ble_obj, zjs_ble_stop_advertising, "stopAdvertising");