标签: hci

开发人员应该如何了解界面设计,可用性和用户心理以创建出色的软件?

可能重复:
人为因素设计(满足UI设计中的心理需求)

开发人员应该了解用户界面设计,可用性以及人机交互的技术方面?

我们应该采用哪些有关使用场景,用户行为模式以及用户对计算机交互的心理的知识来设计有效的软件,帮助用户以自然而简单的方式解决问题,而不会构成障碍并制造障碍?

设计软件比构建体系结构,实现需求和创建漂亮的界面要多得多.漂亮的界面可能不一定有用和有效,反之亦然,丑陋的软件实用程序可以成为许多用户喜爱的工具.一个体面的开发人员或设计师应该至少基本的知识来平滑用户体验?

请关注每个答案的一个问题,描述问题,举例,用户体验如何受损以及解决问题的方法是什么.

我将开始:

问题:在一个屏幕上立即显示具有大量控件和选项的界面对用户来说可能是压倒性的.他们将不得不浪费时间浏览所有他们试图找到他们需要的一个选项.他们也会在这个过程中分心,看到另外一个功能,去那里了解它,也许可以阅读帮助,看看它是否可以解决他们的问题,然后是另一个,依此类推,直到它们完全丢失.

示例:作为一个很好的示例,我将引用2007年之前版本的Microsoft Word(以及其他Office应用程序).大量的菜单和选项一直让我感到害怕.我设法记住了我最常需要的选项,但就是这样.额外的一切,我倾向于google我需要了解的东西,这个特殊功能位于选项森林中.

解决方案:隐藏一些逻辑结构的菜单和子菜单背后的所有额外选项,以便用户能够通过逻辑思维过程找到它们.通过将选项分组到选项卡中,2007年的重新设计显然已将问题考虑在内.我发现了许多我需要的新选项,没有谷歌搜索,只是想到它可能属于哪里,并在那里寻找.并不总是有效,但可以感受到改善.

现在,你有什么想法?

cross-platform hci

24
推荐指数
2
解决办法
1605
查看次数

有什么好的例子表明"我不是用户"?

我是一名软件开发人员,拥有可用性工程方面的背景.当我在研究生院学习可用性工程时,其中一位教授有一句口头禅:"你不是用户".我们的想法是,我们需要将UI设计基于实际的用户研究,而不是我们自己关于UI应该如何工作的想法.

从那以后,我看到一些好的例子似乎证明我不是用户.

  • 用户尝试使用电子邮件模板创作工具,并试图输入管道(|)字符.问题是,键盘上的管道中间有一个空间.
  • 在网络应用中,用户看不到首屏内容.常见的.我们告诉她向下滚动.她不知道我们在谈论什么,也不熟悉滚动拇指.
  • 我正在听技术支持电话.Rep告诉用户关闭浏览器.在后台我听到Windows关机叮当声.

这有什么其他好的例子?

编辑:为了澄清,我正在寻找开发人员做出假设的例子,这些假设对于用户将会知道,理解等等是非常错误的.

usability user-interface hci ucd

16
推荐指数
2
解决办法
882
查看次数

以编程方式删除Linux命令行上的所有蓝牙设备

我可以用hcitool或我的C程序扫描所有可用的蓝牙设备.

我可以使用它的地址和简单代理python脚本将设备配对.

我想知道我是否也可以使用hcitool,hciconfig或某种蓝牙命令删除配对设备.

我知道检测到的hci0控制器设备的信息存储在/ var/lib/bluetooth/XX:XX:XX:XX:XX:XX中,其中XX:XX:XX:XX:XX是hci控制器的地址.

这对于测试配对,连接和断开设备非常有用.

linux bluetooth hci bluez

13
推荐指数
5
解决办法
2万
查看次数

如何在Java中处理多个鼠标输入?

我的一个朋友让我实现了一个蓝色和红色指针来表示两个独立鼠标的输入,以加快混音台场景的实时音频混合.我很乐意,但我认为这是一个好主意,我不知道从哪里开始寻找可能的解决方案.

我应该从哪里开始研究实现双鼠标输入的可行方法?

java mouse hci

12
推荐指数
1
解决办法
5560
查看次数

正式表达可用性要求的最佳方式是什么?

我正在编写一个系统需求文档,需要包含与系统可用性相关的非功能性需求,但我不确定表达它的最佳方式.

"系统应该易于使用"对我来说似乎有点模糊,而且不可测试.是否有任何与程序可用性相关的"官方"标准/指南?

usability requirements hci

12
推荐指数
1
解决办法
2万
查看次数

使用hcitool设置广告包

关于如何将USB蓝牙4加密狗设置为iBeacon,有一篇着名的博客文章.它归结为这个神奇的命令:

sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00
Run Code Online (Sandbox Code Playgroud)

这个例子的问题是它是如此不透明,很难以任何更通用的格式使用它.我已经能够分开一点:

sudo hcitool -i hci0 cmd
Run Code Online (Sandbox Code Playgroud)

将hci命令发送到hci0设备

0x08 0x0008 
Run Code Online (Sandbox Code Playgroud)

设置广告包是神奇的,其他stackoverflow命令说"只是使用它,不要问

1e
Run Code Online (Sandbox Code Playgroud)

是以字节为单位的数据包后面的整个ENTIRE的长度

02 01 1a 1a
Run Code Online (Sandbox Code Playgroud)

是用于设置广告包的标志(详情请求)

ff 4c 00 ...
Run Code Online (Sandbox Code Playgroud)

是编码iBeacon信息的"公司特定数据"

我试图做的是将"FF ..."字节替换为用于设置NAME参数"04 09 41 42 43"的操作码(应将其设置为ABC),但这不起作用. …

bluetooth hci bluetooth-lowenergy bluez ibeacon

11
推荐指数
3
解决办法
2万
查看次数

即使使用hcitool lescan可以发现设备,BLE gatttool也无法连接

我正在使用USB蓝牙适配器运行RPi.当我使用hcitool时,我可以发现SmartTag设备.但是当我使用gatttool时,我无法连接.它说"主机停机(112)".这是我的命令:

$ sudo hcitool lescan
LE Scan ...
BC:6A:29:AB:DE:2B (unknown)
BC:6A:29:AB:DE:2B SensorTag
Run Code Online (Sandbox Code Playgroud)

检查我的RPi上的蓝牙适配器我得到:

$ hcitool dev
Devices:
        hci0    5C:F3:70:60:E6:1B
Run Code Online (Sandbox Code Playgroud)

然后,当我像这样使用gatttool时,我得到:

$ sudo gatttool -i hci0 -b BC:6A:29:AB:DE:2B -I
[   ][BC:6A:29:AB:DE:2B][LE]>
Run Code Online (Sandbox Code Playgroud)

当我输入connect时,我得到了这个:

[   ][BC:6A:29:AB:DE:2B][LE]> connect
Connecting... connect error: Host is down (112)
[   ][BC:6A:29:AB:DE:2B][LE]>
Run Code Online (Sandbox Code Playgroud)

我在网上发现一些信息说"主机已关闭"意味着蓝牙传感器不在可发现模式.但就SmartTag而言,这是不正确的,因为我按下TI所说的传感器上的一个按钮(侧面按钮)以使其可被发现.hcitool lescan使用同一个来查找设备.还有一个Android应用程序可以在手机上运行,​​当按下相同的按钮时,它可以扫描,连接和读取SmartTag传感器.

有谁知道问题可能是什么?提前致谢

hci sensor raspberry-pi bluetooth-lowenergy gatt

10
推荐指数
1
解决办法
2万
查看次数

Grep hcitool lescan输出

我如何grep'hcitool lescan'的输出或者将其输出到任何东西.似乎当我从'hcitool lescan'输出任何东西时,我没有输出.

root@edison:/mnt/rtd# hcitool lescan |grep B

^Croot@edison:/mnt/rtd# hcitool lescan | tee foo

^Croot@edison:/mnt/rtd# hcitool lescan
LE Scan ...
B0:B4:48:xx:xx:xx (unknown)
B0:B4:48:xx:xx:xx xxxxxxxx
B0:B4:48:yy:yy:yy (unknown)
B0:B4:48:yy:yy:yy yyyyyyyy
Run Code Online (Sandbox Code Playgroud)

pipe hci bluetooth-lowenergy bluez intel-edison

9
推荐指数
1
解决办法
1661
查看次数

在 Linux 上直接控制 HCI 设备(绕过蓝牙驱动程序)

我需要在没有 Linux 驱动程序/内核干扰的情况下直接控制 HCI 设备。例如,当创建到外围设备的 LE 连接时,驱动程序会独立发送一个我想避免的“LE 连接更新”命令。

我想到了两种方法来解决这个问题:

  1. 配置蓝牙驱动程序以某种方式禁用对 HCI 设备的干扰(类似于 hciattach 上的 -r 标志),然后使用常规 AF_BLUEOOTH 套接字控制 HCI 设备。
  2. 禁用这个特定的 HCI 设备,但保留父字符设备并直接连接到它。

到目前为止,我还没有成功找到如何实施这些方法中的任何一种的方法。

我还应该提到,我仍然需要一个不同的 HCI 设备以供系统“正常”使用,因此完全禁用蓝牙驱动程序不是一种选择。

linux bluetooth hci linux-device-driver bluez

9
推荐指数
1
解决办法
2139
查看次数

使用hciattach蓝牙over uart?

我正在使用QN9021SoC controller mode(BLE蓝牙核心规范v4.0).它支持一些标准HCI命令以及一些供应商特定命令.我想把它贴在我的ubuntu笔记本电脑上.

我使用的命令是hciattach.

hciattach -s 9600 /dev/ttyUSBx any 9600 noflow nosleep 
Run Code Online (Sandbox Code Playgroud)

hcidump执行时的节目sudo hciconfig hci1 up.

HCI sniffer - Bluetooth packet analyzer ver 5.37
device: hci1 snap_len: 1500 filter: 0xffffffffffffffff
> HCI Event: Command Complete (0x0e) plen 12
    Read Local Supported Features (0x04|0x0003) ncmd 11
    status 0x00
    Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
> HCI Event: Command Complete (0x0e) plen 12
    Read Local Version Information …
Run Code Online (Sandbox Code Playgroud)

linux bluetooth hci kernel-module bluez

8
推荐指数
2
解决办法
5013
查看次数