BlueZ-5.35蓝牙设备开关控制的源码
来源:互联网 发布:mac视频播放默认 编辑:程序博客网 时间:2024/05/18 03:50
1,bluetoothctl中开关蓝牙设备的命令
{ "power", "<on/off>", cmd_power, "Set controller power" }
static void cmd_power(const char *arg){dbus_bool_t powered;char *str;if (parse_argument_on_off(arg, &powered) == FALSE)return;if (check_default_ctrl() == FALSE)return;str = g_strdup_printf("power %s", powered == TRUE ? "on" : "off");if (g_dbus_proxy_set_property_basic(default_ctrl, "Powered",DBUS_TYPE_BOOLEAN, &powered,generic_callback, str, g_free) == TRUE)return;g_free(str);}
static void generic_callback(const DBusError *error, void *user_data){char *str = user_data;if (dbus_error_is_set(error))rl_printf("Failed to set %s: %s\n", str, error->name);elserl_printf("Changing %s succeeded\n", str);}2,rfkill命令,可以软件关闭蓝牙设备
rfkill listrfkill block XXrfkill unblock XX3,btmgmt中通过命令power关闭蓝牙设备
{ "power", cmd_power,"Toggle powered state" }
static void cmd_power(struct mgmt *mgmt, uint16_t index, int argc, char **argv){cmd_setting(mgmt, index, MGMT_OP_SET_POWERED, argc, argv);}
static void cmd_setting(struct mgmt *mgmt, uint16_t index, uint16_t op,int argc, char **argv){uint8_t val;if (argc < 2) {print("Specify \"on\" or \"off\"");return noninteractive_quit(EXIT_FAILURE);}if (strcasecmp(argv[1], "on") == 0 || strcasecmp(argv[1], "yes") == 0)val = 1;else if (strcasecmp(argv[1], "off") == 0)val = 0;elseval = atoi(argv[1]);if (index == MGMT_INDEX_NONE)index = 0;if (send_cmd(mgmt, op, index, sizeof(val), &val, setting_rsp) == 0) {error("Unable to send %s cmd", mgmt_opstr(op));return noninteractive_quit(EXIT_FAILURE);}}
static unsigned int send_cmd(struct mgmt *mgmt, uint16_t op, uint16_t id,uint16_t len, const void *param,void (*cb)(uint16_t id, uint16_t op,uint8_t status, uint16_t len,const void *param)){struct command_data *data;unsigned int send_id;data = new0(struct command_data, 1);if (!data)return 0;data->id = id;data->op = op;data->callback = cb;send_id = mgmt_send(mgmt, op, id, len, param, cmd_rsp, data, free);if (send_id == 0)free(data);return send_id;}
阅读全文
1 0
- BlueZ-5.35蓝牙设备开关控制的源码
- BlueZ-5.35蓝牙设备扫描源码分析
- 蓝牙BlueZ的移植
- 命令行控制蓝牙开关
- 蓝牙 Bluez
- NanoPi NEO Air的核版本和蓝牙协议栈(bluez)版本不一致导致的蓝牙无法链接设备
- 票据打印机-蓝牙的开关
- 基于BlueZ的C语言蓝牙编程
- 基于BlueZ的C语言蓝牙编程
- 基于BlueZ的C语言蓝牙编程
- 基于BlueZ的C语言蓝牙编程
- 关于mini2440蓝牙驱动BLUEZ的移植
- 基于BlueZ的C语言蓝牙编程
- 蓝牙协议栈Bluez的移植
- 开发android客户端通过乐联网控制设备的开关
- Android 命令行控制蓝牙开关【转】
- android 蓝牙 开关的方法
- linux蓝牙编程 bluez
- iOS好用的分类工具 让开发更简单 WHKit
- HTML中CSS的3种基本使用方式
- jeesite框架搭建的相关问题
- 中文,免费,零起点,完整示例,基于最新的Python 3版本
- gradle打jar包,依赖分离
- BlueZ-5.35蓝牙设备开关控制的源码
- 读《程序员》2017年4期
- Linux常用基本命令 -用户、权限管理who,whoami,exit
- js高级教程阅读笔记 第五章-单体内置对象
- ubuntu 问题处理 “could not apply the stored configuration for monitors”
- UVA 120 Stacks of Flapjacks
- OWIN详解
- 颜色分类-LintCode
- Java数据结构与算法