前言:PLC控制系统,主要由CPU.本机架I/O模块,分布式I/O模块,通信模块,或其他设备(如:伺服驱动器.交换机.第三方设备)等组成,如何判断这些设备是否工作正常?或是一旦出现故障,能在第一时间判断故障设备出在哪里?为排查故障节省时间,提高效率,降低停机时间,在大型项目中维护,尤其重要.本文,将分享一种如何判断AB PLC控制系统中的硬件设备是否在正常工作的方法. 一.使用方法 即通过编写GSV指令访问模块对象,硬件组态及编程注意事项: 1. 模块对象能提供有关模块的状态信息: 2. 模块必…
判断浏览器环境(QQ,微信,安卓设备,IOS设备,PC微信环境,移动设备) // ===== 判断浏览器环境 ===== // // 判断是否是QQ环境 function isQQ() { return(navigator.userAgent.toLowerCase().match(/\bqq\b/i) == "qq") } // 判断是否是微信环境 function isWeixin() { return(navigator.userAgent.toLowerCase().match…
本文转载自:http://blog.chinaunix.net/uid-25014876-id-59416.html linux设备驱动归纳总结(三):1.字符型设备之设备申请 操作系统:Ubunru 10.04 实验平台:S3C2440 + linux2.6.29内核 注:在今后驱动程序的学习中经常需要查看内核源代码,建议大家新加一个内核目录,去掉一些与S3C2440平台无关的代码,打包成ctags,方便查看代码. 一.驱动的分类: 内核驱动大致分为三类: 1)字符设备:在今后的接触的大多数都…
linux设备驱动程序-设备树(1)-dtb转换成device_node 本设备树解析基于arm平台 从start_kernel开始 linux最底层的初始化部分在HEAD.s中,这是汇编代码,我们暂且不作过多讨论,在head.s完成部分初始化之后,就开始调用C语言函数,而被调用的第一个C语言函数就是start_kernel,start kernel原型是这样的: asmlinkage __visible void __init start_kernel(void) { ... setup_ar…
linux设备驱动归纳总结(三):1.字符型设备之设备申请 操作系统:Ubunru 10.04 实验平台:S3C2440 + linux2.6.29内核 注:在今后驱动程序的学习中经常需要查看内核源代码,建议大家新加一个内核目录,去掉一些与S3C2440平台无关的代码,打包成ctags,方便查看代码. 一.驱动的分类: 内核驱动大致分为三类: 1)字符设备:在今后的接触的大多数都是字符设备,我也只学过这个. 2)块设备 :与硬盘相关的设备. 3)网络设备:与网络相关的设备. 上面的三种设备,我也…
在linux2.6 的设备和设备驱动模型构架中,所有的外部设备和驱动程序都挂在总线上 ,总线分为(usb   -- USB设备,PCI  -- PCI 设备 platform --   直接和处理器进行通信的设备)  一个设备和一个设备驱动程序一一对应…
file: system/core/adb/adb.c line: 921 /* for the device, start the usb transport if the ** android usb device exists and "service.adb.tcp" ** is not set, otherwise start the network transport. */ property_get("service.adb.tcp.port", va…
linux设备驱动程序--设备树多级子节点的转换 在上一章:设备树处理之--device_node转换成platform_device中,有提到在设备树的device_node到platform_device转换中,必须满足以下条件: 一般情况下,只对设备树中根的一级子节点进行转换,也就是多级子节点(子节点的子节点)并不处理.但是存在一种特殊情况,就是当某个根子节点的compatible属性为"simple-bus"."simple-mfd"."isa&q…
--如果是移动设备是true var ismobile = System.Web.HttpContext.Current.Request.Browser.IsMobileDevice; --设备型号(包括pc和app) var device = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();…
var X, xue;xue = xue || function(expr, fn) {    return xue.dom ? xue.dom(expr, fn) : {};};X = xue;window.xue = xue; xue.browser = xue.browser || {};xue.browser.uga = navigator.userAgent.toLowerCase(); xue.browser.mozilla = /firefox/.test(xue.browser.…
本文将对Linux系统中的sysfs进行简单的分析,要分析sysfs就必须分析内核的driver-model(驱动模型),两者是紧密联系的.在分析过程中,本文将以platform总线和spi主控制器的platform驱动为例来进行讲解.其实,platform机制是基于driver-model的,通过本文,也会对platform机制有个简单的了解. 内核版本:2.6.30 1. What is sysfs? 个人理解:sysfs向用户空间展示了驱动设备的层次结构.我们都知道设备和对应的驱动都是由内…
设备树处理之--device_node转换成platform_device 以下讨论基于linux4.14,arm平台 platform device 设备树的产生就是为了替代driver中过多的platform_device部分的静态定义,将硬件资源抽象出来,由系统统一解析,这样就可以避免各驱动中对硬件资源大量的重复定义,这样一来,几乎可以肯定的是,设备树中的节点最终目标是转换成platform device结构,在驱动开发时就只需要添加相应的platform driver部分进行匹配即可.…
在项目开发当中,我们需要一个usb转继电器的设备当开关控制无线发射设备,采购部采购时并未详细了解Relay设备的运行环境就买了一批设备,之后发现设备厂家只提供了windows库,而我们是要在linux中开发.无语中...... Relay设备虽然是无驱的,可我并不知道它的协议,怎么办呢? I have no choice ,but I have bus hound,LOL. 厂家提供了windows的管理工具,可以实现Relay的开断,因此我通过Bus Hound截取usb数据包,得到通信协议.…
之一:bus_type 总线是处理器和一个或多个设备之间的通道,在设备模型中,所有的设备都通过总线相连,甚至是内部的虚拟"platform"总线.可以通过ls -l /sys/bus看到系统加载的所有总线. drwxr-xr-x root     root              1970-01-01 00:02 platform drwxr-xr-x root     root              1970-01-01 00:02 spi drwxr-xr-x root   …
目录 一.准备工作 二.安装 Ceph 三.使用块存储   一.准备工作 本文描述如何安装 ceph 客户端,使用 Ceph 块设备 创建文件系统并挂载使用. 必须先完成 ceph 存储集群的搭建,并确保 Ceph 存储集群处于 active + clean 状态,这样才能使用 Ceph 块设备. Ceph 块设备也叫 RBD 或 RADOS 块设备. hostname ip admin-node 192.168.0.130 ceph-client 192.168.0.134 注:你可以在虚拟机…
当然可以 只要底层driver没有对重复打开做特殊处理,一般都可以被两个进程open 那当两个进程同时打开一个设备,当此设备收到数据时,怎么能保证每个进程都能收到数据?…
USB设备从接入HUB到正常工作之前.都属于设备枚举阶段.所谓设备枚举.就是让host控制器认识USB设备,并为其准备资源.建立好主机与设备间的数据传递机制. 该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程.设备枚举阶段也相应了USB设备的五种状态. 设备枚举阶段分为例如以下8个步骤: 获取设备描写叙述符 复位 设置地址 再次获取设备描写叙述符 获取配置描写叙述符 获取接口.端点描写叙述符 获取字符串描写叙述符 选择设置配置 当中,步骤1与4都是获取设备描写叙述符,两者有什么差别?…
在开发过程中,需要用一个树莓派链接多个串口转USB设备(GPS模块,数传模块等),在树莓派linux系统环境下,USB串口设备的命名规则是 /dev/ttyUSB0 ,/dev/ttyUSB1,/dev/ttyUSB2.串口设备的命名规则一般是根据设备插拔顺序进行命名,第一个插入的USB串口设备名称为/dev/ttyUSB0,第二个名称为 /dev/ttyUSB1,以此类推,但是在实验环境中,往往会发生USB设备插拔情况,从而导致串口设备命名混乱,为此,需要对串口设备进行名称绑定,固定串口设备名…
linux设备树dtb格式 设备树的一般操作方式是:开发人员根据开发需求编写dts文件,然后使用dtc将dts编译成dtb文件. dts文件是文本格式的文件,而dtb是二进制文件,在linux启动时被加载到内存中,接下来我们需要来分析设备树dtb文件的格式. 为什么要了解设备树dtb文件的格式 dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件的格式不了解,那么在看设备树解析相关的内核代码时将会寸步难行,而阅读源代码才是了解设备树最好的方式,所以,如果需要更透彻的了解…
http://blog.csdn.net/p424671075/article/details/7235601…
目录[-] 一.判断设备 二.判断网络连接状态 三.设备不显示的解决办法 一.判断设备 01 //设备名称 02 return [UIDevice currentDevice].name; 03   04 //设备型号,只可得到是何设备,无法得到是第几代设备 05 return [UIDevice currentDevice].model; 06   07 //系统版本型号,如iPhone OS 08 return [UIDevice currentDevice].systemVersion;…
苹果安卓判断 $(function () { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //g var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 if (isAndroid) { alert("安卓…
转自:http://my.oschina.net/joanfen/blog/149076 一.判断设备 01 //设备名称 02 return [UIDevice currentDevice].name; 03   04 //设备型号,只可得到是何设备,无法得到是第几代设备 05 return [UIDevice currentDevice].model; 06   07 //系统版本型号,如iPhone OS 08 return [UIDevice currentDevice].systemV…
直接上脚本,需要用的时候在需要的地方调用就好. 如: //获取设别的最大内存,作为判断LOD等级和决定1G以下设备不能进游戏 #if UNITY_ANDROID && !UNITY_EDITOR meminfo.gc_Collect(); #endif meminfo脚本 using UnityEngine; using System; using System.Collections; #if UNITY_ANDROID using System.Text; using System.T…
我的博客主要用来存放我的学习笔记,如有侵权,请与我练习,我会立刻删除.学习参考:http://www.cnblogs.com/yuanfang/archive/2010/12/24/1916231.html 感谢博友的分享.1.块设备 块设备将数据按照固定块大小的块中,每个块的大小通常在512字节到32768字节之间,磁盘.SD卡都是常见的块设备. 2.字符设备和块设备的区别: 字符设备 块设备 ---------------------------------------------- 按字节…
目       录 第四章           设备驱动管理器的设计... 2 4.1           接口定义... 2 4.2           设备容器... 7 4.3           生成设备ID.. 7 4.4           对设备容器操作的互斥... 8 4.5           获得设备列表... 8 4.6           设备计数器的特殊用处... 8 4.7           小结... 10 第四章     设备驱动管理器的设计 设备驱动管理器是对…
目       录 第三章           设备驱动的设计... 2 3.1           初始化设备... 4 3.2           运行设备接口设计... 4 3.3           虚拟设备接口设计... 6 3.4           协议驱动设计... 7 3.5           命令缓存设计... 17 3.6           数据持久化设计... 24 3.7           IO数据交互设计... 26 3.8           通讯状态设计..…
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录.开发包文件包括如下图: SuperIO.dll是软件平台的核心模块, SuperIO目录是软件平台的参数配制.数据存储的目录. 1.2    项目配制 1)目标框架选择Framework4.0 2)生成的目标平台采用x86 所有事例程序的目标平台采用x86.主要考虑到32位操作系统与64操作系统的兼容性.…
本文转载自:http://blog.csdn.net/coding__madman/article/details/51356313 字符设备的控制 1. 字符设备控制理论 1.1 作用 大部分驱动程序除了需要提供读写设备的能力外,还需要具备控制设备的能力.比如:改变波特率 1.2 应用程序接口 在用户空间,使用ioctl系统调用来控制设备,原型如下: int  ioctl(int fd, unsigned long cmd, ...) fd: 要控制的设备文件描述符 cmd: 发送给设备的控制…
------ 总线上先添加好所有具体驱动,i2c.c遍历i2c_boardinfo链表,依次建立i2c_client, 并对每一个i2c_client与所有这个线上的驱动匹配,匹配上,就调用这个驱动的i2c_xxx_probe  ------ 所有设备驱动在init函数里,一般只做注册平台驱动的动作,注意不是平台设备.以i2c.c为例,这个驱动的平台probe函数里做的事情比较多.因为i2c_boardinfo早已在具体驱动注册到链表,i2c.c的平台驱动就是要把每一个i2c_boardinfo…