[小年答谢,新春送礼]免费抽取1000元京东卡+更多新春好礼~查看详情>>> 目录:前言背景知识编译用户程序框架子系统基于AbilityKit开发的Ability总结 前言上一篇,我们体验了一下鸿蒙上的界面的开发流程,这一篇我们继续深入一点点,尝试打通从用户态UI到内核态HDF之间的联系.其中涉及到的调用关系比较复杂,建议在"用鸿蒙开发AI应用(五)HDF 驱动补光灯"的基础上阅读本文,HDF的相关细节这里就不在赘述了. 背景知识用户程序框架子系统包含两个大的模块:A…
目录:前言JS应用开发框架原理内置模块实现ace模块开发界面程序 前言上回说到,用C++来写UI界面的开发效率不如JS+HTML来的高,但设备开发又免不了要通过内核态来操作硬件,这里我们就要先打通从JS框架到设备驱动之间的联系.本章基于HDF驱动和JS+CSS+HTML的技术上进行,相关内容可以回顾用鸿蒙开发AI应用(五)HDF 驱动补光灯和用鸿蒙开发AI应用(六)UI篇这两篇.  JS应用开发框架原理在第六篇里,我们已经体验了一下使用JS开发界面的流程,这里简单分析ace的实现原理. 先看框架…
目录: 前言 开发板简介 产品特色及功能 产品参数 各个主板功能简介 Hi3516DV300 芯片手册 前言鸿蒙2.0的系统刚开源出来,华为志在打造1+8+N万物互联的全场景智慧生活,不仅是国产操作系统之梦,一次开发多设备部署也戳中开发者的痛点.这次开源的主要是基于嵌入式实时场景的微内核版本,用于手机端的宏内核版本预计要到明年. 最近申请到了一块 HarmonyOS HiSpark AI Camera 开发板,我们来体验一下AI应用的开发. 开发板简介Hi3516DV300作为新一代行业专用Sm…
目录: 前言 安装虚拟机 安装 Ubuntu 设置共享文件夹 前言上回说到,我们在一块 HarmonyOS HiSpark AI Camera 开发板,并将其硬件做了一下解读和组装.要在其上编译鸿蒙系统,我们需要同时用到 Windows 系统(烧录)和 linux 系统(编译). 这一篇先介绍一下,在 Win10 系统上用 VMware 安装 Ubuntu 20.04.1,并设置共享目录相互访问,做一些基础准备. 安装虚拟机主电脑以 Win10 为基准,先安装 VMware,这里提供一个安装包…
目录: 前言 硬件准备 HDF 驱动开发 总结 前言上一篇,我们在鸿蒙上运行了第一个程序,这一篇我们来编写一个驱动开启摄像头的红外补光灯,顺便熟悉一下鸿蒙上的 HDF 驱动开发. 硬件准备先查一下原理图(具体可参考第一篇的硬件资料),找到红外灯的 IO 口编号,GPIO5_1. HDF 驱动开发1. 简介HDF(OpenHarmony Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载.驱动服务管理和驱动消息机制.旨在构建统一的驱动架构平台,为驱动开发者提供…
目录: 前言 HarmonyOS 简介 DevEco Device Tool(windows下) 获取源码(切换到ubuntu) 烧录程序(切换回windows) 前言上一篇,我们在 Win10 上用虚拟机安装了 Ubuntu,并设置了文件共享.这一篇,在此基础上编译鸿蒙os的源码,并进行设备烧录.  HarmonyOS 简介1. 系统定义HarmonyOS是一款"面向未来".面向全场景(移动办公.运动健康.社交通信.媒体娱乐等)的分布式操作系统.在传统的单设备系统能力的基础上,Har…
在帖子 <鸿蒙开发板外设控制>直播图文版(2020.10.28) 中我们提到过:"开发板上的按键也可以看作一种 GPIO 外设." 因此,要捕捉按键的状态(按下或释放)必须操作对应的 GPIO 端口,具体步骤如下: 1.确定目标按键对应的 GPIO 引脚(可通过设备文档找到对应关系) 2.重新定义 GPIO 引脚的功能,数据传输方向设置为输入(WIFI_IOT_GPIO_DIR_IN) 3.设置按键事件触发方式(电平触发或边沿触发),并注册回调函数 示例代码如下: 代码说明…
引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别控制红.绿.蓝三种颜色的灯输出亮度,再结合混色原理表现出丰富多彩的炫光效果~ 写在前面:前十几篇介绍了CC2530的一些外设的基本用法,接下来几篇拿几个例子回顾并加深一下之前的知识点,上面引言是普及.下面高能预警! 第一个例子:用定时器1产生PWM来控制LED亮度 我们在<[ZigBee] 5.Zi…
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9344721 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo 有同学提到无限大地图的问题并且举了无尽跑酷游戏的列子,雾央在这里简单的和大家说一下自己的看法: 雾央认为,像Temple Run这种游戏,它们的无尽地图的实现是依靠逻辑生成…
原文:Knockout应用开发指南 第七章:Mapping插件 Mapping插件 Knockout设计成允许你使用任何JavaScript对象作为view model.必须view model的一些属性是observable的,你可以使用KO绑定他们到你的UI元素上,当这些observable值改变的时候,这些UI元素就会自动更新. 绝大多数程序都需要从服务器端获取数据,但是由于服务器不知道observable的概念是什么,它只支持简单的JavaScript对象(通常是序列化以后的JSON),…
原文:使用 CodeIgniter 框架快速开发 PHP 应用(七) CodeIgniter 和对象这是玩家章节.它讲述的是 CodeIgniter 的工作原理,也就是揭开CI头上'神秘的面纱'.如果你是 CI 的新手,你可能想要跳过它.不过, 迟早, 你可能想要了解CI的幕后在发生什么 ,为什么不真正的玩转它呢?当我刚开始使用 CodeIgniter 的时候,对象使我迷惑. 我是在使用 PHP 4的时候接触CI的, PHP4并不是真正的面向对象的语言.我在一大堆对象和方法.属性和继承,还有封装…
原文:Android TV开发总结(七)构建一个TV app中的剧集列表控件 版权声明:我已委托"维权骑士"(rightknights.com)为我的文章进行维权行动.转载务必转载所有,且须注明出处.否则保留追究法律责任 https://blog.csdn.net/hejjunlin/article/details/54882307 转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/det…
这次来了个超厉害的新能力! 人脸智能打马赛克.人脸智能裁剪--各种操作,都能一步到位! 迫不及待想体验,戳链接:https://wj.qq.com/s2/3986990/e0ef/ 还没有搞懂,继续往下看-- 基于云开发+AI人脸检测与分析能力--任意给定一张图片,即可检测是否含有人脸,如有则返回人脸的位置.面部属性和质量信息.返回信息包括包括性别.年龄.表情.魅力.眼镜.头发.口罩.姿态及质量分. 具体会有什么不一样呢? 两个字,智能. 比如: 上传证件照照片大小不同,不需要手动裁减,就能实现…
一.前言 下面是本系列文章的前几篇: [Intel Edison开发板] 01.Edison开发板性能简述 [Intel Edison开发板] 02.Edison开发板入门 [Intel Edison开发板] 03.Edison开发IDE入门及跑官方提供的DEMO [Intel Edison开发板] 04.Edison开发基于nodejs和redis的服务器搭建 前几篇文章中介绍了如何实现软硬件和云的通信: 这篇解决edison开发板控制IO口问题! 二.发现MRAA能解决问题过程: 下面是我发…
从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Cookie是否能保存的问题). 这就要求我们自己建立一套独立的对话上下文请求机制. 上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程(六):了解MessageHandler>中我们了解到,Senparc.Weixin.MP SDK提供了一套非常便捷的消息处理机制,这套机制上面…
SlimerJS 是一个提供给 Web 开发人员,可通过脚本编程控制的浏览器.它可以让你使用 Javascript 脚本操纵一个网页:打开一个网页,点击链接,修改的内容等,这对于做功能测试,页面自动机,网络监控,屏幕捕获等是非常有用的. 事实上,它是类似 PhantomJS 的一个工具,除了它运行在 Gecko 上而不是Webkit.SlimerJS 提供几乎和 PhantomJS 相同的 API,高度兼容 PhantomJS.SlimerJS 不仅是 PhantomJS 的一个克隆,还包含额外…
触摸屏控制原理,其实与ADC读取一个滑动变阻器中间触点电压的原理一样.只不过,读取触摸屏的X.Y方向上的电压需要两次,而且需要设置其工作模式以实现一个ADC读取两个通道的电压. S3C2440的ADC控制是很简单的,与普通单片机控制ADC的方法没有多大区别.大概的操作步骤都是如下所示. (1)设置控制寄存器ADCCON (2)启动ADC转换 (3)等待转换结束 (4)读取转换结果 但是,S3C2440的触摸屏控制有什么工作模式,如等待中断模式,分离的x/y轴坐标转换模式,自动(连续)x/y轴坐标…
李洪强iOS开发Swift篇—06_流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这些语句后面一定要跟上大括号{},在C语言中不是必须的 说明:跟C语言对比,用法基本一样的有:for.while.do-while.if 因此,只需要关注for-in和switch即可 二.for-in结构 简单使用: for-in和范围运算符 for i in 1...3 { println(…
Python开发[第七篇]:面向对象   详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇)   上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个"函数"供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和…
.NET MVC 学习笔记(七)— 控制input控件 画面中有时候需要输入数字,这时就需要控制input的输入.以下为保留两位有效数字. /* * 初始化数字输入 */ function initDigitInput(className) { /* * 1.先把非数字的都替换掉 * 2.由于IE浏览器对于change事件存在兼容问题,改用focus和blur事件代替. * */ $(className).on("keyup", formatMN); $(className).on({…
iOS 11开发教程(七)编写第一个iOS11代码Hello,World 代码就是用来实现某一特定的功能,而用计算机语言编写的命令序列的集合.现在就来通过代码在文本框中实现显示“Hello,World”字符串的功能,具体的操作步骤如下: (1)使用设置编辑器的三个视图方式的图标,如图1.25所示,将Xcode的界面调整为如图1.26所示的效果.   图1.25  编辑器的三个视图方式的图标   图1.26  调整界面 (2)按住Ctrl键拖动主视图中的文本框对象,这时会出现一个蓝色的线条,将这个…
原文地址:http://www.cnblogs.com/yank/p/3476874.html 微信公众平台开发教程(七)Session处理 在微信窗口,输入的信息有限,我们需要将一些信息分多次请求. 比如:在进行用户绑定时,我们需要输入用户的相关信息,比如:用户名.密码,或者姓名.电话号码,服务端验证通过,即可将系统用户与微信用户绑定. 然后,此微信账户就有一定的功能权限了,可以查积分,消费记录等.服务号:招商银行信用卡,就有很多功能. 微信客户端无法缓存信息,而且输入信息有限,需要进行多次请…
第七章 (一)创建设备文件 1.使用cdev_init函数初始化cdec 描述设备文件需要一个cdev结构体,代码如下: struct cdev{ struct kobject kobj; struct module *owener; const struct file_operations *ops; struct list_head list; dev_t dev; unsigned int count; } 大多数的成员变量不需要我们自己初始化,调用cdev-init函数即可. 2.指定设…
上一章讲到小程序页面的四种常见的跳转的方法,这一章写如何引入一个外部的js文件,既utils文件夹的用处,其实步骤很简单: 1:准备好外部想要引入的外部文件,命名为util.js,并且填充固定的文件内容(一般是固定的库) 2:打开util.js ,继续填写重要内容将要使用的方法用module.exports给暴露出来,如图所示( 我暴露了一个方法: imageUtil,若有很多方法,则用json形式) module.exports = { imageUtil: imageUtil } 3:将外部…
[Linux开发][Qt开发]配置tslibs触摸屏库环境设置调试对应的设备挂载点 标签(空格分隔): [Linux开发] [Qt开发] 比如: cat /dev/input/mice cat /dev/input/event0 cat /dev/input/event1 cat /dev/input/mouse0 lsusb -v 列举usb设备 df -m 列举存储设备 实际上没有使用touchscreen的话,tslib的配置中关于mouse的路径就直接注释掉好了,不要使用,然后Qt开发的…
前言   红胖子,来也!  做图像处理,经常头痛的是明明分离出来了(非颜色的),分为几块区域,那怎么知道这几块区域到底哪一块是我们需要的,那么这部分就涉及到需要识别了.  识别可以自己写模板匹配.特征点识别.级联分类器训练识别.  本文章就是讲解级联分类器的训练与识别. 明确目标   目标是识别视频中的歌手,我们先手动采集数据集合.  视频为<绿色>,如下图:   训练分类器前的准备工作 采集正样本图片   正样本的尺寸不是必须一致的,但是要和生成的正样本矢量文件中的宽高有相同的比例(因为训练…
前言   级联分类器的效果并不是很好,准确度相对深度学习较低,本章使用opencv通过tensorflow深度学习,检测已有模型的分类.   Demo       可以猜测,1其实是人,18序号类是狗,因为笔者未找到对应的分类具体信息.   Tensorflow模型下载   https://github.com/opencv/opencv_extra  (注意:未找到对应的分类具体信息.)   OpenCV深度识别基本流程   opencv3.4.x支持了各种模型. 支持的模型   opencv…
  前言   级联分类器的效果并不是很好,准确度相对深度学习较低,上一章节使用了dnn中的tensorflow,本章使用yolov3模型,识别出具体的分类.   Demo   320x320,置信度0.6  608x608,置信度0.6(.cfg里面是608)   yolov3模型下载 coco.names:模型具体的分类信息.https://github.com/pjreddie/darknet/blob/master/data/coco.names yolov3.weights:权重文件ht…
下载附件 2021春节前夕,华为发布了 HUAWEI DevEco Device Tool 2.0 Beta1,整体提供了异常强大的功能.得知消息后,我在第一时间带着无比兴奋的心情下载尝鲜,但结果却是血雨腥风般的体验... 整个开发环境的主要问题依旧是安装配置非常复杂,Linux下的各种步骤加在一起共有28步,并且安装配置过程还得解决软件之间的依赖问题!我自认算是个嵌入式开发老手,但这开发环境的安装配置着实让我感受到了困难!试想,如果是新手,那么这大概率会是标准的从入门到放弃的过程! 另外,即使…
百篇博客系列篇.本篇为: v30.xx 鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案 | 51.c.h .o 进程通讯相关篇为: v26.xx 鸿蒙内核源码分析(自旋锁篇) | 自旋锁当立贞节牌坊 | 51.c.h .o v27.xx 鸿蒙内核源码分析(互斥锁篇) | 比自旋锁丰满的互斥锁 | 51.c.h .o v28.xx 鸿蒙内核源码分析(进程通讯篇) | 九种进程间通讯方式速揽 | 51.c.h .o v29.xx 鸿蒙内核源码分析(信号量篇) | 谁在负责解决任务的同步…