P24 1 抽象类和接口的区别? 抽象类: 1)抽象方法,只有行为的概念,没有具体的行为实现。使用abstract关键字修饰,没有方法体。子类必须重写这些抽象方法。 2)包含抽象方法的类,一定是抽象类。 3)抽象类只能被继承,一个类只能继承一个抽象类。 接口: 1)全部的方法都是抽象方法,属型都是常量 2)不能实例化,可以定义变量。 3)接口变量可以引用具体实现类的实例 4)接口只能被实现,一个具体类实现接口,必须实现全部的抽象方法 5)接口之间可以多实现 6)一个具体类可以实现多个接口,实现多继承现象
P17 UFT(QTP)WEB操作步骤点击图标进入应用,弹出如图所示提示框后选择“继续”2.选择相关插件3.打开UFT显示如图所示界面(图中所示界面为起始界面)。4.点击“新建”按钮。5.点击“工具”菜单选择“选项”。选中“GUI测试”“测试运行”在普通模式下将每步执行延迟的秒数的数值改为1500,其他选项保持不变(这样可以更加直观的看到每步的操作步骤和输入的内容,该数值可以根据个人喜好自由更改)。6.点击新建按钮后弹出“新建测试”界面,在选择类型一栏中默认选择GUI测试,直接点击“创建”按钮,如果默认选项不为“GUI测试”那就选中GUI测试。7.选择“web”选项选中“录制或运行会话开始时打开以下:”在“地址”栏中输入目标测试网址或IP地址在浏览器一栏中选择“MicrosoftInternetExplorer”(电脑自带的IE浏览器,如果使用其他浏览器,在录制状态为“默认”状态时,在编辑器中不显示录制的脚本)点击“应用”和“确定”按钮。8.点击“确定”按钮后,系统开始自动录制,并自动打开IE浏览器并进入目标测试网址,手动输入“用户名:18061692195”,“密码:123456lb”点击“登录”按钮,页面自动跳转到相关界面,然后关闭页面。(此时录制的方式为“默认”方式)9.关闭页面后,点击“停止”录制按钮如图所示:10.选中“Aaction1”,在此界面中显示本次录制所有操作的脚本,可以通过修改编写相关的代码来实现各种操作。11.点击“”按钮(运行)或使用快捷键F5来运行录制的脚本,检验脚本是否能够运行成功。参数化有两种方法第一种:点击“查看”按钮选择“关键字视图”进入“关键字视图”界面在“username”一栏中在“值”这一列中点击“<#p>”按钮选择“DataTale”选择“添加新参数”(如图红色框中所示)。跳出“值配置选项”界面将“名称”修改为“用户名”点击“确定”。值修改成功后会在下方菜单栏中“数据”选项中显示出来按照“username”的操作将“password”得值也修改如图所示修改成功后database中显示的内容为用户名“18061692195”,“密码为密文显示”将用户名“18061692195”改成18061692195去掉双引号,(如果不去除在运行代码是web页面中用户名一栏输入的就是“18061692195”到时会报错),将密码密文改成12346lb原因和用户名的相同,但在修改完用户名后用户名会显示如图所示的内容,因此选中用户名右击鼠标选择格式选择自定义数字选择“0”.修改后的内容如图所示可以正常使用再次点击“查看”按钮选择“编辑器”如图中红色框框所示“username”和“password”一栏中的代码变成“(“用户名,dtGlobalSheet”)”,“(“密码,dtGlobalSheet”)”第二种方法:先录制一段内容如图所示:双击表格中“A”单元格会跳出如图所示界面输入“用户名”点击确定按钮按上述方法修改密码栏:最后将代码修改成如图所示内容即可。
P5 HYPERLINK"http://blog.csdn.net/on_my_way20xx/article/details/8486839"Loadrunner接口测试的两种方法其实无论用那种方法,的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。测试接口测试 方法一、用实现接口测试LoadRunner 大家都知道LoadRunner是一种HYPERLINK"http://www.51testing.com/html/66/n-814766.html"\t"_self"性能测试工具,但它也可以用在我们做接口测试的时候。开发人员开发出来的接口,提供给测试人员详细的接口使用说明书,该说明书最基本的要求如下: 接口测试地址:/SNS/Publish 请求报文参数说明: 请求报文格式: 应答报文的参数接口说明: 有了上述的说明书之后,测试人员可以根据文档的描述在LoadRunner书写相应的接口测试脚本。 LoadRunner中涉及到向服务器发送请求的API方法包括:web_url(),web_submit_form(),web_submit_data(),web_custom_request()。下面介绍两种我常用的方法: 方法一:使用web_submit_data() 方法二:使用web_custom_request() 这也是一种写法,可以跟web_submit_data互换。这种写法更利于拼接参数。 方法一适合一些xml结构的根元素下的子元素同处于根元素下面,且子元素数目较少的情况下,如果xml结构比较复杂,比如说根元素下面有多级子元素,或者xml树结构分叉较多的时候,我们可以先把xml拼接成一个字符串然后通过web_custom_request()向服务器发送请求。 我们在做接口功能测试的时候会很注意接口的应答报文的信息,这时候我们可以通过LoadRunner的日志信息查看或者可以通过web_reg_find()或者web_find()这样的API函数来统计接口的运行结果,推荐使用web_reg_find(),web_reg_find()和web_find()区别请大家百度一下,详细信息太多,在这里不便叙述。 因为web_reg_find()是注册型函数,所以应该放在web_submit_data()或者web_custom_request()的前面。 如: 在脚本的最后我们可以对查询字段的信息进行统计 总结:用LoadRunner做接口测试无法做到把接口参数和程序分理,接口的参数可以通过参数化的方法来实现对同一个参数多个数据的测试。参数化后的测试数据保存在此脚本的保存位置下。 方法二、通过Java+Fitnesse实现接口功能测试 什么是Fitnesse? FitNesse是一套软件开发协作工具 FitNesse是帮助大家加强软件开发过程中的协作的工具。能够让客户、测试人员和开发人员了解软件要做成什么样,帮助建议软件最终是否达到了设计初衷。 FitNesse是一套软件测试工具 从另外一个角度看,FitNesse是一个轻量级的、开源的框架,能够帮助开发团队方便的定义验收测试(AcceptanceTests),通过在web页面上简单的输出和预计输出的表格就可实现,并且可以运行这些测试以确定是否通过。 FitNesse是wiki可以很方便的创建和编辑页面 FitNesse是一个web服务器不用过多的安装配置,很方便使用。 我习惯使用Eclipse集成开发工具写测试代码,用fitnesse准备接口的测试数据,由此实现接口的测试数据和测试程序的分离。 关于Fitnesse的使用大家可以参考官方网址。Fitnesse的四种常见表格是: ColumnFixture,ActionFixture,DecisionTable,ScriptTable。在工作中ColumnFixture用的最多。 下面的程序使用的是ColumnFixture表格。 总结:上述两种方法都是对接口做功能测试的方法,使用LoadRunner做接口测试的时候可以不用让开发人员提供测试人员相应的UI测试页面,直接调用接口做测试,但是测试程序和数据的依赖性太强;使用Fitnesse做接口测试的时候可以实现测试程序和数据的分离,只用点击Fitnesse界面的Test按钮就可以实现测试,测试消耗时间比使用LoadRunner做接口测试少。 以上纯属个人见解,敬请拍砖!参数名称参数描述字符类型字符值SNSID社区IDString6UserID用户IDString10CommentsTypeID评论类型IDString2Comme
P12 CodeReview代码审查文档标识:当前版本:v1.0当前状态:草稿发布日期:2015-12-29发布修改历史日期版本作者修改内容评审号变更控制号2015-12-291.0TOC\o"1-5"\h\z\uHYPERLINK\l"__RefHeading__171_1565716195"缩写词汇表2HYPERLINK\l"__RefHeading__173_1565716195"1.关于CodeReview3HYPERLINK\l"__RefHeading__175_1565716195"1.1CodeReview的目的3HYPERLINK\l"__RefHeading__177_1565716195"1.2CodeReview的前提3HYPERLINK\l"__RefHeading__179_1565716195"1.3CodeReview需要做什么4HYPERLINK\l"__RefHeading__181_1565716195"1.3.1完整性检查(Completeness)4HYPERLINK\l"__RefHeading__183_1565716195"1.3.2一致性检查(Consistency)4HYPERLINK\l"__RefHeading__185_1565716195"1.3.3正确性检查(Correctness)4HYPERLINK\l"__RefHeading__187_1565716195"1.3.4可修改性检查(Modifiability)4HYPERLINK\l"__RefHeading__189_1565716195"1.3.5可预测性检查(Predictability)4HYPERLINK\l"__RefHeading__191_1565716195"1.3.6健壮性检查(Robustness)5HYPERLINK\l"__RefHeading__193_1565716195"1.3.7结构性检查(Structuredness)5HYPERLINK\l"__RefHeading__195_1565716195"1.3.8可追溯性检查(Traceability)5HYPERLINK\l"__RefHeading__197_1565716195"1.3.9可理解性检查(Understandability)5HYPERLINK\l"__RefHeading__199_1565716195"1.3.10可验证性检查(Verifiability)5HYPERLINK\l"__RefHeading__201_1565716195"1.4CodeReview的步骤6HYPERLINK\l"__RefHeading__203_1565716195"2.CodeReivew的执行6HYPERLINK\l"__RefHeading__205_1565716195"2.1.事前准备阶段6HYPERLINK\l"__RefHeading__207_1565716195"2.1.1.CR的对象7HYPERLINK\l"__RefHeading__209_1565716195"2.1.2.CR的内容7HYPERLINK\l"__RefHeading__211_1565716195"2.1.3.评审规范和标准7HYPERLINK\l"__RefHeading__213_1565716195"2.1.4.选择CR活动的参与者7HYPERLINK\l"__RefHeading__215_1565716195"2.1.5.选择CR活动的实施方式。7HYPERLINK\l"__RefHeading__217_1565716195"2.2.实施阶段7HYPERLINK\l"__RefHeading__219_1565716195"2.2.1.准确记录8HYPERLINK\l"__RefHeading__221_1565716195"2.2.2.讲解与提问8HYPERLINK\l"__RefHeading__223_1565716195"2.2.3.逐项审查8HYPERLINK\l"__RefHeading__225_1565716195"2.2.4.注意气氛8HYPERLINK\l"__RefHeading__227_1565716195"2.3.事后跟踪跟踪8HYPERLINK\l"__RefHeadi
P5 启动指令最简单启动,这样似乎最不容易被误认为是yuvmjpg_streamer-i“input_uvc.so“-o“output_http.so”最小分辨率mjpg_streamer-i“input_uvc.so-r352x288-f15-n”-o“output_http.so“640的分辨率,不知道叫啥子mjpg_streamer-i“input_uvc.so-r640x480-f15-n”-o“output_http.so“720pmjpg_streamer-i“input_uvc.so-r1280x720-f15-n”-o“output_http.so“网址HYPERLINK"http://192.168.1.90:8080/?action=stream"http://192.168.1.90:8080/?action=stream服务操作/etc/init.d/mjpg-streamerenable是设置开机自动启动/etc/init.d/mjpg-streamerdisable是禁止开机自动启动/etc/init.d/mjpg-streamerstart是现在启动/etc/init.d/mjpg-streamerrestart重启/etc/init.d/mjpg-streamerstop停止servicemjpg-streamerstart,在通常*nuix是这样的,但是openwrt的busybox是精简版的,所以变成了直接调用服务启动服务的好处就是托管在后面运行如果直接运行的话关闭shell就断了被默认为yuv的处理开启-q质量控制会被强制为yuv如果加了-y,那也会的,去掉作为服务启动配置文件位于/etc/config/mjpg-streamer一个有效的配置像是这样configmjpg-streamercoreoptionenabled“1”optiondevice“/dev/video0”optionresolution“640x480”optionwww“/www”optionfps“15”optionport“8080”其中有趣的是www目录设置/www/代表着是当前目录,而后面那玩意似乎只是一个demo程序的目录,这里很怪异或许根本和www无关访问的时候就是:HYPERLINK"http://192.168.1.90:8080/?action=stream"http://192.168.1.90:8080/?action=stream设置开机自动启动服务/etc/init.d/mjpg-streamerenable立即启动服务/etc/init.d/mjpg-streamerstart HYPERLINK"http://see.sl088.com/wiki/Mjpg-streamer"\l"cite_note-1"[1]很像ser2net,即便拔掉摄像头再插上也会识别。困扰看起来无法直接做安全性的设置,真是奇怪-加个密码啥的使用UVC插件可用参数输入一个错误的指令就会激活这个,比如mjpg_streamer-i“input_uvc.so-r640x480-f15-q90-n—rgb”-o“output_http.so“Helpforinputplugin..:UVCwebcamgrabberThefollowingparameterscanbepassedtothisplugin:[-d|--device].......:videodevicetoopen(yourcamera)[-r|--resolution]...:theresolutionofthevideodevice,canbeoneofthefollowingstrings:QSIFQCIFCGAQVGACIFVGASVGAXGASXGAoracustomvaluelikethefollowingexample:640x480[-f|--fps]..........:framespersecond[-y|--yuv]..........:enableYUYVformatanddisableMJPEGmode[-q|--quality]......:JPEGcompressionqualityinpercent(activatesYUYVformat,disablesMJPEG)[-m|--minimum_size].:dropframessmallerthenthislimit,usefulifthewebcamproducessmall-sizedgarbageframesmayhappenunderlowlightconditions[-n|--no_dynctrl]...:donotinitalizedynctrl
P5 ROS教程目录非初学者:如果你已经有足够的熟悉ROS HYPERLINK"http://wiki.ros.org/fuerte"富尔特或更早的版本,只希望探索新的构建系统引入HYPERLINK"http://wiki.ros.org/groovy"常规和使用HYPERLINK"http://wiki.ros.org/hydro"水电和以后,叫HYPERLINK"http://wiki.ros.org/catkin"柳絮,你可以通过更深入HYPERLINK"http://wiki.ros.org/catkin/Tutorials"这里柳絮教程。然而,去在所有基本HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"Beginner_Level"初学者级别仍建议教程为所有用户获得接触到新的功能。如果你是新来的Linux:您可能发现它有助于先做共同的命令行工具用于Linux的快速教程。一个好的就是HYPERLINK"http://www.ee.surrey.ac.uk/Teaching/Unix/"这里。目录HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"ROS_Tutorials"ROS教程HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"Core_ROS_Tutorials"核心ROS教程HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"Beginner_Level"初学者级别HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"Intermediate_Level"中级水平HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"ROS_Standards"ROS标准HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"Tutorials_for_Other_ROS_Libraries"教程其他ROS库HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"Tutorials_for_Libraries_with_ROS_Interfaces"教程与ROS接口库HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"External_ROS_Resources"外部资源ROSHYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"External_Tutorials"外部教程HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"External_Seminar.2BAC8-Lecture"外部研讨会/讲座HYPERLINK"http://wiki.ros.org/ROS/Tutorials"\l"Using_ROS_on_your_custom_Robot"在您的自定义机器人使用ROS核心ROS教程初学者级别HYPERLINK"http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment"安装和配置环境ROS本教程将介绍如何安装ROS并在计算机上建立ROS环境。HYPERLINK"http://wiki.ros.org/ROS/Tutorials/NavigatingTheFilesystem"导航ROS文件系统本教程介绍ROS文件系统概念,并使用roscd,rosls,占地HYPERLINK"http://wiki.ros.org/rospack"rospack命令行工具。HYPERLINK"http://wiki.ros.org/ROS/Tutorials/CreatingPackage"创建一个ROS包本教程介绍使用HYPERLINK"http://wiki.ros.org/roscreate"roscreate-PKG或HYPERLINK"http://wiki.ros.org/catkin"柳絮创建一个新包,HYPERLINK"http://wiki.ros.org/rospack"rospack列出软件包的依赖。HYPERLINK"http://wiki.ros.org/ROS/Tutorials/BuildingPackages"构建一个ROS
P8 HYPERLINK"http://blog.csdn.net/kowity/article/details/19158395"py+opencv打造树莓派监控,场景有变化自动拍照上传到百度云2014-02-1314:10 3940人阅读 HYPERLINK"http://blog.csdn.net/kowity/article/details/19158395"\l"comments"评论(1) HYPERLINK"javascript:void(0);"\o"收藏"\t"_blank"收藏 HYPERLINK"http://blog.csdn.net/kowity/article/details/19158395"\l"report"\o"举报"举报INCLUDEPICTURE"http://static.blog.csdn.net/images/category_icon.jpg"\*MERGEFORMATINET 分类: C/C++和Python(40) INCLUDEPICTURE"http://static.blog.csdn.net/images/arrow_triangle%20_down.jpg"\*MERGEFORMATINET版权声明:本文为博主原创文章,未经博主允许不得转载。大家用树莓派来做监控,文章里面一般都是使用fswebcam或motion。motion非常强大,可以监测画面变化后保存成mpeg或jpeg,还可以运行成http服务器模式。但是树莓派放在家里,从外面访问有时也会访问不了(比如IP变了等原因)。其实使用Python+OpenCV打造一个对运动画面能够进行简单判断的程序并不困难。下面的程序每个0.5秒做一下检测,如果画面有变化就保存下来,并且将其上传到百度的云存储中。为了保证隐私,上传之前还可以给照片做AES加密,只有知道密码才能查看照片的内容。不过,OpenCV在树莓派上跑还是挺吃力的,CPU基本保持在6-70%左右。注册为百度开发者(HYPERLINK"http://developer.baidu.com/"\t"_blank"http://developer.baidu.com/)就可以创建自己的百度云存储空间了。然后在云存储中新建一个bucket,把代码中所有的'homepics'替换成你的bucket名称。要运行这个程序,在树莓派上需要安装有python2.7和PyCrypto、OpenCV、numpy、requests模块。在命令行运行:cv.py-d0-i/home/img-pqwerty123456qwerty123456-ubcs:[app_key]:[sk]如果没有-p参数照片就不加密,没有-u参数就不会存到百度云上。另外,还做了一个web站点,把bucket中图片都列出来,用浏览器就可以直接查看:HYPERLINK"http://eaho.sinaapp.com/"\t"_blank"http://eaho.sinaapp.com/[python] HYPERLINK"http://blog.csdn.net/kowity/article/details/19158395"\o"viewplain"viewplain HYPERLINK"http://blog.csdn.net/kowity/article/details/19158395"\o"copy"copy HYPERLINK"https://code.csdn.net/snippets/186515"\o"在CODE上查看代码片"\t"_blank"INCLUDEPICTURE"https://code.csdn.net/assets/CODE_ico.png"\*MERGEFORMATINETHYPERLINK"https://code.csdn.net/snippets/186515/fork"\o"派生到我的代码片"\t"_blank"INCLUDEPICTURE"https://code.csdn.net/assets/ico_fork.svg"\*MERGEFORMATINET#coding: cp936 import os, time, datetime, multiprocessing, urllib, base64, hashlib, hmac, argparse, tempfile import cv2, numpy, requests from Crypto.Cipher import AES from Crypto.Util import Counter class Bcs:
P3 HYPERLINK"https://segmentfault.com/a/1190000002583340"树莓派的终极玩法2:motion+摄像头HYPERLINK"https://segmentfault.com/t/raspberry-pi/blogs"raspberry-pi HYPERLINK"https://segmentfault.com/t/%E5%BC%80%E6%BA%90%E7%A1%AC%E4%BB%B6/blogs"开源硬件 HYPERLINK"https://segmentfault.com/t/%E9%A6%99%E8%95%89%E6%B4%BE/blogs"香蕉派 HYPERLINK"https://segmentfault.com/u/integ"Integ 2015年03月06日发布推荐 2 推荐收藏 8 收藏,6k 浏览上一篇文章写了如何把树莓派打造成可以远程访问的服务器,有了这台服务器,我们的树莓派终极玩法可以正式开始了。这次,我们来给树莓派装个USB摄像头,然后远程访问摄像头拍摄的即时画面。非常简单只需要一个软件:motion。假设你的树莓派已经装好了Raspbian的系统,你只需要:$sudoapt-getinstallmotion然后打开motiondaemon守护进程,让他可以一直在后台运行:sudonano/etc/default/motion#no修改成yes:start_motion_daemon=yes修改motion的配置文件:sudovim/etc/motion/motion.conf#deamonoff改成ondeamonon#设置分辨率width800height600#关闭localhost的限制webcam_localhostoff然后运行motion:$sudomotion现在我们的摄像头已经变成了一台网络摄像头。在非chrome浏览器(chrome不支持 HYPERLINK"http://zh.wikipedia.org/wiki/Motion_JPEG"\t"_blank"mjpgstreaming)下访问HYPERLINK"http://[your.domain]:8081/"\t"_blank"http://[your.domain]:8081 即可看到摄像头当前拍摄的画面。HYPERLINK"https://segmentfault.com/a/1190000002583340"2015年03月06日发布2推荐 收藏你可能感兴趣的文章HYPERLINK"https://segmentfault.com/a/1190000002517977"\o"香蕉派bananaPiBPI-D1开源硬件IP摄像头开发板介绍"香蕉派bananaPiBPI-D1开源硬件IP摄像头开发板介绍 1收藏,1k浏览HYPERLINK"https://segmentfault.com/a/1190000002990825"\o"香蕉派bananapiBPI-M38核开发板面世"香蕉派bananapiBPI-M38核开发板面世 880浏览HYPERLINK"https://segmentfault.com/a/1190000000459989"\o"BananaPI香蕉派 A20开发板介绍"BananaPI香蕉派 A20开发板介绍 2.7k浏览讨论区 我的没有试验成功,也找不到问题。大神有什么办法能解决另外的电脑无法连接树莓派。HYPERLINK"https://segmentfault.com/c/1050000003066877" HYPERLINK"https://segmentfault.com/u/dantian"丹天极客 · 2015年08月08日HYPERLINK"https://segmentfault.com/a/1190000002583340"HYPERLINK"https://segmentfault.com/a/1190000002583340"\l"911"\o"举报" 回复 HYPERLINK"https://segmentfault.com/u/dantian"丹天极客:无法访问motion的页面?motion的配置文件里需要添加下面一句:#关闭localhost的限制webcam_localhostoffHYPERLINK"https://segmentfault.com/c/1050000003067621" HYPERLINK"https://segmentfault.com/u/integ"Integ · 2015年08月08日H
P5 ROS文件系统介绍(catkin)Description: 本教程介绍ROS文件系统概念,包括命令行工具roscd、rosls和HYPERLINK"http://wiki.ros.org/rospack"rospack的使用。TutorialLevel: BEGINNERNextTutorial: HYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/CreatingPackage"创建ROS软件包目录HYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.A.2BmIRZB13lT1w-"预备工作HYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.A.2BX.2BuQH06GieNlh072fPt.2B32mCX.2FU-"快速了解文件系统概念HYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.A.2BZYdO9nz7ft9d5VF3-"文件系统工具HYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.A.2BT391KA_rospack"使用rospackHYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.A.2BT391KA_roscd"使用roscdHYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.roscd_log"roscdlogHYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.A.2BT391KA_rosls"使用roslsHYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.Tab_.2BgepSqFuMYhCPk1Fl-"Tab自动完成输入HYPERLINK"http://wiki.ros.org/cn/ROS/Tutorials/NavigatingTheFilesystem"\l"cn.2BAC8-ROS.2BAC8-Tutorials.2BAC8-catkin.2BAC8-NavigatingTheFilesystem.A.2BVt6Yfg-"回顾预备工作本教程中我们将会用到ros-tutorials程序包,请先安装:$sudoapt-getinstallros-<distro>-ros-tutorials将 <distro> 替换成你所安装的版本(比如Jade、Indigo、hydro、groovy、fuerte等)。快速了解文件系统概念Packages: 软件包,是ROS应用程序代码的组织单元,每个软件包都可以包含程
P6 使用固定设备节点名操作设备eric.siroh(AT)gmail.comFreeBSD-6之后,采用devfs管理设备节点,设备名称在设备联机时动态创建,增加了灵活性。但也带来另一些问题:一些外部设备,如USB、PCCard等设备并不总是在开机之前就连接到计算机,如果存在相同类型的设备,这些设备的在/dev的节点名称会因为设备连接到计算机的先后顺序而发生变化,这会给一些应用程序的设置造成一些不便。然而,正是因为devfs的灵活性,也带来很好的方法来支持这些外部设备使用固定设备节点名称。这里通过两台USB接口打印机EPSONStylusCX3700、BrotherFAX-2820的设置来说明这一方法。查看devfs基本配置首先,查看/etc/devd.conf文件,确定有关的基本配置情况#more/etc/devd.conf...options{#Eachdirectorydirectiveaddsadirectorythelistofdirectories#thatwescanforfiles.Filesareread-inintheorderthatthey#arereturnedfromreaddir(3).Therule-setsarecombinedto#createaDFAthat'susedtomatcheventstoactions.directory"/etc/devd";directory"/usr/local/etc/devd";pid-file"/var/run/devd.pid";#Setupsomeshorthandforregexthatweuselaterinthefile.#XXXYes,thesearegross--impsetscsi-controller-regex"(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\[0-9]+";};...通过这两行:directory"/etc/devd";directory"/usr/local/etc/devd";得知用户定制配置文件目录为/etc/devd,/usr/local/etc/devd。如果没有相应的目录,自行建立就可以了。当然也可以自行修改,不过不建议修改。获得设备信息在编写配置文件之前,需要得到设备的必要参数。可以通过在前台运行调试模式的devd来查看。现在不要连接设备,运行#/etc/rc.d/devdstop#/sbin/devd-Dd屏幕上会出现一些信息,表明devd已经运行了。这时把设备连接到计算机,然后再拔掉设备。这个过程中屏幕会有很多输出,只需要查看以Processingevent开头信息。以下两行示例是U盘的插拔发生的信息。Processingevent'+umass0vendor=0x1043product=0x8012devclass=0x00devsubclass=0x00release=0x0100sernum=""intclass=0x08intsubclass=0x06atport=1interface=0vendor=0x1043product=0x8012devclass=0x00devsubclass=0x00release=0x0100sernum=""intclass=0x08intsubclass=0x06onuhub1'Processingevent'-umass0vendor=0x1043product=0x8012devclass=0x00devsubclass=0x00release=0x0100sernum=""intclass=0x08intsubclass=0x06atport=1interface=0vendor=0x1043product=0x8012devclass=0x00devsubclass=0x00release=0x0100sernum=""intclass=0x08intsubclass=0x06onuhub1'umass0是devfs为U盘在/dev下自动生成的设备节点,+umass0表示umass0连接上计算机了,-umass0表示umass0设备被拔出。我们需要得到设备信息主要是vendor,product,sernum三个参数。vendor是制造商的代码,product是设备型号代码,sernum是设备的序列好,这三个参数基本上应该可以确定唯一一台设备。如果没有多于一台同一厂家同一型号(或同一系列,有点厂家设备虽然标识的型号不同,但是product值却是一样的)的设
P10 基于OpenCV的实时图像采集与远程监控系统班级:0805姓名:杨学齐学号:200892128一、系统介绍1.1系统功能介绍本系统是基于OpenCV的实时图像采集、远程监控系统,主要分为两个功能模块实时图像采集:实时图像采集利用了OpenCV来实现,利用OpenCV库在定时器的调节下,可以从摄像头直接获取监控对象的图像。为了达到实时效果,必须保证帧频不能太低。实时采集另外一个重点是实时发送,采集到的图像必须实时发送到网络进行传输,因此采集线程和传输线程必须分为不同线程。远程监控:摄像头采集得到的图像是存储在本地的,必须通过网络的传输才可以实现远程监控,由于视频数据量比较大,必须经过压缩后才能传输,本系统采用了Jpeg图像压缩,再通过高性能网卡将压缩后的图像传输出去。监控端接受到数据后,进行Jpeg解压缩后显示。1.2系统架构介绍图像采集端程序架构:由于需要实时进行图像采集和传输,因此必须将图像采集和图像传输分为不同的线程。远程监控端程序架构:监控端一方面进行网络数据接收,另外一方面必须将接收到的数据实时显示出来,也必须采用多个线程。1.3系统关键技术介绍1.3.1OpenCVOpenCV是一个基于BSD许可证授权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了HYPERLINK"http://baike.baidu.com/view/14662.htm"\t"_blank"图像处理和计算机视觉方面的很多通用算法1.3.2QTQt是诺基亚开发的一个跨平台的C++图形用户界面HYPERLINK"http://baike.baidu.com/view/330120.htm"\t"_blank"应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全HYPERLINK"http://baike.baidu.com/view/125370.htm"\t"_blank"面向对象的,很容易扩展,并且允许真正地组件编程。基本上,Qt同XWindow上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西,但Qt具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档等优点。1.3.3OpenCV帧与QT图像QImage之间的转化QImage是Qt中的图像对象而IplImage是OpenCV中的对象,使用Qt和OpenCV必须进行两者之间的转化,主要是表示方法不同,位深及RGB之间的转换,这个部分是很重要的,详细代码在下面已经列出。1.3.4Jpeg图像压缩与图像序列化HYPERLINK"http://doc.trolltech.com/4.3/qbytearray.html"\l"QByteArray"QByteArray直接把位图数据传输到网络会给整个网络带来很大的压力,有时网速不高,图像采集的速率虽然很高,但是远程监控端会因为网络原因收不到图像,因此对图像的数据量压缩是很有必要的。这里采用的是QT中Jpeg压缩,需要Jpeg库的支持。压缩之后的数据量大大减少了。Socket发送的数据是没有对象的信息的QImage也不能直接被发送到远程监控端,必须序列化到QByteArray,这是一个字符流,将压缩后的图像对象序列化到QByteArray再进行传输。1.3.5Socket网络传输发送和接受采用Socket直接进行网络传输,能够最大限度的压缩数据包的大小,控制校验图像的格式,图像采集端必须一边采集一边发送,这个同步进行的工作是通过线程来完成的,提供程序的效率。另一方面远程监控端同样需要一边接收数据一边显示,也是通过多线程技术实现的,接收到的数据传递给显示线程,这需要将字符流QByteArray重新组装成一个QImage对象,然后显示出来。这个过程必须有准确的校验否则数据会显示不完整。二、系统关键代码2.1使用OpenCV库定时采集图像intmain(intargc,char*argv[]){CvCapture*camera=cvCreateCameraCapture(0);//建立OpenCV图像捕获对象assert(camera);IplImage*image=cvQueryFrame(camera);assert(image);qDebug()<<"Imagedepth="<<image->depth<<"n";qDebug()<<"ImagenChannels="<<image->nChannels<<"\n";QApplicationa(argc,ar
P32 C项目实战课程报告专业班级:软件工程154学号:28姓名:王璐完成日期:2015年12月25日大连交通大学信息学院C项目实战课程报告心得体会学习了C语言实训一学期之后,迎来了期末考试,尝试编写一个较为复杂的项目工程。对于跨专业进入软件工程的最大感受是:编写改写代码时必须细心加小心,编程初期往往因为丢落分号而出现低级编程错误。因此编程习惯在编程过程中显得尤为重要。而且编程与平常课程不同,即使单个程序运行正确加入工程中 2015年12月25日C项目实战课程报告摘要 2015年12月25日目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc438494501"C项目实战课程报告PAGEREF_Toc438494501\h1HYPERLINK\l"_Toc438494502"C项目实战课程报告PAGEREF_Toc438494502\h2HYPERLINK\l"_Toc438494503"C项目实战课程报告PAGEREF_Toc438494503\h3HYPERLINK\l"_Toc438494504"1系统模块划分图(格式:标题1,黑体,3号,段前段后6磅,单倍行距)PAGEREF_Toc438494504\h1HYPERLINK\l"_Toc438494505"2系统欢迎界面设计(格式:标题1,黑体,3号,段前段后6磅,单倍行距)PAGEREF_Toc438494505\h1HYPERLINK\l"_Toc438494506"2.1功能分析(格式:标题2,黑体,4号,段前段后6磅,单倍行距)PAGEREF_Toc438494506\h1HYPERLINK\l"_Toc438494507"2.2设计说明PAGEREF_Toc438494507\h2HYPERLINK\l"_Toc438494508"2.3程序运行截图PAGEREF_Toc438494508\h2HYPERLINK\l"_Toc438494509"2.4程序源代码PAGEREF_Toc438494509\h3HYPERLINK\l"_Toc438494510"3密码验证功能(格式:标题1,黑体,3号,段前段后6磅,单倍行距)PAGEREF_Toc438494510\h4HYPERLINK\l"_Toc438494511"3.1功能分析(格式:标题2,黑体,4号,段前段后6磅,单倍行距)PAGEREF_Toc438494511\h4HYPERLINK\l"_Toc438494512"3.2设计说明PAGEREF_Toc438494512\h4HYPERLINK\l"_Toc438494513"3.3程序运行截图PAGEREF_Toc438494513\h5HYPERLINK\l"_Toc438494514"3.4程序源代码PAGEREF_Toc438494514\h5HYPERLINK\l"_Toc438494515"4一级选择界面(格式:标题1,黑体,3号,段前段后6磅,单倍行距)PAGEREF_Toc438494515\h6HYPERLINK\l"_Toc438494516"4.1功能分析(格式:标题2,黑体,4号,段前段后6磅,单倍行距)PAGEREF_Toc438494516\h6HYPERLINK\l"_Toc438494517"4.2设计说明PAGEREF_Toc438494517\h6HYPERLINK\l"_Toc438494518"1)xuanzhe函数PAGEREF_Toc438494518\h7HYPERLINK\l"_Toc438494519"2)pic函数PAGEREF_Toc438494519\h7HYPERLINK\l"_Toc438494520"3)vip函数PAGEREF_Toc438494520\h7HYPERLINK\l"_Toc438494521"4)guess函数PAGEREF_Toc438494521\h8HYPERLINK\l"_Toc438494522"4.3程序运行截图PAGEREF_Toc438494522\h8HYPERLINK\l"_Toc438494523"4.4程序源代码PAGEREF_Toc438494523\h9HYPERLINK\l"_Toc43849
P14 基本语法HYPERLINK"javascript:;"编辑Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和惊喜。缩进Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。例如if语句:1234if age<21: print("你不能买酒。") print("不过你能买口香糖。")print("这句话处於if语句块的外面。")注:上述例子为python3.0版本的代码根据PEP的规定,必须使用4个空格来表示每级缩进(不清楚4个空格的规定如何,在实际编写中可以自定义空格数,但是要满足每级缩进间空格数相等)。使用Tab字符和其它数目的空格虽然都可以编译通过,但不符合编码规范。支持Tab字符和其它数目的空格仅仅是为兼容很旧的的Python程序和某些有问题的编辑程序。控制语句if语句,当条件成立时运行语句块。经常与else,elif(相当于elseif)配合使用。for语句,遍历列表、字符串、字典、集合等HYPERLINK"http://baike.baidu.com/view/925158.htm"\t"_blank"迭代器,依次处理迭代器中的每个元素。while语句,当条件为真时,循环运行语句块。try语句。与except,finally配合使用处理在程序运行中出现的异常情况。class语句。用于定义HYPERLINK"http://baike.baidu.com/subview/738155/10948439.htm"\t"_blank"类型。def语句。用于定义函数和类型的方法。pass语句。表示此行为空,不运行任何操作。assert语句。用于程序调适阶段时测试运行条件是否满足。with语句。Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。yield语句。在迭代器函数内使用,用于返回一个元素。自从Python2.5版本以后。这个语句变成一个运算符。raise语句。制造一个错误。import语句。导入一个模块或包。fromimport语句。从包导入模块或从模块导入某个对象。importas语句。将导入的对象赋值给一个变量。in语句。判断一个对象是否在一个字符串/列表/元组里。表达式Python的表达式写法与C/C++类似。只是在某些写法有所差别。主要的算术运算符与C/C++类似。+,-,*,/,//,**,~,%分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取模。>>,<<表示右移和左移。&,|,^表示二进制的AND,OR,XOR运算。>,<,==,!=,<=,>=用于比较两个表达式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。在这些运算符里面,~,|,^,&,<<,>>必须应用于整数。Python使用and,or,not表示逻辑运算。is,isnot用于比较两个变量是否是同一个对象。in,notin用于判断一个对象是否属于另外一个对象。Python支持“列表推导式”(listcomprehension),比如计算0-9的平方和:>>>sum(x*xforxinrange(10))285Python使用lambda表示匿名函数。匿名函数体只能是表达式。比如:>>>add=lambdax,y:x+y>>>add(3,2)5Python使用yifcondelsex表示条件表达式。意思是当cond为真时,表达式的值为y,否则表达式的值为x。相当于C++和Java里的cond?y:x。Python区分列表(list)和元组(tuple)两种类型。list的写法是[1,2,3],而tuple的写法是(1,2,3)。可以改变list中的元素,而不能改变tuple。在某些情况下,tuple的括号可以省略。tuple对于赋值语句有特殊的处理。因此,可以同时赋值给多个变量,比如:>>>x,y=1,2#同时给x,y赋值,最终结果:x=1,y=2特别地,可以使用以下这种形式来交换两个变量的值:>>>x,y=y,x#最终结果:y=1,x=2Python使用'(单引号)和"(双引号)来表示字符串。与Perl、UnixShell语言或者Ruby、Groovy等语言不一样,两种符号作用相同。一般地,如果字符串中出现了双引号,就使
P6 HYPERLINK"http://blog.csdn.net/huhumama0/article/details/9164873"树莓派+pythonopencv实现远程监控近来风闻住宿地不太安全,正好手边有个树莓派,花了些时间用树莓派实现了远程监控,下面和大家分享一下,希望有所帮助。因为非计算机视觉专业人士,所以使用了python版的opencv,方便快捷。如何在pc上安装pythonopencv见HYPERLINK"http://luugiathuy.com/2011/02/setup-opencv-for-python/"http://luugiathuy.com/2011/02/setup-opencv-for-python/,曾经见着有中文的桥段找不着在哪里了,对不住了各位不喜英文的童鞋。最后再装上pythonimaginglibrary。安装完成后,在opencv/sample/python目录下有一个camera.py文件,先看此源代码:[python] HYPERLINK"http://blog.csdn.net/huhumama0/article/details/9164873"\o"viewplain"viewplain HYPERLINK"http://blog.csdn.net/huhumama0/article/details/9164873"\o"copy"copy<span style="font-size:18px;">import cv2.cv as cv import time cv.NamedWindow("camera", 1) capture = cv.CaptureFromCAM(0) while True: img = cv.QueryFrame(capture) cv.ShowImage("camera", img) if cv.WaitKey(10) == 27: break cv.DestroyAllWindows() </span> 基本上意思就是说,创建一个源于默认摄像设备的捕捉器,然后不停地一帧一帧地获取图像并显示。按照上述代码,要实现远程监控,一种很简单直接的方法就是在数据源端获取图像之后通过网络传出去,然后在远程端读取出图像并显示。这样可以将整个程序分为三部分:数据源(也就是要监控的地方),服务器(用于中转网络数据),客户端(显示监控图像的地方)。下面逐项讲解。一、数据源端也就是放摄像头的地方。其实,完全可以把电脑开着放在那里然后开着QQ,远端视频聊天即可实现监控。不过这样做略显低端,说出去都有失码农身份。正好手边有一树莓派,正是派上用场的地方。恩,嵌入式开发,听着高端多了。闲话少说,先讲树莓派的配置。首先,用的是Raspbian系统,最好能够先执行sudoapt-getupdate和sudoapt-getupgrade,保证系统是最新的。系统自带python,不需要再安装;安装pythonopencv:sudoapt-getinstalllibopencv-devpython-opencv;安装pythonimaginglibrary:sudoapt-getinstallpython-imaging。大功告成。传输网络数据就用最基本的socket,那么,树莓派上的代码就如下所示:[python] HYPERLINK"http://blog.csdn.net/huhumama0/article/details/9164873"\o"viewplain"viewplain HYPERLINK"http://blog.csdn.net/huhumama0/article/details/9164873"\o"copy"copy<span style="font-size:18px;">import cv import time, socket, Image, StringIO capture = cv.CaptureFromCAM(0) cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH, 640) cv.SetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT, 480) HOST, PORT = "192.168.0.102", 9999 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((HOST, PORT)) while
P2 树莓派安装mjpg-streamer视频监控时间 2013-07-1614:53:09 HYPERLINK"http://www.tuicool.com/sites/eUNbQz"\t"_blank"PHP圈原文 HYPERLINK"http://phpquan.com/lamp/linux/mjpg-streamer-raspberry-pi/?utm_source=tuicool&utm_medium=referral"http://phpquan.com/lamp/linux/mjpg-streamer-raspberry-pi/主题 HYPERLINK"http://www.tuicool.com/topics/10300145"\t"_blank"RaspberryPi HYPERLINK"http://www.tuicool.com/topics/11200019"\t"_blank"Linux命令在树莓派上有几种视频监控软件 fswebcam motion mjpg-streamer上面两种都相对简单,唯独mjpg-streamer整了半天。所以记录下安装过程首先安装所需软件 sudoapt-getinstallsubversion sudoapt-getinstalllibv4l-dev sudoapt-getinstalllibjpeg8-devsvn下载软件到本地 svncottps://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamermjpg-streamer 打开mjpg-streamer目录 cdmjpg-streamer/mjpg-streamer 编译安装 makeUSE_LIBV4L2=truecleanall makeDESTDIR=/usrinstall编译时可能会报i:init_VideoInfailed错误 错误原因:市面上大部分摄像头都是支持YUV的,而不是JPEG的。mjpg-stream支持JPEG和YUV两种格式。 1、打开以下文件: sudovimjpg-streamer/plugins/input_uvc/input_uvc.c 2、查找V4L2_PIX_FMT_MJPEG大概第三页 将一行中的:intwidth=640,height=480,fps=-1,format= V4L2_PIX_FMT_MJPEG,i; 把 V4L2_PIX_FMT_MJPEG 改成 V4L2_PIX_FMT_YUYV 需要重新编译才会有效。运行 mjpg_streamer-i"/usr/lib/input_uvc.so-d/dev/video0-y-r320×240-f15″-o"/usr/lib/output_http.so-p8090-w./www"这里很关键,好像视频大小不能大于320×240,前几次设置了640*480,能运行,但打开web无图像。经过测试只要设置到320×240就可以
P2 树莓派使用MJPG-Streamer实现网络监控 (2015-04-2817:04:52)HYPERLINK"javascript:;"INCLUDEPICTURE"http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif"\*MERGEFORMATINET转载▼标签: HYPERLINK"http://search.sina.com.cn/?c=blog&q=%CA%F7%DD%AE%C5%C9&by=tag"\t"_blank"树莓派 HYPERLINK"http://search.sina.com.cn/?c=blog&q=%CD%F8%C2%E7%BC%E0%BF%D8&by=tag"\t"_blank"网络监控 HYPERLINK"http://search.sina.com.cn/?c=blog&q=mjpg-streamer&by=tag"\t"_blank"mjpg-streamer分类: HYPERLINK"http://blog.sina.com.cn/s/articlelist_2882772167_4_1.html"\t"_blank"linux 1. 先更新apt的列表:sudoapt-getupdate sudoapt-getupgrade重启系统后,sudoraspi-config移动到第五项“EnableCamera”,回车进入,按tab键切换到“Enable”回车确认。回到主菜单,tab键切换到“Finish”回车确认。树莓派会自动重启。2. 安装依赖库安装libjpeg的dev版本(注:下面所有安装过程中出现是否继续时,统一选择继续:Yes)sudoapt-getinstalllibjpeg62-devsudoapt-getinstalllibjpeg8-dev3. 下载mjpg-streamerwget HYPERLINK"https://github.com/jacksonliam/mjpg-streamer"https://github.com/jacksonliam/mjpg-streamer或者直接到网站下载zip安装包mjpg-streamer-master.zip使用unzipmjpg-streamer-master.zip解压4. 编译mjpg-streamer安装cmakesudoapt-getinstallcmake切换到mjpg的路径下:cd ~/mjpg-streamer-master/mjpg-streamer-experimental sudomake clean all5. 安装mjpg-streamersudo cp mjpg_streamer /usr/local/binsudo cp output_http.so input_uvc.so /usr/local/lib/sudo cp -R www /usr/local/www6. 开启mjpg-streamerLD_LIBRARY_PATH=/usr/local/lib mjpg_streamer-i"input_uvc.so"-o"output_http.so-w/usr/local/www"或者LD_LIBRARY_PATH=/usr/local/libmjpg_streamer-i"./input_uvc.so-d/dev/video0-r320*240-f12"-o"./output_http.so –p 8090 –w /usr/local/www"或者添加到path路径exportLD_LIBRARY_PATH=/opt/mjpg-streamer/(-r后是分辨率参数,-f后面是帧率,请根据您的摄像头参数进行调整)8090可以自己定义在浏览器http://:8080 打开监控界面
P10 HYPERLINK"http://item.congci.com/item/shumeipai-shexiangtou-shishi-jiankong"树莓派摄像头实时监控motion首先安装usb摄像头,连接后使用lsusb命令查看pi@raspberrypi4~$lsusbBus001Device002:ID0424:9512StandardMicrosystemsCorp.Bus001Device001:ID1d6b:0002LinuxFoundation2.0roothubBus001Device003:ID0424:ec00StandardMicrosystemsCorp.Bus001Device006:ID0c45:62f0MicrodiaBus001Device005:ID0bda:8179RealtekSemiconductorCorp. 已经看到摄像头了,代号为0c45:62f0Microdia的设备就是摄像头,然后用命令pi@raspberrypi4~$ls/dev惊喜的看到设备里有video0,这说明系统自带我摄像头的驱动,已经驱动好了,省的折腾驱动了。然后,更新下系统pi@raspberrypi4~$sudoapt-getupdate最后,安装软件motionpi@raspberrypi4~$sudoapt-getinstallmotion配置motion,具体方法为修改/etc/motion/motion.conf文件,将Daemon=off改为on,webcam_localhost=on改为off,默认的监控端口为8081,改不改都可。为了方便,设置开机自动运行,方法为更改/etc/default/motion文件,把start_motion_daemon=no改为yes。重启树莓派pi@raspberrypi4~$sudoreboot重启后就可以看看效果了,在浏览器输入树莓派IP:端口就可以了。摄像头正对我楼下自行车棚的门口,有人走动的话,会实时拍照的,哈哈。暂时就搞到这里,下一步考虑将拍摄的照片同步到网络存储,比如dropbox,Dbank等等。监控网址就不公布了,貌似私自架设是违法的,O(∩_∩)O--------------------------------------------------------------------记得在Raspibian中的系统配置UI里,enablecamera:1sudo raspi-config然后就可以测试下摄像头了。一切木有问题后即可准备通过网络远程监控,其他参数直接看命令自带的帮助即可。1#这个是测试静态图片2raspistill-oimage.jpg3#这个是测试10秒短片4raspivid-ovideo.h264简单说一下原理,你的windows电脑作为接收器,通过nc和mplayer软件持续监听接收缓存来自网络上的视频信号(流);而树莓派作为发送者,只要持续的将视频信号发送到某个ip上即可。这个方案也有不好的地方,就是必须在树莓派上通过命令行来指定接受者。首先windows上下载这两个东西,建议把两个软件的内容都解压缩到一个文件夹下面。HYPERLINK"http://liyao.me/raspberry-pi-wifi-camera/mplayer-svn-36251/"前往下载页面:mplayer-svn-36251.7zHYPERLINK"http://liyao.me/wp-content/uploads/2013/12/nc111nt.zip"前往下载页面:nc111nt.zip然后在这个文件夹里整一个.bat文件,随便叫啥好了,内容如下,啥都不用改:1nc.exe-L-p5001|mplayer.exe-fps31-cache2048-双击执行这个文件,然后在树莓派上执行:1raspivid-t999999-o-|nc[你的IP]5001搞定!就是这么简单。这样你就能在windows上局域网里看到监控画面了。对于linux或者osx上的监视方法,参考-------------------------------------------------------------------------------------------------------------------------------树莓pi(或者说linux)的兼容性不错,插上摄像头之后,使用lsusb查看usb设备Bus001Device004:IDeb1a:2571eMpIATechnology,Inc.M035CompactWebCam接下来安装软件motion(可以获取摄像头的数据,生成图片或发
P6 MyCAT性能调优指南JVM调优:内存占用分两部分:java堆内存+直接内存映射(DirectBuffer占用),建议堆内存适度大小,直接映射内存尽可能大,两种一起占据操作系统的1/2-2/3的内存。下面以服务器16G内存为例,Mycat堆内存4G,直接内存映射6G,JVM参数如下:-server-Xms4G–Xmx4GXX:MaxPermSize=64M-XX:MaxDirectMemorySize=6G用mycatconsole等命令启动MyCAT的,JVM参数都在conf\wrapper.con文件中,下面是一段实例:#JavaAdditionalParameterswrapper.java.additional.5=-XX:MaxDirectMemorySize=2Gwrapper.java.additional.6=-Dcom.sun.management.jmxremote#InitialJavaHeapSize(inMB)wrapper.java.initmemory=2048#MaximumJavaHeapSize(inMB)wrapper.java.maxmemory=2048操作系统调优:最大文件句柄数量的修改,设置为5000-1万,在MycatServer和Mysql数据库的机器上都设置。Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目).这个值可用ulimit命令来修改,但ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效。Mysql调优:最大连接数设置为2000[mysqld]中有参数max_connections=2000mysql>showglobalstatuslike'Max_used_connections';MySQL服务器过去的最大连接数是245,没有达到服务器连接数上限256,应该没有出现1040错误,比较理想的设置是:Max_used_connections/max_connections*100%≈85%最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接上线就设置得过高了。Mycat调优:Conf/log4j.xml中,日志级别调整为至少info级别,默认是debug级别,用于排查错误,不能用于性能测试和正式生产中。conf/server.xml中有如下参数可以调整:<system><!—CPU核心数越多,可以越大,当发现系统CPU压力很小的情况下,可以适当调大此参数,如4核心的4CPU,可以设置为16,24核心的可以最大设置为128——><propertyname="processors">1</property>下面这个参数为每个processor的线程池大小,建议可以是16-64,根据系统能力来测试和确定。<propertyname="processorExecutor">16</property></system>System中以下重要参数也根据情况进行调整processorBufferPool:每个processor分配的SocketDirectBuffer,用于网络通信,每个processor上管理的所有连接共享,processorBufferChunk为Pool的最小分配单元,每个POOL的容量即为processorBufferPool/processorBufferChunk,默认前者为1024*1024*16=16M,后者为4096字节。processorBufferPool参数的调整,需要观察show@@processor的结果来确定:BU_PERCENT为已使用的百分比、BU_WARNS为SocketBufferPool不够时,临时创新的新的BUFFER的次数,若百分比经常超过90%并且BU_WARNS>0,则表明BUFFER不够,需要增大processorBufferPool。基本上,连接数越多,并发越高,需要的POOL越大,建议BU_PERCENT最大在40-80%之间。conf/schema.xml中有如下参数可以调整:<schemaname="TESTDB"checkSQLschema="true">,checkSQLschema属性建议设置为false,要求开发中,不能在sql中添加数据库的名称,如select*fromTESTDB.company,这样可以优化SQL解析。<dataHostname="localhost1"maxCon="500"minCon="10"balance="0"dbType="mysql"dbDriver="native"banlance="0"><!—最大连接池maxCon,可以改
P2 准循环低密度奇偶校验(QC-LDPC)码在无线通信系统中经常使用,因此低编码复杂度便非常重要。在本文中,提出一个新的方案构建低编码复杂度的QC-LDPC码。该方案被称为两阶段粒子群算法(TS-PSO)算法,其中两个阈值和构成QC-LDPC码周长分配被考虑。该方案由两个阶段组成。在第一阶段中,我们构建的二进制基本矩阵QC-LDPC码的最佳的阈值。矩阵是通过组合一个二进制PSO算法构造和原模图外在信息传递(PEXIT)方法。在第二阶段中,我们搜索一个用最好的周长分布的QC-LDPC码的指数矩阵。这个指数矩阵是基于在第一阶段中获得的基本矩阵。因此,在与该QC-LDPC码的奇偶校验矩阵最好的阈值和最佳周长分布构成。此外,误比特率特性被用于通过提出的方案构造的QC-LDPC码相比,QC-LDPC码在802。16e标准,和QC-LDPC码潭的研究。仿真结果表明,本文中的QC-LDPC编码方法码加性高斯白噪声信道和瑞利信道中优于802。16e的编码和Tam的编码。此外,提出的方案是很容易实现的,并且在构造低编码复杂度的QC-LDPC码具有灵活性的和有效性的特点。
P20 1.1 什么是手动查杀病毒技术 通过对目标系统进程、网络连接状态、随机启动项目等信息的综合分析与判断,结合使用各种系统命令与工具手动确认病毒(木马)与清除病毒的技术 1.2 为什么要学习手工病毒查杀技术 杀毒软件更新慢,主要依赖于病毒库的更新。黑客长期对自己的后门、病毒进行免杀处理。 有关免杀技术介绍:http://baike.baidu.com/view/706274.htm