【工作项目积累】
工作中遇到的疑难杂症 沉淀下来
程序手艺人
多年嵌入式音频设备产品化开发经验,在车载娱乐系统、智能音箱有丰富的实战开发经验。
展开
-
【Linux Auido篇】解决音频技术难题的有效方法
在日常工作中,我经常会遇到各种技术难题,有时候即使加班加点也无法解决。然而,有一次我静下心来,翻阅了关于相关技术话题的文章,发现其中一些观点对解决这个问题非常有帮助。在理解这些观点后,我顿时感到茅塞顿开,那种解决问题的喜悦和成就感真的非常好。原创 2019-10-13 16:29:26 · 953 阅读 · 4 评论 -
Google Assistant 添加 Light Action
1. 开发过程阅读的文档Integrating Smart Home Devices with the Google Assistant , 视频介绍了整个开发Google Assistant Action的过程参考谷歌官方提供的 Smart Home Washer,可以尝试把Demo跑起来,熟悉下整个流程。其中涉及到Firebase服务,其实和AWS Lambda类似,而Fireba...原创 2019-05-16 21:24:45 · 1040 阅读 · 0 评论 -
Google Assistant SmartHome 入门指南
需求通过Google Assistant 控制一些从设备(Light, Washer等设备), Youtube上一个简短的视频介绍了Google Assistant控制SmartHome的流程。Integrating Smart Home Devices with the Google AssistantSmart Home的开发文档Google Assistant控制第三方从设备,必须...原创 2019-05-09 21:20:44 · 3471 阅读 · 5 评论 -
[ 后端篇 ] 03 - 熟悉AWS中的常用服务
开发后端自然离不开云服务,这里选用常用的亚马逊云(AWS)作为介绍。 如国内的阿里云,腾讯云原理相同,看一下官方文档即可明白。AWS中服务有很多,其中实际开发中经常用到的就几种,这里初步记录下名词解释Amazon EC2 全称是 Amazon Elastic Compute Cloud 在 Amazon Web Services (AWS) 云中提供可扩展的计算容量。使用 Amazon...原创 2019-03-09 19:07:46 · 911 阅读 · 0 评论 -
[ 后端篇 ] 05 - AWS DynamoDB 入门教程
DynamoDB 属于AWS 专有的 NoSQL 数据库服务。其实和Mongod类似。由于DynamoDB 属于AWS的,需要下载专有的工具操作。在 DynamoDB 中,表、项目和属性是您使用的核心组件。表 是项目 的集合,而每个项目是属性 的集合。DynamoDB 使用主键来唯一标识表中的每个项目,并且使用二级索引来提供更大的查询灵活性。您可以使用 DynamoDB 流 捕获 Dynamo...原创 2019-03-11 20:53:39 · 1110 阅读 · 0 评论 -
[ 后端篇 ] 04 - 一次完整的HTTP连接
为了了解HTTP 具体的传输协议,花时间阅读了MDN 上的的HTTP协议说明,写的很详细,中英文版本都有。 这里把看完的一些知识点重点记录超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。 它被设计用于Web浏览器和Web服务器之间的通信。HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种...原创 2019-03-10 17:07:17 · 415 阅读 · 0 评论 -
[ 后端篇 ] 09 - AWS DynamoDB Pagination(分页)
当数据量过多的时候,往往数据不能全部读取,需要进行分页读取,可以看到到DynamoDB API接口的限制:BatchGetItemA single operation can retrieve up to 16 MB of data, which can contain as many as 100 items. BatchGetItem will return a partial res...原创 2019-04-20 10:58:14 · 2801 阅读 · 0 评论 -
[ 后端篇 ] 10 - AWS API 返回 Endpoint request time out
记录解决这个bug 心理过程原创 2019-04-20 11:24:53 · 1930 阅读 · 0 评论 -
[ 后端篇 ] 08 - AWS DynamoDB batchGet() API 返回 Error
Node.js 操作DynamoDB中的batchGet() API返回 :返回 { ValidationException: Too many items requested for the BatchGetItem call} 错误信息然后就去重新阅读官网的BatchGetItemAPI文档也可以参考 错误处理意思是 : 如您请求超过100个项目,BatchGetItem将返回V...原创 2019-04-15 21:11:48 · 587 阅读 · 0 评论 -
[ 后端篇 ] 02 - 部署Node环境
简介原创 2019-03-10 22:42:42 · 389 阅读 · 0 评论 -
[ 后端篇 ] 01 - Node 学习之路
2019年其中主要的一个目标就是打通后端学习的过程原创 2019-03-09 18:41:43 · 303 阅读 · 0 评论 -
[ 后端篇 ] 07 - AWS DynamoDB操作错误
使用数据库的batchWrite() API 返回的错误userBindBatchWriteErr -> { ValidationException: The provided key element does not match the schema at Request.extractError (/home/mike/Work/Lambda-JoyAgent/node_m...原创 2019-03-24 16:43:38 · 1120 阅读 · 0 评论 -
[ 后端篇 ] 06 - AWS DynamoDB 操作二三事
项目中有一个小小的需求,实现对数据库的子键更新。如下:以下的数据存放在数据库中的TestDemo表中 OP: "UpdateTestDemo", ID: "CCCCXXXXXXX", Token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", Info: { Email: "email@sugrsugr.com", ...原创 2019-03-19 23:19:07 · 520 阅读 · 0 评论 -
[ 物联网篇 ] 39 -嵌入式设备WiFi P2P功能开发
项目场景:提示:这里简述项目相关背景:项目场景: 项目平台主要使用 海思 Hi3556 + 博通WiFi Chip 模组实现的无屏的行车记录仪,需要把实施录像通过WiFi 传输到APP进行实时流的显示,基本常用的方式是AP的方式,为了优化体验,使用WiFi P2P 的方式进行传输。解决方案:1. 服务端流程2. 客户端流程嵌入式设备端以及APP端都是借助于Wi-Fi Direct - P2P module 实现WiFi P2P 的通讯连接的。结合参考资料中的文章介绍,实现一个WiF原创 2021-01-31 18:07:26 · 1052 阅读 · 1 评论 -
玩转「Wi-Fi」系列之wpa_supplicant - main分析(十)
这一章主要进行wpa_supplicant_init函数的分析struct wpa_global * wpa_supplicant_init(struct wpa_params *params){ struct wpa_global *global; //设置全局回调函数 wpa_msg_register_ifname_cb(wpa_supplicant_msg_...原创 2018-07-25 07:16:05 · 1284 阅读 · 0 评论 -
玩转「Wi-Fi」系列之wpa_supplicant - main分析(九)
命令启动wpa_supplicnt 一般通过如下参数进行启动: wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf其中比较主要的是-c參數, 指定启动配置文件。配置文件的模板路径为 wpa_supplicant/wpa_supplicant.conf, 官网有对该文件参数的详细描述 。 主要的参数含义: ...原创 2018-06-26 08:05:47 · 1673 阅读 · 0 评论 -
[ 物联网篇 ] - MQTT协议是如何工作的 ?
翻译这篇文章,提升对MQTT的理解翻译 2018-12-11 21:34:08 · 1942 阅读 · 0 评论 -
Alexa Voice Service 概述
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585Alexa语音服务允许开发者通过麦克风和扬声器为连接的产品提供语音功能.一旦集成,你的产品将有权访问Alexa内置功能(如音乐播放、定时器和闹钟、快递追踪、电影列表、日历管理等)以及使用Alexa技能工具包开发的第三方技能. AVS由与客户端功能对应的接口组成,如语音翻译 2018-01-07 17:10:28 · 3893 阅读 · 0 评论 -
mbed TLS 简明教程(一)
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585概述mbed tls库的设计可以轻松地与现有(嵌入式)应用程序集成,并为安全通讯、密码学和密钥管理提供构建模块.本教程将帮助你了解如何执行这些步骤. mbed tls 被设计成尽可能松散耦合,让你只需要整合你需要的部分,而不需要关注其余部分.这也为mbed t翻译 2018-01-27 09:21:29 · 15116 阅读 · 0 评论 -
mbed TLS 简明教程(三)
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585SSL库是做什么的?SSL库处理应用程序的安全套接字层(SSL)协议的复杂性.相反,像mbed TLS或Polar SSL这样 的SSL库更可能处理传输层安全性(TLS)协议,因为SSL大多数已经过时.什么是SSL?SSL库实现SSL协议或更准确地说是其后翻译 2018-01-29 08:13:17 · 2655 阅读 · 0 评论 -
Android中管理代码基本工作流程
描述 管理Android代码需要使用Git(一个开源的版本控制系统)和Repo(Git上运行的Google构建的存储库管理工具)GitGit用在处理分布在多个存储库项目中,Android使用Git进行本地操作,如本地分支,提交,差异和编辑,安装Andriod项目的挑战之一是如何最好的支持外部社区,从爱好者社区到大型OEM构建大众市场消费者设备. 我们希望组件可以被替换 并且我们希望有翻译 2017-12-29 08:29:37 · 2212 阅读 · 0 评论 -
AVS之Notifications概述
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585通知指示告知用户, Alexa skill和Domains提供了新的内容,当发送通知时,根据产品的功能,通过视觉和音频指示通知用户.例如产品可能会闪烁黄色LED并播放音频文件,此时用户可以通过询问 “Alexa, what did I miss?” or “Alexa,翻译 2018-01-08 13:14:48 · 597 阅读 · 0 评论 -
mbed TLS 简明教程(二)
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585上一篇文章mbed TLS 简明教程(一) 简要描述了mbed TLS. 下面主要通过示例程序来说明mbed tls的连接过程. 示例客户端 让我们假设有一个简单的网络客户端,试图打开一个到HTTP服务器的连接并读取默认页面.应用程序如下:#inclu翻译 2018-01-27 13:37:23 · 14813 阅读 · 0 评论 -
AVS之AudioPlayer概述(一)
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585Alexa语音服务(AVS)由对应于基本客户端(或产品)功能的接口组成,如音频播放,音量控制,或TTS.这些接口与内置的Alexa功能以及使用Alexa Skills Kit (ASK)开发的第三方技能有一对多的关系. 例如,Amazon Music, Flash Bri翻译 2018-01-11 08:54:49 · 1569 阅读 · 0 评论 -
Linux平台:Alexa语音服务快速入门指南
概述用于C++的AVS设备SDK为Alexa语音服务提供了一个现代化的C++(11或更高版本)接口,允许开发人员将智能语音控制添加到连接的产品中.它是模块化和抽象的,提供组件去处理离散功能,例如语音捕获,音频处理和通讯, 每个组件都开放API允许你使用和定制.它还包含一个示例应用程序,演示与AVS的互动。 快速设置你的树莓派开发环境和学习如何优化libcurl的大小,参见wiki或cli翻译 2017-11-19 11:27:11 · 6873 阅读 · 15 评论 -
AVS之Notifications接口
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585通知接口允许AVS通知用户新的内容,可以从Alexa官网或使能Alexa skill. 具体来说,该接口暴露了两条指令,指示你的客户端呈现并清除用户的视觉和音频指示. 这个接口不提供通知内容,它只提供用于通知用户新内容可用的音频和视觉指示符.例如,该产品可能会闪烁黄色翻译 2018-01-09 08:48:07 · 464 阅读 · 0 评论 -
Android中Repo 常用命令参考
原文地址 译者:远方的自由 转载请注明出处: http://blog.csdn.net/z2066411585 Repo使用形式如下: repo 可选元素显示在[]中,例如,许多命令将项目列表作为参数,你可以指定项目列表作为项目的本地源目录的名称列表或路径列表repo sync [ ... ]repo sync [ ... ]help翻译 2018-01-24 07:44:29 · 2870 阅读 · 0 评论 -
[ 物联网篇 ] 07 - buildroo文件系统中启用 Systemd
在buildroot-2019.05-rc2版本中,编译imx8mqevk固件,加载文件系统,启动进程的方式是sysvinit,而 imx8mqevk 原有代码包中的Yocto 文件系统启动进程的方式是systemd。尝试下 buildroot 中改为systemd方式make freescale_imx8mqevk_defconfigmake all 其中主要设置 System con...原创 2019-05-21 20:30:14 · 2192 阅读 · 0 评论 -
Linux wext和nl80211接口简介
赠书 | 异步2周年,技术图书免费选 每周荐书:渗透测试、K8s、架构(评论送书) 项目管理+代码托管+文档协作,开发更流畅Linux wext和nl80211接口简介标签: WEXTNL802112013-09-21 10:41 14183人阅读 评论(0)收藏举报分类: wireless l转载 2017-08-23 21:29:48 · 1315 阅读 · 0 评论 -
[ 物联网篇 ] 06 - NXP-i.MX 8MM从SD卡启动失败MMC card init failed!
编译固件bitbake -k core-image-minimal//编译出的固件core-image-minimal-imx8mmevk-20190508073946.rootfs.sdcard.bz2//压缩固件sudo bzip2 -d core-image-minimal-imx8mmevk.sdcard //得到固件core-image-minimal-imx8mmevk....原创 2019-05-21 10:55:33 · 3497 阅读 · 0 评论 -
nghttp2 - HTTP/2 C Library 简明教程(一)
nghttp2 - HTTP/2 C Librarynghttp2 是在C中的超文本传输协议版本2的实现. HTTP/2 的框架层被实现为可重用的C库. 最重要的是我们实现了一个HTTP/2客户端,服务器和代理.还为HTTP/2开发了负载测试和基准测试工具. HPACK编码器和解码器可用作公共API。 还有一个实验性的高级C++库. 我们有这个库的Python绑定,但是我们还没有原创 2018-01-30 08:32:03 · 11585 阅读 · 1 评论 -
Linux下C语言操作MySQL
1 简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。对于Mysql的前途,没有任何人抱乐观的态度。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为原创 2014-10-13 11:51:13 · 572 阅读 · 0 评论 -
[ 物联网篇 ] 04 - Yocto Project (YP)编译 NXP-i.MX 8MM
NXP i.MX8 系列如下:重点看 i.MX_Yocto_Project_User’s_Guide.pdf ,里面包括的源码的下载/构建/烧录,唯一不足的是,文档不是很新,如何下载i.MX8MM源码,还得走一段弯路源码下载./repo init -u git://source.codeaurora.org/external/imx/imx-manifest.git -b imx-l...原创 2019-04-14 16:11:12 · 2332 阅读 · 1 评论 -
[ 物联网篇 ] 03 - Yocto Project (YP)构建 Alexa SDK
目标 : i.MX8M EVK board 编译出 Alexa SDK (AVS) image , 详细步骤可以参考Build Alexa SDK (AVS) image for i.MX8M EVK board (with Yocto Morty, Kernel4.9)下载源码$ cd <yocto_dir>$ repo init -u https://source.cod...原创 2019-04-09 19:28:41 · 3215 阅读 · 1 评论 -
[ 物联网篇 ] 09 - Buildroot中构建NXP IMX8MM
遇到的两个问题 :下载buildroot-2019.05-rc2版本,构建freescale_imx8mmevk_defconfig(由于imx8mmevk 和imx8mqevk差别不大,因此在imx8mqevk的基础上得到imx8mmevk) , 构建出的固件烧录到开发板,发现无法启动make freescale_imx8mmevk_defconfig make // buildro...原创 2019-05-22 20:17:36 · 4609 阅读 · 2 评论 -
[ 物联网篇 ] 41 - 嵌入式系统中的epoll_wait 的异常处理
场景分析实际调试过程中,通过epoll_wait等待事件的产生,类似于select()调用,其中有一小段伪代码如下:while(1) { .... int ret = epoll_wait(....) if (ret < 0){ goto err_exit }else{ continue; } ...}err_exit: 异常处理... 表面看起来没什么问题,但是时间一旦进程中有调用system()类似的处理, epoll_wait 返回值原创 2021-05-31 20:51:06 · 818 阅读 · 1 评论 -
[ 物联网篇 ] 42 - 嵌入式系统中的通过Executor类解耦
// TODO原创 2021-05-31 21:46:57 · 230 阅读 · 3 评论 -
实现Ubuntu网络快速连接
网络管理工作之后一直以Ubuntu系统为主力开发环境,系统自带的网络管理network和第三方开源网络wicd使用效果一般,连接,切换网络的速度比较慢,由此这里卸载系统的网络管理和第三方应用wicd,以开源库wpa_supplicant 实现一个快速连接网络,切换的小程序系统运行级别其中rc0.d~rc.6.d文件夹下分别对应的是操作系统0-6级运行的状态下需要执行的脚本。此外还有rcS....原创 2018-10-23 18:33:48 · 552 阅读 · 0 评论 -
Ubuntu格式化分区/挂载
分区电脑一般会装两块硬盘,一块SSD,一块机械硬盘,安装Ubuntu系统之后就涉及了分区的操作,这里做一些简单记录查看硬盘信息➜ Downloads >sudo fdisk -l Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectorsUnits: sectors of 1 * 512 = 512 byte...原创 2018-11-12 21:03:14 · 828 阅读 · 0 评论 -
[ 物联网篇 ] 08 - Yocto 文件系统中启用 Sysvinit
NXP Yocto 默认文件系统的启动方式是Systemd ,通过修改配置文件改为Sysvinit启动方式sources/meta-fsl-bsp-release/imx/meta-sdk/conf/distro/include/fsl-imx-preferred-env.inc 中的 # Use systemd as default init manager # VIRTUAL-RUN...原创 2019-05-21 21:09:23 · 2072 阅读 · 1 评论