1. 处理简单的电脑问题,比如,连接打印机、备份文件或者安装网卡。你不需要成为深入了解诸如超频CPU或者是入侵注册表之类问题的专家;但是因为你从事IT 行业,所以人们会期待你能够解决一般的电脑故障。(如果你手下的IT技术人员没有达到这样的水准,那么开除他们。参考:如何解雇IT技术人员) 2. 客户服务。从CIO到高级架构师都应该能够坐在客服的位置上并且接听客服热线,这样一来你不仅可以分享电话那端客户的喜悦,而且有机会给他们讲解使用的方法从而避免以后出现严重的问题。 3. 公众演讲。你应该在同僚面前做至少一次公开的演讲,哪怕是介绍即时通讯系统如何工作的五分钟演示,这样一来,你可以逐渐掌握在众人面前如何沉着稳定的解释一件事情的能力。如果你比较紧张,那么你可以请一个助手或者采用圆桌会议的形式,一旦你陷入了僵局,总有人会站出来帮你释放压力。 4. 给别人讲课。最好的学习方式是教导他人。 5. 多听少说。我很少谈论自己不知道的事情,我更愿意倾听其他人讨论一些事情和想法,“哦,真希望我早点知道这个”。 6. 网络常识。无论你是否是网络工程师、客服人员、业务分析员或者系统管理员,你都应该明白网络的基本原理并且能够解决一些基础的故障,你应该了解域名解析并且知道如何检查,包括使用ping命令以及跟踪路由信息。 7. 系统管理,比如文件权限、访问控制以及电脑怎样和域控制器交互。你不必成为专业的系统管理员,但是多了解一些系统方面的知识可以减少很多令人头疼的麻烦。 8. 网络捕捉。每一个IT从业人员都应该会使用wireshark、netmon、snoop或者其他一些基本的网络捕捉工具。你不需要了解一切,但是应该能够捕捉网络异常并且提交给专业的网络工程师审查。 9. 延迟和带宽。延迟是指收发数据包所需要的时间,而带宽是指一次连接所能够携带的数据量。他们之间有关联,但是并不形成简单的比例关系。一个高带宽利用率的连接可能会导致延迟增加;但是如果连接没有过载,增加带宽并不会减少延迟。
一,发射器情况:有1个Service,Service下有2个Characteristic,其中1个Characteristic命名为writeCharacteristic(FFF1)具有read,write 2个属性,另外1个Characteristic命名为notifyCharacteristic(FFF2)具有notify属性
以上信息可以在获得Characteristic后用日志查看,代码如下:writeCharacteristic的Properties返回10,说明具有?PROPERTY_READ(和PROPERTY_WRITE (8)
输出结果如下:
二,任务:手机APP中输入指定命令,发送后,发射器会把执行结果返回到手机APP上显示
1蓝牙连接成功后,把所有Characteristic查找到
2执行下面代码使能notifyCharacteristic的notify, 将会在此通道(FFF2)产生有关命令操作的执行结果通知。
每产生一次采集结果后,将会在FFF2通道产生一个 notify 通知事件,附带了本次采集结果,
APP 可以直接在回调函数onCharacteristicChanged中进行处理和使用。处理完的结果通过广播返回到界面或者保存到数据库
4要考虑十六进制转换
(1)输入的命令转换为十六进制字节数组
mSCharacteristic.setValue(Conversion.hexStringToByteArray(theString));
mBluetoothLeService.writeCharacteristic(mSCharacteristic);
在App输入框中输入执行命令:0155AA00这是个字符串,并不代表你的真实目的,你是把这个字符串看成4个字节的16进制形式的命令:00000001? 01010101? 10101010? 00000000,但由于是String类型,计算机中每个字符是1个字节,所以计算机把你的输入当作11个字节的数据00000000?00000001 00000101 00000101 00001010 00001010 00000000 00000000,显然这是错误的,所以,首先需要把你输入的十六进制形式的命令转换为字节数组,代码如下:
(2)获取到的数据需要进行处理
三、执行结果
四、以上任务卡了3天做不出来,主要原因如下:
1,不清楚每个Characteristic的属性,fff1可读可写,fff2Notify,可以按一查看
2,不清楚流程:
(1)先使能notifyCharacteristic(二、2)
(2)对发射器进行write命令操作(二、3)
(3)子BluetoothGattCallback的onCharacteristicChanged方法里对发射器返回的数据进行处理。
mBluetoothGatt.writeCharacteristic(characteristic);如果把命令成功写到发射器,会触发:
BluetoothGattCallback的? onCharacteristicWrite方法,这里面不做什么可以不用要
执行代码writeCharacteristic对通道FFF1进行写命令操作,每产生一次采集结果后,
将会在FFF2通道产生一个 notify 通知事件,附带了本次采集结果, APP 可以直接在回调函数中进行处理和使用。
3,写到mSCharacteristic的值没有转成十六进制字符串(二、4)导致写进去的值是错误的
五、扫描广播、连接、绑定
1,Android手机为central,GATT client;发射器为peripheral,GATT server
Central vs. peripheral:? 中心设备和外围设备的概念针对的是BLE连接本身。Central角色负责scan advertisement。而peripheral角色负责make advertisement。
GATT server vs. GATT client:这两种角色取决于BLE连接成功后,两个设备间通信的方式。两个设备通过BLE通信,首先需要建立GATT连接。这里我们讲的是Android设备作为client端,连接GATT Server。
?问:Client和Server节点是如何定义呢?
答:通俗地说吧,Server(服务器)就是数据中心,Client(客户端)就是访问数据者。特别说明,它与主/从设备是独立的概念:一个主设备既可以
角色 | 职位 |
负责人 | Unity3d工程师 |
队员 | UI设计师 |
队员 | iOS工程师 |
队员 | 安卓工程师 |
队员 | 前端工程师 |
队员 | 后端工程师 |