在home-assistant安装node-red插件后,在配置注意以下:
1、credential_secret随便编写英文字母即可,username和password(注意有两个)需单独设定并且不能与hass账号密码重复,password最好设置为大小写字母跟数字的组合,ssl没有开启的话设置为false(truce可以试试看),设置完成后点击save。
2、点击start运行插件并查看下方log信息(可通过刷新更新log信息),确保『Node-RED』插件正常运行后才可以点击“OPEN WEB UI”。有可能需要重启就正常啦。
3、登录时用的账户密码是hass的账户和密码,不是配置时设定的账户和密码
ESP32/ESP8266 出现Guru Meditation Error错误溯源办法
我们调试ESP32都知道,在idf monitor中,如果出现Guru Meditation Error 错误时,会看到错误出现的具体文件函数以及代码行数。如下这样:
1 | Guru Meditation Error of type StoreProhibited occurred on core 0. Exception was unhandled. |
Linux kernel源码下载地址及在线阅读链接
linux kernel 官方下载地址:
国内个版本的下载地址:
http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/
看代码地址:
在线看源码地址:
Android HDMI和喇叭同时输出声音
因为HDMI I2S & CODEC I2S 在芯片内部都是同一个I2S,因此CODEC有声音时候,也有声音通过I2S 发送到HDMI,这样取消掉HDMI Audio 检测即可实现HDMI和codec 喇叭同时输出。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36diff --git a/services/java/com/android/server/WiredAccessoryManager.java b/services/java/com/android/server/WiredAccessoryManager.java
index c8d3510..2fb231e 100644
--- a/services/java/com/android/server/WiredAccessoryManager.java
+++ b/services/java/com/android/server/WiredAccessoryManager.java
@@ -374,7 +374,7 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks {
//
// If the kernel does not have an "hdmi_audio" switch, just fall back on the older
// "hdmi" switch instead.
- uei = new UEventInfo(NAME_HDMI_AUDIO, BIT_HDMI_AUDIO, 0);
+/* uei = new UEventInfo(NAME_HDMI_AUDIO, BIT_HDMI_AUDIO, 0);
if (uei.checkSwitchExists()) {
retVal.add(uei);
} else {
@@ -385,7 +385,7 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks {
Slog.w(TAG, "This kernel does not have HDMI audio support");
}
}
+*/
return retVal;
}
Android 7.1 AppOpsManager默认允许三方应用浮窗权限
需求
在高版本的SDK中, 第三方应用申请悬浮窗的权限受到了过一步的限制.
除了要在应用中声明对权限的申请:1
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
还需要打开设置中的权限:
应用可以通过代码检测权限是否已获取:1
2
3
4
5AppOpsManager opsMgr = (AppOpsManager)getSystemService(APP_OPS_SERVICE);
int res = opsMgr.checkOp(AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW, Process.myUid(), getPackageName());
if(res != AppOpsManager.MODE_ALLOWED){
showToast(AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW + " not allowed");
}
有可能会抛出异常:1
java.lang.SecurityException: com.android.myapp from uid 10066 not allowed to perform SYSTEM_ALERT_WINDOW
若需要默认打开, 需要修改相关代码
全志A64/A40i音频驱动使用说明书
2. 模块介绍
2.1. 模块功能介绍
2.1.1. audiocodec 功能
A64 audiocodec 硬件上的实现是通过 I2S 接口与 cpu 进行数据流传输,cpu 通过 apb 总线对audiocodec 进行寄存器配置,软件上采用 alsa-asoc 架构实现,具有以下功能。
(1) 支持多种采样率格式(8khz, 11.025 KHz, 12 KHz, 16 KHz, 22.05 KHz, 24 KHz, 32 KHz, 44.1KHz , 48 KHz, 96KHz, 192KHz);
(2)支持 mono 和 stereo 模式;
(3)支持同时 playback 和 record(全双工模式);
(4)支持 3、4 段耳机插拔检测,hook 键检测,耳机音量加减键定制。
2.1.2. Daudio 功能
(1)支持多种采样率格式(8khz, 11.025 khz, 12 khz, 16 khz, 22.05 khz, 24 khz, 32 khz, 44.1khz , 48 khz, 96khz, 192khz);
(2)支持 mono 和 stereo 模式;
(3)支持同时 playback 和 record(全双工模式);
(4)支持 i2s/pcm
微信小程序蓝牙BLE开发——API及流程介绍(一)
微信小程序蓝牙BLE开发——实战案例(二)
上篇主要介绍在开发过程中应用到相关API
操作。接下来介绍个人在项目开发中应用蓝牙BLE
一些事情。
由于时间比较仓促, 有些注释没那么详细。请理解~写的不好欢迎各位大神指。
项目介绍
由于公司近阶段开发的共享产品比较多,有共享
充电宝、陪护床
等,这里就不一一介绍哈。大部分产品通过蓝牙通讯
的。
快捷方便
: 通过扫设备二维码进入小程序使用设备。
- 这里拿最近开发一个产品
售卖机
,生活中比较常见的一个,例如: 储物柜、格子柜等。 - 特点: 一个
售卖机
中有n个小格子(根据产品分类)
微信小程序蓝牙BLE开发——实战遇到问题及踩坑(三)
对于我这种小白,遇到问题是常见的哈。这里记录下,避免日后再踩坑
1. IPHONE6及6PLUS无法搜索到设备?
特别注意: wx.onBluetoothDeviceFoundAPI返回的数据结构, 其中advertisData
数据段。来看下res.devices 的结构
。 有些供应商设备是没有返回的。
返回的数据结构图:
微信小程序蓝牙BLE开发——关于进制转换(四)
关于字节理解
字节(Byte):
是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串。其中下发指令或处理数据时都可以应用到
1B
(byte,字节)=8 bit(比特)
, 相当于一个字符一个
字节能表示的最大
的整数就是255
- 例如: 数据为
5d000001be5d
理解为6个
字节(6B)
ARRAYBUFFER转16进度字符串
1 | // ArrayBuffer转16进度字符串示例 |