|| || || || || || demo.items Group All Group gGF (All) Group gFF (All) Group gC (All) Group Outdoor (All) Group Shutters (All) Group Weather (All) Group Status (All) Group GF_Living "Living Room" <video> (gGF) Group GF_Kitchen "Kitche…
openHAB 术语 Item : 对硬件设备属性的抽象 ( Items are objects that can be read from or written to in order to interact with them. Items can be bound to bindings i.e. for reading the status from e.g. KNX or for updating them.) Item UI Provider : Item UI providers…
Android源码下载完成的目录结构如如所示: step1:将.classpath文件拷贝到源代码的根目录 Android源码支持多种IDE,如果是针对APP层做开发的话,建议大家使用Eclipse开发环境.在源码路径(~/development/ide/eclipse)下,Android提供了.classpath配置文件(备注:该文件为隐藏文件). cp development/ide/eclipse/.classpath ./ chmod u+w .classpath # Make the…
Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结 1. 服务端table控件的几个流程周期 1 1.1. 确认要显示的字段(开始渲染) 1 1.2. 确认要显示的title 1 1.3. 格式化 1 2. Render显示级别 1 2.1. 简单化...grid.toHTML(); 1 2.2. 有些设置(title,field) 1 2.3. 完全的的设置(模板机制) 1 3. 服务器端控件跟模板的分离实现 2…
1. 前言 2.可配置的指令使能/禁用控制和trap控制 指令使能/禁用 当指令被禁用,则这条指令就会变成未定义 指令Trap控制 控制某条或某些指令在运行时进入陷阱,进入陷阱的指令会产生trap异常,路由规则如下: (1)当前为EL1,则陷阱异常传递给EL1(HCR_EL2.TGE定义为1时,会路由到EL2); (2)当前为EL2,则陷阱异常传递给EL2; (3)当前为EL3,则陷阱异常传递给EL3; 3. 系统调用 SVC 默认情况下SVC产生supervisor call,同步异常目标级别…
1.前言 ARMV8系统级编程模型主要包括异常级别.运行状态.安全状态.同步异常.异步异常.DEBUG 本文主要对系统级编程模型做一个概要介绍 2. 异常级别 2.1 Exception level概述 ELx(x<4),x越大等级越高,执行特权越高 执行在EL0称为非特权执行 EL2 没有Secure state,只有Non-secure state EL3 只有Secure state,支持EL0/EL1的Secure 和Non-secure之间的切换 EL0 & EL1 必须要实现,E…
一.前言 前文探究了非阻塞算法的实现ConcurrentLinkedQueue安全队列,也说明了阻塞算法实现的两种方式,使用一把锁(出队和入队同一把锁ArrayBlockingQueue)和两把锁(出队和入队各一把锁LinkedBlockingQueue)来实现,今天来探究下ArrayBlockingQueue. ArrayBlockingQueue是一个阻塞队列,底层使用数组结构实现,按照先进先出(FIFO)的原则对元素进行排序. ArrayBlockingQueue是一个线程安全的集合,通过…
一.LongAdder原理 LongAdder类是JDK1.8新增的一个原子性操作类.AtomicLong通过CAS算法提供了非阻塞的原子性操作,相比受用阻塞算法的同步器来说性能已经很好了,但是JDK开发组并不满足于此,因为非常搞并发的请求下AtomicLong的性能是不能让人接受的. 如下AtomicLong 的incrementAndGet的代码,虽然AtomicLong使用CAS算法,但是CAS失败后还是通过无限循环的自旋锁不多的尝试,这就是高并发下CAS性能低下的原因所在.源码如下: p…
一.背景 要实现对队列的安全访问,有两种方式:阻塞算法和非阻塞算法.阻塞算法的实现是使用一把锁(出队和入队同一把锁ArrayBlockingQueue)和两把锁(出队和入队各一把锁LinkedBlockingQueue)来实现:非阻塞算法使用自旋+CAS实现. 今天来探究下使用非阻塞算法来实现的线程安全队列ConcurrentLinkedQueue,它是一个基于链接节点的无界线程安全队列,采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部,当我们获取一个元素时,它会…
1.前言 本文介绍异常相关内容,包括异常类型,异常进入,异常返回,异常层次结构,异常的路由等 2.  RESET ARMV8体系结构支持两种类型的RESET Cold reset:Reset PE所有的逻辑,包括集成的debug功能 Warm reset:Reset PE所有的逻辑,不包括集成的debug功能 注:ARMV8也支持外部debug reset Reset时pe进入最高的异常级别 运行状态 (1)Reset后最高异常级别可以选用任何一种运行状态 (2)cold reset由输入信号配…
1. 前言 2. 指令运行与异常处理寄存器 ARM体系结构的寄存器分为两类: (1)系统控制和状态报告寄存器 (2)指令处理寄存器,如累加.异常处理 本部分将主要介绍如上第(2)部分的寄存器,分为AARCH64 state和AARCH32 state 2.1 AARCH64下指令运行与异常处理寄存器 寄存器类型 Bit 描述 X0-X30 64bit 通用寄存器,如果有需要可以当做32bit使用:W0-W30 V0-V31 128bit 32个浮点寄存器,用于标量的浮点操作和向量或标量的SIMD…
这个教程主要是讲解服务器编程的,如果你的应用需要和服务器通信,那就必须了解服务器编程(当然,也许你不需要了解,因为你只开发客户端),Android应用和服务器的通信可以使用Http + JSON来通信,具体教程可以参看我以前的博客. 在这里说一句题外话:如果你不是出于爱好来写应用,那么尽量做有网络功能的应用,如果是单机,很容易被别人破解(在中国这种大环境下,没办法). 视频教程的主要内容有: 01<老罗Android开发视频教程>第一集:JavaWeb实现用户注册功能 02<老罗Andr…
openHAB 部分代码结构 UML 图 ModelRepository: ItemRegistry: ItemUIProvider: WebAppServlet:…
1.什么是对象和属性,他们之间的联系是? 对象:将对象看做一个实物或者事物的一种概念.比如说窗体和控件都是对象. 属性:属性阐明了与对象相关的或是控制对象行为的信息,例如,对象的名字.颜色.尺寸或者位置.也可以认为属性是描述对象的一些形容词 一般来说,“对象.属性” 2.规划和创建VB项目3个步骤是? Step 1,设计用户界面 Step 2,设置属性 Step 3,编写代码 3.VB.net中.sln .suo .vb分别代表什么文件? .sln 解决方案文件,包含解决方案及项目信息,是解决方…
整理自android系统体系结构 Android 是google公司针对手机开发的一个平台,并公布了其中大部分代码,其大部分应用程序都是用JAVA开发的,毕竟它是商业性的产品嘛,有所保留也是理所 当然的.对于搞嵌入式linux开发的人来说我们可以从中学习其长处,也算得上是未来的一个发展方向和趋势吧. Android的体系结构 下面是一张公开的Android体系结构图. android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.…
JUC 中倒数计数器 CountDownLatch 的使用与原理分析,当需要等待多个线程执行完毕后在做一件事情时候 CountDownLatch 是比调用线程的 join 方法更好的选择,CountDownLatch 与 线程的 join 方法区别是什么? 日常开发中经常会遇到需要在主线程中开启多线程去并行执行任务,并且主线程需要等待所有子线程执行完毕后再进行汇总的场景,它的内部提供了一个计数器,在构造闭锁时必须指定计数器的初始值,且计数器的初始值必须大于0.另外它还提供了一个countDown…
我们知道在解决线程安全问题上使用 ReentrantLock 就可以,但是 ReentrantLock 是独占锁,同时只有一个线程可以获取该锁,而实际情况下会有写少读多的场景,显然 ReentrantLock 满足不了需求,所以 ReentrantReadWriteLock 应运而生,ReentrantReadWriteLock 采用读写分离,多个线程可以同时获取读锁. 首先我们先看一下,ReentrantReadWriteLock 内部构造先看下它的类图结构如下图所示: 如上图可以看到读写锁内…
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材.不少订阅者向我反馈之前的那篇(https://xiaozhuanlan.com/topic/8210364597 ) 量算工具的cesiumAPI版本太低,不能适用新版本.所以,推出新版本的量算工具效果,对应版本是cesium1.63.1API的. 内容概览 1.cesium1.63.1API版本贴地量…
去年买了这本OpenCV的书,感觉还不错,但是书上没有给出下载源码的地方,在网上找了下,还好找到了,现在分享给大家: 链接: https://pan.baidu.com/s/1IqAay1IZ8g-hPY49Zr-fzg 提取码: bixq 复制这段内容后打开百度网盘手机App,操作更方便哦…
================================================================================ 2014-05-19 论文的事情太多,想学的东西太多,时间却这么少... ================================================================================ 2014-02-17 毕业论文撰写中...搞定后,会将其中涉及到openHAB的内容整理为该系列的新文…
一.简单介绍 1.MapReduce 应用广泛的原因之中的一个在于它的易用性.它提供了一个因高度抽象化而变得异常简单的编程模型. 2.从MapReduce 自身的命名特点能够看出,MapReduce 由两个阶段组成:Map 和Reduce .用户仅仅需编写map( ) 和reduce( ) 两个函数,就可以完毕简单的分布式程序的设计.   1)map ( ) 函数以key/value 对作为输入,产生另外一系列key/value 对作为中间输出写入本地磁盘.MapReduce 框架会自己主动将这…
MapReduce 编程模型给出了其分布式编程方法,共分 5 个步骤:1) 迭代(iteration).遍历输入数据, 并将之解析成 key/value 对.2) 将输入 key/value 对映射(map) 成另外一些 key/value 对.3) 依据 key 对中间数据进行分组(grouping).4) 以组为单位对数据进行归约(reduce).5) 迭代. 将最终产生的 key/value 对保存到输出文件中.MapReduce 将计算过程分解成以上 5 个步骤带来的最大好处是组件化与并…
Atitit.web三大编程模型 Web Page    Web Forms 和 MVC 1. 编程模型是 Web Forms 和 MVC (Model, View, Controller). 2. Web编程模型?在这里我们定义Web编程模型为如何编写代码生成html返回给最终用户的方法. 它包括两部分,一个是如何编写Web应用程序的规范,另一个则是实现这一规范的Web编程框架, 3. Web Pages 是最简单的 ASP.NET 网页开发编程模型.它提供了一种简单的方法将 HTML.CSS…
Atitit.web三编程模型 Web Page    Web Forms 和 MVC 1. 编程模型是 Web Forms 和 MVC (Model, View, Controller). 2. Web编程模型?在这里我们定义Web编程模型为怎样编写代码生成html返回给终于用户的方法. 它包含两部分,一个是怎样编写Web应用程序的规范,还有一个则是实现这一规范的Web编程框架, 3. Web Pages 是最简单的 ASP.NET 网页开发编程模型.它提供了一种简单的方法将 HTML.CSS…
Web开发中,存在着各种各样的重复性的工作.为了提高开发效率,不在当码农,我在思考和实践如何搭建一个Web开发的基础平台. Web开发基础平台的目标和功能 1.提供一套基础的开发环境,整合了常用的框架配置和库.新项目开发时,不用再重新搭建. 2.提供一些基础的工具类库,比如文件操作.邮件发送.数据库CRUD操作.JSON转换. 3.权限系统设计. 4.异常处理和系统日志. 5.前台界面展示. 特别说明:因本人能力和经验有限,不少东西还未能实现,只能说点思路和看法. 我是用Java来实现我构思的W…
Openssl编程 赵春平 著 Email: forxy@126.com 第一章 基础知识 8 1.1 对称算法 8 1.2 摘要算法 9 1.3 公钥算法 9 1.4 回调函数 11 第二章 openssl简介 13 2.1 openssl简介 13 2.2 openssl安装 13 2.2.1 linux下的安装 13 2.2.2 windows编译与安装 14 2.3 openssl源代码 14 2.4 openssl学习方法 16 第三章 堆栈 17 3.1 openssl堆栈 17 3…
本文转自迅为论坛资料:http://www.topeetboard.com 推荐学习嵌入式开发板平台:iTOP-4412开发板 下面这张图出自Google官方,展示了Android系统的主要组成部分. 可以看出,Android系统架构由5部 分组成,分别是:Linux Kernel.Android Runtime.Libraries.Application Framework.Applications.其实这部分SDK文档已经帮我们做得很好了,要做的就是拿来主义,然后再加上自己理解.接下来拿起手…
一.简介 接上一篇[Android实战]----基于Retrofit实现多图片/文件.图文上传中曾说非常想搞明白为什么Retrofit那么屌.最近也看了一些其源码分析的文章以及亲自查看了源码,发现其对Java网络编程及HTTP权威指南有了一个很好的诠释.一直以来,都信奉一个原则,在这个新技术日新月异的时代,如何在Java界立足,凭借的就两点: 1.基本功,包括:Java基本知识,(Java编程思想.Effective Java),Java进阶(Java虚拟机.Java设计模式).网络相关(这个时…
CUDA刷新器:CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA,CUDA刷新器,并行编程 这是CUDA更新系列的第四篇文章,它的目标是刷新CUDA中的关键概念.工具和初级或中级开发人员的优化. CUDA编程模型提供了GPU体系结构的抽象,它充当了应用程序与其在GPU硬件上的可能实现之间的桥梁.这篇文章概述了CUDA编程模型的主要概念,概述了它如何在通用编程语言如C/C++中暴露出来. 介绍一下CUDA编程模型中常用的两个关键词:主…
当我们用到C#类许多耗时的函数XXX时,总会存在同名的类似BeginXXX,EndXXX这样的函数. 例如Stream抽象类的Read函数就有 public abstract int Read(byte[] buffer, int offset, int count); public virtual IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state);…