文档库 最新最全的文档下载
当前位置:文档库 › tornado中文教程

tornado中文教程

tornado中文教程
tornado中文教程

概览

Overview

FriendFeed使用了一款使用Python 编写的,相对简单的非阻塞式Web 服务器。其应用程序使用的Web 框架看起来有些像web.py或者Google 的webapp,不过为了能有效利用非阻塞式服务器环境,这个Web 框架还包含了一些相关的有用工具和优化。

Tornado就是我们在FriendFeed 的Web 服务器及其常用工具的开源版本。Tornado 和现在的主流Web 服务器框架(包括大多数Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对epoll 的运用,Tornado 每秒可以处理数以千计的连接,因此Tornado 是实时Web 服务的一个理想框架。我们开发这个Web 服务器的主要目的就是为了处理FriendFeed 的实时功能——在FriendFeed 的应用里每一个活动用户都会保持着

一个服务器连接。(关于如何扩容服务器,以处理数以千计的客户端的连接的问题,请参阅The C10K problem)

以下是经典的“Hello, world” 示例:

查看下面的Tornado 攻略以了解更多关于tornado.web包的细节。

我们清理了Tornado 的基础代码,减少了各模块之间的相互依存关系,所以理论上讲,你可以在自己的项目中独立地使用任何模块,而不需要使用整个包。

下载和安装

自动安装: Tornado 已经列入PyPI,因此可以通过pip或者easy_install来安装。如果你没有安装libcurl 的话,你需要将其单独安装到系统中。请参见下面的

安装依赖一节。注意一点,使用pip或easy_install安装的Tornado 并没有包含源代码中的demo 程序。

手动安装:下载tornado-1.2.1.tar.gz

Tornado 的代码托管在GitHub上面。对于Python 2.6 以上的版本,因为标准库中已经包括了对epoll的支持,所以你可以不用setup.py编译安装,只要简单地将tornado 的目录添加到PYTHONPATH就可以使用了。

安装需求

Tornado 在Python 2.5, 2.6, 2.7 中都经过了测试。要使用Tornado 的所有功能,你需要安装PycURL (7.18.2 或更高版本) 以及simplejson (仅适用于Python 2.5,2.6 以后的版本标准库当中已经包含了对JSON 的支持)。为方便起见,下面将列出Mac OS X 和Ubuntu 中的完整安装方式:

Mac OS X 10.6 (Python 2.6+)

Ubuntu Linux (Python 2.6+)

Ubuntu Linux (Python 2.5)

主要模块

底层模块

Tornado 攻略

请求处理程序和请求参数

Tornado 的Web 程序会将URL 或者URL 范式映射

到tornado.web.RequestHandler的子类上去。在其子类中定义了

get()或post()方法,用以处理不同的HTTP 请求。

下面的代码将URL 根目录/映射到MainHandler,还将一个URL 范

式/story/([0-9]+)映射到StoryHandler。正则表达式匹配的分组会作为参数引入的相应方法中:

你可以使用get_argument()方法来获取查询字符串参数,以及解析POST的内容:

上传的文件可以通过self.request.files访问到,该对象将名称(HTML元

的name 属性)对应到一个文件列表。每一个文件都以字典的形式存在,其格式为{"filename":..., "content_type":..., "body":...}。

如果你想要返回一个错误信息给客户端,例如“403 unauthorized”,只需要抛出一个tornado.web.HTTPError异常:

请求处理程序可以通过self.request访问到代表当前请求的对象。

该HTTPRequest对象包含了一些有用的属性,包括:

?arguments - 所有的GET或POST的参数

?files - 所有通过multipart/form-data POST 请求上传的文件

?path - 请求的路径(?之前的所有内容)

?headers - 请求的开头信息

你可以通过查看源代码httpserver模组中HTTPRequest的定义,从而了解到它的所有属性。

重写RequestHandler 的方法函数

除了get()/post()等以外,RequestHandler中的一些别的方法函数,这都是一些空函数,它们存在的目的是在必要时在子类中重新定义其内容。对于一个请求的处理的代码调用次序如下:

1.程序为每一个请求创建一个RequestHandler 对象

2.程序调用initialize()函数,这个函数的参数是Application配置中

的关键字参数定义。(initialize方法是Tornado 1.1 中新添加的,

旧版本中你需要重写__init__以达到同样的目的)initialize方法

一般只是把传入的参数存到成员变量中,而不会产生一些输出或者调

用像send_error之类的方法。

3.程序调用prepare()。无论使用了哪种HTTP 方法,prepare都会被

调用到,因此这个方法通常会被定义在一个基类中,然后在子类中重

用。prepare可以产生输出信息。如果它调用了finish(或send_error`

等函数),那么整个处理流程就此结束。

4.程序调用某个HTTP 方法:例如get()、post()、put()等。如果URL

的正则表达式模式中有分组匹配,那么相关匹配会作为参数传入方法。

下面是一个示范initialize()方法的例子:

其它设计用来被复写的方法有:

?get_error_html(self, status_code, exception=None, **kwargs) - 以字符串的形式返回HTML,以供错误页面使用。

?get_current_user(self) - 查看下面的用户认证一节

?get_user_locale(self) - 返回locale对象,以供当前用户使用。

?get_login_url(self) - 返回登录网址,以供@authenticated装饰器使用(默认位置在Application设置中)

?get_template_path(self) - 返回模板文件的路径(默认

是Application中的设置)

重定向(redirect)

Tornado 中的重定向有两种主要方法:self.redirect,或者使

用RedirectHandler。

你可以在使用RequestHandler(例如get)的方法中使用self.redirect,将用户重定向到别的地方。另外还有一个可选参数permanent,你可以用它指定这次操作为永久性重定向。

该参数会激发一个301 Moved Permanently HTTP 状态,这在某些情况下是有用的,例如,你要将页面的原始链接重定向时,这种方式会更有利于搜索引擎优化(SEO)。

permanent的默认值是False,这是为了适用于常见的操作,例如用户端在成功发送POST 请求以后的重定向。

RedirectHandler会在你初始化Application时自动生成。

例如本站的下载URL,由较短的URL 重定向到较长的URL 的方式是这样的:

RedirectHandler的默认状态码是301 Moved Permanently,不过如果你想使用302 Found状态码,你需要将permanent设置为False。

注意,在self.redirect和RedirectHandler中,permanent的默认值是不同的。这样做是有一定道理的,self.redirect通常会被用在自定义方法中,是由逻辑事件触发的(例如环境变更、用户认证、以及表单提交)。而RedirectHandler是在每次匹配到请求URL 时被触发。

模板

你可以在Tornado 中使用任何一种Python 支持的模板语言。但是相较于其它模板而言,Tornado 自带的模板系统速度更快,并且也更灵活。具体可以查

看template模块的源码。

Tornado 模板其实就是HTML 文件(也可以是任何文本格式的文件),其中包含了Python 控制结构和表达式,这些控制结构和表达式需要放在规定的格式标记符(markup)中:

如果你把上面的代码命名为"template.html",保存在Python 代码的同一目录中,你就可以这样来渲染它:

Tornado 的模板支持“控制语句”和“表达语句”,控制语句是使用{%和%}包起来的例如{% if len(items) > 2 %}。表达语句是使用{{和}}包起来的,例

如{{ items[0] }}。

控制语句和对应的Python 语句的格式基本完全相同。我们支持if、for、

while和try,这些语句逻辑结束的位置需要用{% end %}做标记。我们还通

过extends和block语句实现了模板继承。这些在template模块的代码文档中有着详细的描述。

表达语句可以是包括函数调用在内的任何Python 表述。模板中的相关代码,会在一个单独的名字空间中被执行,这个名字空间包括了以下的一些对象和方法。(注意,下面列表中的对象或方法在使用RequestHandler.render或者

render_string时才存在的,如果你在RequestHandler外面直接使

用template模块,则它们中的大部分是不存在的)。

?escape: tornado.escape.xhtml_escape的別名

?xhtml_escape: tornado.escape.xhtml_escape的別名

?url_escape: tornado.escape.url_escape的別名

?json_encode: tornado.escape.json_encode的別名

?squeeze: tornado.escape.squeeze的別名

?linkify: tornado.escape.linkify的別名

?datetime: Python 的datetime模组

?handler: 当前的RequestHandler对象

?request: handler.request的別名

?current_user: handler.current_user的別名

?locale: handler.locale的別名

?_: handler.locale.translate的別名

?static_url: for handler.static_url的別名

?xsrf_form_html: handler.xsrf_form_html的別名

?reverse_url: Application.reverse_url的別名

?Application设置中ui_methods和ui_modules下面的所有项目

?任何传递给render或者render_string的关键字参数

当你制作一个实际应用时,你会需要用到Tornado 模板的所有功能,尤其是模板继承功能。所有这些功能都可以在template模块的代码文档中了解到。(其中一些功能是在web模块中实现的,例如UIModules)

从实现方式来讲,Tornado 的模板会被直接转成Python 代码。模板中的语句会逐字复制到一个代表模板的函数中去。我们不会对模板有任何限制,Tornado 模板模块的设计宗旨就是要比其他模板系统更灵活而且限制更少。所以,当你的模板语句里发生了随机的错误,在执行模板时你就会看到随机的Python 错误信息。

所有的模板输出都已经通过tornado.escape.xhtml_escape自动转义(escape),这种默认行为,可以通过以下几种方式修改:将autoescape=None传递

给Application或者TemplateLoader、在模板文件中加入{% autoescape None %}、或者在简单表达语句{{ ... }}写成{% raw ...%}。另外你可以在上述位置将autoescape设为一个自定义函数,而不仅仅是None。

Cookie 和安全Cookie

你可以使用set_cookie方法在用户的浏览中设置cookie:

Cookie 很容易被恶意的客户端伪造。加入你想在cookie 中保存当前登陆用户的id 之类的信息,你需要对cookie 作签名以防止伪造。Tornado 通

过set_secure_cookie和get_secure_cookie方法直接支持了这种功能。要使用这些方法,你需要在创建应用时提供一个密钥,名字为cookie_secret。你可以把它作为一个关键词参数传入应用的设置中:

签名过的cookie 中包含了编码过的cookie 值,另外还有一个时间戳和一

个HMAC签名。如果cookie 已经过期或者签名不匹配,get_secure_cookie将返回None,这和没有设置cookie 时的返回值是一样的。上面例子的安全cookie 版本如下:

用户认证

当前已经认证的用户信息被保存在每一个请求处理器的self.current_user当中,同时在模板的current_user中也是。默认情况下,current_user为None。

要在应用程序实现用户认证的功能,你需要复写请求处理

中get_current_user()这个方法,在其中判定当前用户的状态,比如通过cookie。下面的例子让用户简单地使用一个nickname 登陆应用,该登陆信息将被保存到cookie 中:

对于那些必须要求用户登陆的操作,可以使用装饰

器tornado.web.authenticated。如果一个方法套上了这个装饰器,但是当前用

户并没有登陆的话,页面会被重定向到login_url(应用配置中的一个选项),上面的例子可以被改写成:

如果你使用authenticated装饰器来装饰post()方法,那么在用户没有登陆的状态下,服务器会返回403 错误。

Tornado 内部集成了对第三方认证形式的支持,比如Google 的OAuth 。参

阅auth模块的代码文档以了解更多信息。for more details. Check auth模块以了解更多的细节。在Tornado 的源码中有一个Blog 的例子,你也可以从那里看到用户认证的方法(以及如何在MySQL 数据库中保存用户数据)。

跨站伪造请求的防范

跨站伪造请求(Cross-site request forgery),简称为XSRF,是个性化Web 应用中常见的一个安全问题。前面的链接也详细讲述了XSRF 攻击的实现方式。

当前防范XSRF 的一种通用的方法,是对每一个用户都记录一个无法预知的cookie 数据,然后要求所有提交的请求中都必须带有这个cookie 数据。如果此数据不匹配,那么这个请求就可能是被伪造的。

Tornado 有内建的XSRF 的防范机制,要使用此机制,你需要在应用配置中加

上xsrf_cookies设定:

如果设置了xsrf_cookies,那么Tornado 的Web 应用将对所有用户设置一

个_xsrf的cookie 值,如果POST PUTDELET请求中没有这个cookie 值,那么这个请求会被直接拒绝。如果你开启了这个机制,那么在所有被提交的表单中,你都需要加上一个域来提供这个值。你可以通过在模板中使用专门的函

数xsrf_form_html()来做到这一点:

如果你提交的是AJAX 的POST请求,你还是需要在每一个请求中通过脚本添加

上_xsrf这个值。下面是在FriendFeed 中的AJAX 的POST请求,使用

了jQuery函数来为所有请求组东添加_xsrf值:

对于PUT和DELETE请求(以及不使用将form 内容作为参数的POST请求)来说,你也可以在HTTP 头中以X-XSRFToken这个参数传递XSRF token。

如果你需要针对每一个请求处理器定制XSRF 行为,你可以重

写RequestHandler.check_xsrf_cookie()。例如你需要使用一个不支持cookie 的API,你可以通过将check_xsrf_cookie()函数设空来禁用XSRF 保护机制。然而如果你需要同时支持cookie 和非cookie 认证方式,那么只要当前请求是通过cookie 进行认证的,你就应该对其使用XSRF 保护机制,这一点至关重要。

静态文件和主动式文件缓存

你能通过在应用配置中指定static_path选项来提供静态文件服务:

这样配置后,所有以/static/开头的请求,都会直接访问到指定的静态文件目录,比如http://localhost:8888/static/foo.png会从指定的静态文件目录中访问

到foo.png这个文件。同时/robots.txt和/favicon.ico也是会自动作为静态文件处理(即使它们不是以/static/开头)。

在上述配置中,我们使用StaticFileHandler特别指定了让Tornado 从根目录伺服apple-touch-icon.png这个文件,尽管它的物理位置还是在静态文件目录中。(正则表达式的匹配分组的目的是向StaticFileHandler指定所请求的文件名称,抓取到的分组会以方法参数的形式传递给处理器。)通过相同的方式,你也可以从站点的更目录伺服sitemap.xml文件。当然,你也可以通过在HTML 中使用正确的标签来避免这样的根目录文件伪造行为。

为了提高性能,在浏览器主动缓存静态文件是个不错的主意。这样浏览器就不需要发送不必要的If-Modified-Since和Etag请求,从而影响页面的渲染速度。

Tornado 可以通过内建的“静态内容分版(static content versioning)”来直接支持这种功能。

要使用这个功能,在模板中就不要直接使用静态文件的URL 地址了,你需要在HTML 中使用static_url()这个方法来提供URL 地址:

static_url()函数会将相对地址转成一个类似

于/static/images/logo.png?v=aae54的URI,v参数是logo.png文件的散列值,Tornado 服务器会把它发给浏览器,并以此为依据让浏览器对相关内容做永久缓存。

由于v的值是基于文件的内容计算出来的,如果你更新了文件,或者重启了服务器,那么就会得到一个新的v值,这样浏览器就会请求服务器以获取新的文件内容。如果文件的内容没有改变,浏览器就会一直使用本地缓存的文件,这样可以显著提高页面的渲染速度。

在生产环境下,你可能会使用nginx这样的更有利于静态文件伺服的服务器,你可以将Tornado 的文件缓存指定到任何静态文件服务器上面,下面是FriendFeed 使用的nginx 的相关配置:

本地化

不管有没有登陆,当前用户的locale 设置可以通过两种方式访问到:请求处理器的self.locale对象、以及模板中的locale值。Locale 的名称(如en_US)可以通过https://www.wendangku.net/doc/f84651840.html,这个变量访问到,你可以使用locale.translate来进行本地化翻译。在模板中,有一个全局方法叫_(),它的作用就是进行本地化的翻译。这个翻译方法有两种使用形式:

它会基于当前locale 设置直接进行翻译,还有一种是:

这种形式会根据第三个参数来决定是使用单数或是复数的翻译。上面的例子中,如果len(people)是1的话,就使用第一种形式的翻译,否则,就使用第二种形式的翻译。

常用的翻译形式是使用Python 格式化字符串时的“固定占位符(placeholder)”语法,(例如上面的%(num)d),和普通占位符比起来,固定占位符的优势是使用时没有顺序限制。

一个本地化翻译的模板例子:

默认情况下,我们通过Accept-Language这个头来判定用户的locale,如果没有,则取en_US这个值。如果希望用户手动设置一个locale 偏好,可以在处理请求的类中复写get_user_locale方法:

(完整word版)基于ZEMAX的激光扩束镜的优化设计

光学软件设计 实验报告: 基于ZEMAX的激光扩束镜的优化设计 姓名: 学号:2011146211

一、实验目的 学会使用ZEMAX软件对多重结构配置的激光束扩大器进行优化设计。 二、实验要求 1、掌握使用多重结构配置。 2、进一步学习构建优化函数。 三、实验内容 设计一个激光扩束器,使用的波长为1.053um,输入光束直径为100mm,输出光束的直径为20mm,且输入光束和输出光束平行。要求只使用两片镜片,设计必须是伽利略式的(没有内部焦点),在镜片之间的间隔必须不超过250mm,只许使用1片非球面,系统必须在波长为0.6328um时测试。 1、打开ZEMAX软件,关闭默认的上一个设计结果,然后新建一个空白透镜。 2、在IMA面(像平面)前使用insert插入4个面,输入相关各面的厚度、曲率半径和玻璃类型值。 3、点击Gen设置入瞳直径为100,点击Wav设置波长为 1.053微米。

4、在主菜单Editors里构建一个优化函数,将第一行操作数类型改为REAY,surf输入5,Py输入1,taiget输入10,weight输入1。 5、在评价函数编辑窗中选工具—默认优化函数。选reset,将“开始在”的值设置为2,

确定。 6、点击Opt进行优化,优化后生产OPD图。

7、将第一面的conic设置为变量(control+z)。再次进行优化,重新生产OPD图并观察。 8、将三个曲率和圆锥西数的变量状态去掉。 9、点击Wav重新配置光波长,将之前的1.053改为0.6328,确定后再次更新OPD图并分析。

10、将第二面的厚度250mm设为可变,然后再次点击Opt优化,重新生成OPD图。此时去掉第二面的可变状态。 11、从主菜单—编辑中调出多重结构编辑窗,在这个窗口的编辑菜单中选“插入结构”来插入一个新的结构配置,双击第一行第一列,从下拉框中选wave,在同样的对话框里为wavelength选择1,确定。在config1下输入 1.053,在config2下输入0.6328。

Tornado IDE与VxSim目标仿真环境

实验六 Tornado IDE 与 VxSim目标仿真环 境 6.1 实验目的 熟悉 Tornado开发环境,编辑、编译、下载、调试程序,熟练使用 GNU/Diab 编译器、 Cross Wind/Wind Shell 调试工具、Brower/Wind View 分析工具、VxSim目标仿真器,了解嵌 入式开发的基本方法和过程。 6.2 实验内容 (1) Hello World和 Goodbye World实验。使用 Tornado集成开发环境新建一个工作空间 和工程,通过编辑器编辑程序,并使用工程工具的 GNU编译程序,将程序下载到运行在主 机上的 VxWorks 目标仿真器,使用Wind Shell 运行程序, (2) 通过调试 Tornado 自带的 cobble 程序,掌握使用 Browse 观察目标仿真器的内存使 用情况,使用 Wind View图形化地跟踪监视示例程序的执行流程,使用Debugger 调试运行 时应用程序的错误。 6.3 实验软硬件环境 硬件: 主机: PIII800 ,内存 256M ,硬盘 30G 及以上 目标机:VxSim目标仿真器 软件: 主机: Windows2000/XP,Tornado2.2 目标机:VxWorks5.5 6.4 实验预备知识 Tornado 软总线体系结构,Tornado的工具集组成及其功能。 6.5 实验项目与步骤 6.5.1 Hello World 与 Goodbye World 实验 在本实验中,要求使用 Tornado工具编写一个“Hello World”的程序。该程序中有两个 函数,可以在 Tornado的 Wind Shell 工具中输入这两个函数的名称来启动这两个函数执行。 步骤见下。

Tornado_VxWorks官方培训教程1

嵌入式培训专题 微迪软件培训中心Tornado &VxWorks 培训 深圳市微迪软件技术有限公司 培训中心

嵌入式培训专题 微迪软件培训中心实时系统概念 ?实时系统是对外来事件在限定时间内能做出反应的系统。 ?指标 –响应时间Response Time –生存时间Survival Time –吞吐量Throughput

嵌入式培训专题 微迪软件培训中心实时系统与普通系统 ? 在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间?对于实时系统来说最重要的要求就是实时操作系统必须有满足在一个事先定义好的时间限制中对外部或内部的事件进行响应和处理的能力 ? 此外作为实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I /O 能力来处理有严格时间限制的数据收发应用

嵌入式培训专题 微迪软件培训中心实时系统分类 ?根据不同的分类方法可以分为几种。 –方法一是分为周期性的和非周期性的(p e r i o d i c 和 a p e r i o d i c ) –方法二是分为硬实时和软实时(h a r d r e a l _t i m e 和s o f t r e a l _t i m e ) –专用系统和开放系统 –集中式系统和分布式系统

嵌入式培训专题 微迪软件培训中心实时多任务操作系统与分时多任务操作系统? 分时操作系统,软件的执行在时间上的要求,并不严格,时间上的错误,一般不会造成灾难性的后果。?实时操作系统,主要任务是对事件进行实时的处理,虽然事件可能在无法预知的时刻到达,但是软件上必须在事件发生时能够在严格的时限内作出响应(系统响应时间),即使是在尖峰负荷下,也应如此,系统时间响应的超时就意味着致命的失败。另外,实时操作系统的重要特点是具有系统的可确定性,即系统能对运行情况的最好和最坏等的情况能做出精确的估计。

嵌入式实时操作系统vxworks实验教程[1]

???VxWorks 偠 ? Laboratory Tutorial for Embedded Real ˉtime Operating System VxWorks ?? ? ? ? ? ? ? 2003 10

???VxWorks 偠 ? ? 1 ???? (1) 1.1 ?? (1) 1.2 ??? (7) 2 ? MPC860 (16) 3 ???VxWorks ? ? Tornado (25) 3.1 ???VxWorks (25) 3.2 Tornado? ? (43) 4 VxWorks?BootRom (48) 5 偠 (55) 5.1 偠??Tornado??? (55) 5.2 偠?? ??? ? ? (74) 5.3 偠?? ? ? ?? (78) 5.4 偠 ?? ??? (101) 5.5 偠?? ?????? ?? (110) 5.6 偠 ? ?????? ?? (116) ? A hwa-xpc860 偠 (120)

1 ???? ?? ?? 催? ?? ??? ?? ? ? ?? ??Ё?????? ? ?? ?? ? ? ?? ?? (Embebdded computer) Ё??? ?? ? ??? ⑤?20??60 ?? ????? ? ????? ? 1.1.1 ???? ??? ?? ? Н? ??? ????? ?? ?? ???? ???? ?? ?? ?? ?? ???? ??? ????? ? ?????BIOS? ? ? ???? ?催 ? ? ? ㄝ???? ? ??? ? ? ? ?????????? ???? ?? ? ? ? ? ???? ?? ? ? ???? ?ㄝ???? ???? ??? ? ? ??? ? ???? ? ? ?? ㄝ ?? ? ??? ? ?? ? (control)???Mointer) ??(Managemet)ㄝ ?? 1.1.2 ? ?????? ? ? 1.1. 2.1 ? ?? ? ?? ??4?? ? 1? ? ? ? ?? ? ? ???Ё ????? ???? ?? ? ? ?? ?2? ? ??? ?? ?????? ? ????? ??? П? ??? ??????? ? ?? ???? ? 3? ? ? ? ????? ?? ? 催 ? ? ? 4? ? 乏 ? ?? ?? ? ? ? ??? ? ? Ё??∴??? ?? ?? ?? ? mW??uW??1.1.2.2 ? ???? ???? ?? ?? ? ? ?? ? ??? ?? ? ? ? ? ???1000 ??????? 30 ?? ?

照相物镜基于ZEMAX课程分析方案实例

应用光学课程设计 课题名称:照相物镜镜头设计与像差分析 专业班级:2009级光通信技术 学生学号: 学生姓名: 学生成绩: 指导教师: 课题工作时间:2018.6.20至2018.7.1

武汉工程大学教务处

课程设计摘要<中文) 在光学工程软件ZEMAX 的辅助下, 配套采用大小为1/2.5 英寸的CCD 图像传感器,设计了一组焦距f '= 12mm的照相物镜, 镜头视场角 33.32°, 相对孔径D/f’=2. 8, 半像高3.6 mm ,后工作距 9.880mm,镜头总长为14.360mm。使用后置光阑三片物镜结构,其中第六面采用非球面塑料,其余面采用标准球面玻璃。 该组透镜在可见光波段设计,在Y-field上的真值高度选取0、1.08、1.8、2.5452,总畸变不超过0.46%,在所选视场内MTF轴上超过60%@100lp/mm,轴外超过48%@100lp/mm,整个系统球差-0.000226,慧差-0.003843,像散0.000332。完全满足 设计要求。 关键词:ZEMAX;物镜;调制传递函数 ABSTRACT By the aid of optical engineering software ZEMAX,A focal length f '= 12mm camera lens matched with one CCD of 1/2.5 inch was designed。Whose FOV is 33.32°, Aperture is 2. 8,half image height is 3.6 mm,back working distance is9.880mm and total length is 14.360 mm. Using the rear aperture three-lens structure,a aspherical plastic was used for the sixth lens while standard Sphere glasses were used for the rest lenses。The group Objective lenses Designed for the visible light,Heights in the true value as Y-field Defined as 0、1.08、1.8、2.5452,total distortion is less than 0.41%,Modulation transfer function of shade in the selected field of view to meet the axis is greater than 60% @ 100 lp / mm, outer axis than 48% @ 100 lp / mm,The sum of the whole system spherical aberration -0.000226,Coma is -0.003843,Astigmatism is 0.000332。Fully meet the design requirements. Keyword:ZEMAX;Camera lens;Modulation transfer function 引言----

最新Python web开发视频教程从入门到精通

最新Python web开发视频教程从入门到精通想学Python web开发?想成为Python web开发工程师?想进入Python行业拿高薪?但还没入行?别急,先看看Python web开发视频教程。 千锋Python基础教程:https://www.wendangku.net/doc/f84651840.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.wendangku.net/doc/f84651840.html,/s/1hrXwY8k Python课程windows知识点:https://www.wendangku.net/doc/f84651840.html,/s/1kVcaH3x Python课程linux知识点:https://www.wendangku.net/doc/f84651840.html,/s/1i4VZh5b Python课程web知识点:https://www.wendangku.net/doc/f84651840.html,/s/1jIMdU2i Python课程机器学习:https://www.wendangku.net/doc/f84651840.html,/s/1o8qNB8Q Python课程-树莓派设备:https://www.wendangku.net/doc/f84651840.html,/s/1slFee2T 以上是千锋现有的Python web开发视频教程,一起看看千锋Python web开发培训都有哪些内容吧。 千锋Python培训的主要学习内容包括三大模块,十大部分:

一、Python初级开发工程师 1.python语言基础(可以python基础语法入门和项目实践); 2.python语言高级(能够利用python进行一般的数据处理和爬虫); 3.python全栈工程师前端(掌握常用的前端技术); 4.python全栈工程师后端(学会企业级后端框架Django,并可完成大型网站构建); 二、Python高级开发工程师 5.python全栈工程师后端高级(目标是掌握两种轻量级和实时后端框架Flask和Tornado,完成两个实际项目); 6.Linux基础(懂得Linux常用命令和shell开发技术); 7.Linux运维自动化开发(清楚Linux运维自动化开发原理,并完成相应项目实践); 三、Python大神级数据分析师 8.python数据分析(学会python数据分析与可视化,了解数据统计和进入数据分析的原理,完成相应项目); 9.python大数据(掌握python大数据的原理和实践);

浅谈Tornado2.2下程序调试

浅谈Tornado2.2下程序调试 “调试一段程序的难度是写出这段程序的难度的两倍,因此,如果你的代码尽可能清楚,那么你就不用费力的调试它”-- Brian W. Kernighan “有时周一宁愿休息而不是花一周余下的时间调试周一的代码” -- Christopher Thompson ….. ….. 调试对于软件的成败至关重要,正确使用恰当的调试工具可以提高发现和改正错误的效率。 一、调试前的准备工作 1、保证目标机跟主机能网络正常通信。如果tornado是装在虚拟机中,则要保 证虚拟机跟目标机能网络通信。用ping xx.xx.xx.xx –l 1500命令。之所以后面要加-l 1500是为了保证最大包也能ping通,如果不加-l 则为ARP包,ARP包只有64个字节。在网络通信中会出现小包能ping通,大包ping不通的情况。 2、保证WDB为Ready状态 图1 如果WDB为unReady状态,很可能是WDB的组件没有加。 二、配置Target Server Target Server是Tornado集成交叉开发环境中最重要的工具。这个工具负责主机与目标机的连接,为其他的工具使用提供通信桥梁。 点击”Tools->Targer Server->configure”。出现如下图2所示:

图2 Target server配置界面 配置界面中Targer Server要填入主机的IP地址,Targer Server PropertiesBack End(后端)默认选择wdbrpc ,它是最常用的连接类型,其支持任意种IP连接(如以太网)。Target Name/Ip Address需要填入目标机的IP地址。主机和目标机的IP地址可以在bootrom起来后看到,如图3所示。 图3 bootrom启动打印 Targer Server Properties 之Core File and Symbols,在File选项中选择主机vxworks镜像的路径,如图4所示。

NOCSIM实验教程

NoCsim 使用手册 1、如何开始 1.1 生成可执行文件 如果使用Cygwin程序(Cygwin中已安装gcc组件),假设模拟器src目录路径为C:/NoCsim/src/,则在命令提示符中输入cd /cygdrive/C/NoCsim/src,切换当前工作目录到src目录。 如果使用虚拟机或者直接在linux环境下,则类似进入src文件后,进行编译即可。要求已安装gcc组件。 输入make,对NoCsim进行编译,生成可执行文件NoCsim.exe。 1.2 模拟 假设src目录下当前存在一个配置文件mesh88,则开始模拟命令为:./NoCsim.exe mesh88。 2、配置文件介绍 部分常用配置参数包括: topology: mesh,表示mesh拓扑结构网络; k:任意正整数值,表示 mesh结构网络每一维上的router数目; n:任意正整数值,表示mesh结构网络的维数; routing_function:当前支持取值:single_single,该路由算法用于评估allocator的性能;dim_order_mesh,表示mesh网络上的DOR路由算法;valiant_mesh,表示mesh结构上的Valiant路由算法; num_vcs:任意正整数值,表示每个input port上的input VC条数; vc_buf_size:任意正整数值,表示每条input VC中的buffer单元数; input_speedup:表示在crossbar上是否提供input speedup; routing_delay:表示路由器的路由计算延迟,将其值设为0,可以模拟look-aheading routing算法的性能; vc_alloc_delay:表示路由器进行VC allocation所需延迟; sw_alloc_delay:表示路由器进行switch allocation所需延迟; st_final_delay:表示路由器进行Switch traversal所需延迟。一般而言,上述4个延迟参数都置为1; vc_allocator:VC allocator类型,当前只支持wavefront allocator; sw_allocator:Switch allocator类型,当前只支持wavefront allocator; traffic:traffic pattern类型,当前支持uniform、bitcomp和tornado三种traffic patterns; const_flits_per_packet:每个packet所包含的flit数目;

ZEMAX实验指导书(初学的练习教程)

实验一光学设计软件ZEMAX的安装和基本操作 一、实验目的 学习ZEMAX软件的安装过程,熟悉ZEMAX软件界面的组成及基本使用方法。 二、实验要求 1、掌握ZEMAX软件的安装、启动与退出的方法。 2、掌握ZEMAX软件的用户界面。 3、掌握ZEMAX软件的基本使用方法。 4、学会使用ZEMAX的帮助系统。 三、实验内容 1.通过桌面快捷图标或“开始—程序”菜单运行ZEMAX,熟悉ZEMAX的初始用户界面,如下图所示: 图:ZEMAX用户界面 2.浏览各个菜单项的内容,熟悉各常用功能、操作所在菜单,了解各常用菜单的作用。 3.学会从主菜单的编辑菜单下调出各种常见编辑窗口。 4.调用ZEMAX自带的例子(根目录下Samples文件夹),学会打开常用的分析功能项:草图(2D草图、3D草图、实体模型、渲染模型等)、特性曲线(像差曲线、光程差曲线)、

点列图、调制传递函数等,学会由这些图进行简单的成像质量分析。 5.从主菜单中调用优化工具,简单掌握优化工具界面中的参量。 6.掌握镜头数据编辑窗口的作用以及窗口中各个行列代表的意思。 7.从主菜单-报告下形成各种形式的报告。 8.通过主菜单-帮助下的操作手册调用帮助文件,学会查找相关帮助信息。 四、实验仪器 PC机

实验二基于ZEMAX的简单透镜的优化设计 一.实验目的 学会用ZEMAX对简单单透镜和双透镜进行设计优化。 二.实验要求 1.掌握新建透镜、插入新透镜的方法; 2.学会输入波长和镜片数据; 3.学会生成光线像差(ray aberration)特性曲线、光程差(OPD)曲线和点列图(Spot diagram)、产生图层和视场曲率图; 4.学会确定镜片厚度求解方法和变量,学会定义边缘厚度解和视场角,进行简单的优 化。 三.实验内容 (一). 用BK7玻璃设计一个焦距为100mm的F/4单透镜,要求在轴上可见光范围内。 1. 打开ZEMAX软件,点击新建,以抹去打开时默认显示的上一个设计结果,同时新建一个新的空白透镜。 2. 在主菜单-系统-光波长弹出的对话框中输入3个覆盖可见光波段的波长,设定主波长。同样在系统-通用配置里设置入瞳直径值。 3. 在光阑面的Glass列里输入BK7作为指定单透镜的材料,并在像平面前插入一个新的面作为单透镜的出射面。 4. 输入相关各镜面的厚度和曲率半径。 5. 生成光线像差特性曲线、2D、3D图层曲线和实体模型、渲染模型等分析图来观察此时的成像质量。 6. 利用Solve功能来求解镜片厚度,更新后观察各分析图的相应变化。 7. 利用主菜单-工具-优化-优化来对设计进行优化,更新后观察各分析图的相应变化。 8. 调用并建构优化函数(Merit Function),在优化后更新全部内容,然后观察各分析图的相应变化。 9. 分别调用点列图、OPD图以及焦点色位移图(主菜单-分析-杂项)来观察最优化后的成像质量。 10. 将此设计起名保存,生成报告。 (二). 以前一个实验内容设计优化后的单透镜为基础,添加一块材料为SF1玻璃的透镜来构建双透镜系统,进一步优化成像质量。 1. 插入新的平面作为第二块透镜的出射面,输入相关镜面的厚度、曲率半径以及玻璃类型值(BK7、SF1)。 2. 生成光线像差特性曲线、2D、3D图层曲线和实体模型、渲染模型等分析图来观察此时的成像质量。 3. 沿用前例的优化函数,在优化更新后观察各分析图的相应变化,并分别对比单透镜时的点列图、OPD图以及焦点色位移图(主菜单-分析-杂项)的相应变化,观察双透镜此时的成像质量。 4. 利用利用Solve功能来求解镜片边缘厚度,更新后更新后观察各分析图的相应变化。

Python基础教程视频全集下载

Python基础教程视频全集下载 现在大数据,量化分析,科学技术,人工智能,游戏很多方面都用到Python,目前国内Python人才需求量上升非常快,薪资也水涨船高。也有同学考虑找些Python基础教程视频进行学习,请看以下链接: 千锋Python基础教程:https://www.wendangku.net/doc/f84651840.html,/s/1qYTZiNE Python课程教学高手晋级视频总目录: https://www.wendangku.net/doc/f84651840.html,/s/1hrXwY8k Python课程windows知识点:https://www.wendangku.net/doc/f84651840.html,/s/1kVcaH3x Python课程linux知识点:https://www.wendangku.net/doc/f84651840.html,/s/1i4VZh5b Python课程web知识点:https://www.wendangku.net/doc/f84651840.html,/s/1jIMdU2i Python课程机器学习:https://www.wendangku.net/doc/f84651840.html,/s/1o8qNB8Q Python课程-树莓派设备:https://www.wendangku.net/doc/f84651840.html,/s/1slFee2T

以上是千锋Python视频全集,希望对你有帮助。如果你对于千锋Python 培训的内容感兴趣,请继续阅读。 千锋Python培训的主要学习内容包括三大模块,十大部分: 一、Python初级开发工程师 1.python语言基础(可以python基础语法入门和项目实践); 2.python语言高级(能够利用python进行一般的数据处理和爬虫); 3.python全栈工程师前端(掌握常用的前端技术); 4.python全栈工程师后端(学会企业级后端框架Django,并可完成大型网站构建); 二、Python高级开发工程师 5.python全栈工程师后端高级(目标是掌握两种轻量级和实时后端框架Flask和Tornado,完成两个实际项目); 6.Linux基础(懂得Linux常用命令和shell开发技术); 7.Linux运维自动化开发(清楚Linux运维自动化开发原理,并完成相应项目实践); 三、Python大神级数据分析师 8.python数据分析(学会python数据分析与可视化,了解数据统计和进入数据分析的原理,完成相应项目);

1807中文说明书简易操作手册

1807中文说明书简易操作手册 1:在主机安装完毕后,按住(PWR)键三秒开机,完成后,在显示VFO(430.000)的情况下可以进行你需要的任何一项操作。 2:设置手动自动下差:在显示VFO的模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋纽到第四项菜单(ARS),轻按(MHZ SET)键进入第四项主菜单选择开关手动自动下差(ON/OFF),设置完毕后轻按(MHZ SET)键退出菜单。 3:设置差频:在显示VFO模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋纽到第43项(RPT)菜单,轻按(MHZ SET)键进入此项菜单设置上下差频(-RPT,+RPT,OFF) 4:设置差频数值:在显示VFO模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋纽到第46项(SHIFL)菜单,轻按(MHZ SET)键进入此项菜单后(7.6MHZ)设置差频值,机器默认数值为7.6MHZ,旋动(DIAL)旋纽设置你需要的差频值,设置完毕后轻按(MHZ SET)键推出主菜单。 5:设置亚音编码:在显示VFO模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋纽到第49项(SQLTYP)菜单,轻按(MHZ SET)键进入此项菜单设置你需要的编码,一般选择(TONE)编码(TONE/TSQL/DCS/RVTN/OFF) 6:设置亚音数值:在显示VFO模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋纽到第52项()菜单,轻按(MHZ SET)键进入此项菜单后(100MHZ)设置亚音,旋动(DIAL)旋纽进行设置你需要的亚音值。 7:储存频道:在显示VFO的模式下,用手咪输入你想要的频点,然后按住(MW D/MR)键,直至屏幕右下角出现数字(0),如果此数字一直在闪烁,表示此频道为空,然后旋动(DIAL)纽选择频道号码,选定后轻按(MW D/RW)键,完成频道存储。 8:频道模式与频率模式的转换:按(MW D/MR)可以进行转换。 9:发射功率调节:轻按(A/N LOW)键,发射功率分别是LOW1(5W),LOW2(10W),LOW3(25W),LOW4(50W)之间顺序转换。 10:机器复位操作:同时按住(REW)(LOW)(D/MR)键,开机,然后按(D/RW)键,机器将恢复到出厂的设置。 11:自动关机设置:在显示VFO的模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋纽到第1项(APO)菜单,轻按(MHZ SET)键进入第一项主菜单选择(30MIN,1H,3H,5H,8H)关机时间。 2:屏幕亮度调节:在显示VFO的模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋纽到第16项(DIMMER)菜单,轻按(MHZ SET)键进入主菜单选择(OFF,1-10)屏幕亮度。然后轻按(MHZ SET)退出菜单。 13:键盘锁定:在显示VFO的模式下按住(MHZ SET)键三秒进入主菜单,旋动(DIAL)旋

用 MATLAB 连结 Zemax OpticStudio 之一:连线与基本操作

摘要:此系列文章共有三篇。 第一篇中,我們會示範如何利用MATLAB連結ZOS-API,並說明相關操作重點。 第二篇中,我們會重點提示撰寫時,幾個常見語法問題。 第三篇中,我們提供幾個有用的範例檔,說明幾個常見應用如何撰寫。 作者:Michael Cheng 發布時間:March 13, 2017 簡介 關於ZOS-API本身,請參考知識庫內另一篇「https://www.wendangku.net/doc/f84651840.html,簡介」。 MATLAB在透過ZOS-API連結OpticStudio時,主要有兩種模式:Standalone (獨立運作) 以及Interactive Extension (互動擴展)。 使用Standalone模式運作時,MATLAB會以背景模式連結到OpticStudio,然後所有動作都在Windows背後進行,過程中不會看到OpticStudio主視窗開啟。 反之,使用Interactive Extension模式運作時,必須先開啟OpticStudio,然後使用者需要先在OpticStudio開放連結,讓MATLAB能夠順利接入並控制,控制過程中OpticStudio不能手動操作,直到使用者手動在OpticStudio取消互動模式,取回控制權。 以下將分別說明如何用兩種不同模式連線。 使用Standalone模式連線 首先是到OpticStudio中點選Programming > MATLAB > Standalone Application,以產生樣板程式碼。 Click To Enlarge 點擊後,可以看到系統會自動建立一個範例的.m檔,並且打開存放的資料夾,如果電腦中有安裝MATLAB,則會自動被開啟,並顯示範例的.m檔。

TORNADO环境下的命令行编译文件

Tornado环境下的命令行编译文件 Table of contents目录 T ABLE OF CONTENTS目录 (1) 1TORNADO及其编译工具简介 (2) 2两种编译工具下的C/C++文件编译 (4) 2.1GNU T OOL的编译 (4) 2.2D IAB T OOL的编译 (5) 3MAKEFILE的编译 (6) 3.1特殊变量的定义(以DCN DS45XX项目为例) (6) 3.2MAKEFILE.LOCAL的建立 (7) 3.3命令实现 (8) 4REFERENCE DOCUMENTS参考文献 (9)

1Tornado及其编译工具简介 Tornado是嵌入式实时领域里最新一代的开发调试环境。Tornado给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境。Tornado 包含三个高度集成的部分: ·运行在主机和目标机上的强有力的交叉开发工具和实用程序; ·运行在目标机上的高性能、可裁剪的实时操作系统VxWorks; ·连接主机和目标机的多种通讯方式,如:以太网,串口线,ICE或ROM 仿真器等。 对于不同的目标机,Tornado给开发者提供一个一致的图形接口和人机界面,如图1-1所示。 图1-1 当使用Tornado的开发人员转向新的目标机时,不必再花费时间学习或适应新的工具;对深嵌入式应用开发者来说更重要的是,Tornado所有的工具都是驻留在开发平台上的。在嵌入式系统工具发展历史上,Tornado是第一个实现了当目标机资源有限时开发工具仍可使用而且功能齐全的开发环境。另外,所有工具都通过一个中央服务器(Target Server)与目标机的通讯,因此无论连结方式是Ethernet,还是串口线、ICE仿真器、ROM仿真器或客户设计的调试通道,所有工具均可使用。 Tornado提供了一套完整的GNU Tool开发工具链,其中包括: ·CPP:C预处理

vxworks培训教程(10)

Wind River Systems Tornado Training Workshop ? Copyright Wind River Systems 10-1Chapter 10 Exceptions, Interrupts,and Timers Exception Handling and Signals Interrupt Service Routines System Clock, Auxiliary Clock, Watchdog Timers

Wind River Systems Tornado Training Workshop ? Copyright Wind River Systems 10-2Exceptions, Interrupts, and Timers 10.1Exception Handling and Signals Interrupt Service Routines Timers Exception handling Using signals Installing user-de?ned signal handler

Wind River Systems Tornado Training Workshop ? Copyright Wind River Systems 10-3Exception Handling Overview ?An exception is an unplanned event generated by the CPU. Examples include: trap or breakpoint instruction, divide by zero, ?oating point or integer over?ow, illegal instruction, or address error. ?An exception will generate an “internal” interrupt. ?VxWorks installs exception handlers at system startup.These handlers will run on an exception and will try to invoke a user-de?ned exception handler. ? A VxWorks exception handler communicates with a user tasks by sending a signal. The user-installed handler will then run. ?Exceptions vary across CPU architectures. The help page for excLib contains information about generic exception handling, while the page for excArchLib discusses architecture-speci?c routines.

ZEMAX的基础学习

zemax的基础学习 MTF一般都是大于0的,所以MTF曲线坐标都是第一期限。但有时候也会出现负值,这种情况表示像的亮度起伏与原物体相反,发生对比反转,也就是相位错动了半个周期,黑的变白,白的变黑。 如何查看高斯光束的光斑大小及能量分布在physical analysis>>pop setting>>display中可以看 中文的翻译是:image space f# 表示的是有效焦距和有效孔径的比paraxial working f# 表示的是2tanU的倒数,其实只有在物距在无限远的时候才和前边的一样working f# 表示的是2SinU的倒数。 主光线是在stop光阑中心点的斜线角度。物上视场点-入瞳中心-像面的光线,如果没有渐晕,它也会通过光栏的中心, 放大镜只能放大线性的东西”这种结论。 我今天突然在ZEMAX中发现我如果做短焦的时候,比如f=2.8,看到lens data editor中相面的尺寸小于在Report/prrscription data/paraxial Image Heigh 中的象高??请问有谁知道这个是如何产生的,为什么有这种现象☆这有什么奇怪的,难道你的系统没有畸变吗是啊,好象一个是像面上的实际像高,一个是近轴(理想)像高畸变是有正负的呀我知道了,那lens data editor中相面的尺寸是实际通光孔径,而Report/prrscription data/paraxial Image Heigh 只是理想象高,所以我觉得设计时应该以lens data editor中相面的尺寸为准,大家说对吗?错,一个点通过系统之后不可能还是一个点,是一个有大小的斑,从lens data editor中看到的数据只是最大像高的数值,不能代表实际成像的大小。在设计的时候多考虑,软件是工具而已。那斑竹说实际的相面尺寸应该看哪里啊,看你成像点的扩散程度由于像差的原因,实际最佳像面上每一像点(斑)大小都不一致,由于轴外(垂轴)像差的关系lens data editor中的尺寸一般系统应该够了。 傅立叶变换透镜的4F系统的两个镜头的像质应该如何评价?是以单独的镜头为准还是合成的串联系统呢?☆可以以单独的镜头分析,两个的分析分别要在频域和时域进行但是最总的系统是否符合你的要求就一定要以整个系统为分析的对象了。 zemax中的ray fan和spot diagram的含义【标题】 zemax中的ray fan和spot diagram的含义 【版权声明】 欢迎相互传阅和交流!请将此文用于非盈利的技术交流;不可显性或隐形用于商业目的。欢迎对文中内容进行批评指正和修改。但修改后内容仍需保留版权声明部分并能免费用于技术交流。zhangxi@https://www.wendangku.net/doc/f84651840.html, 【正文】 ray fan 在zemax中有一个重要的分析手段,就是显示ray fan图。显示ray fan可以通过多种方式,比如菜单analysis-fans-ray aberration显示;也可以通过直接点击在菜单栏目上的Ray按钮。 ray fan表示是光学系统的综合误差。 它的横坐标是光学系统的入瞳标量,因此总是从-1到+1之间。显然0的位置对应就是光轴在入瞳中心的焦点。纵坐标则是针对主光线(发光点直穿光阑中心点的那条光线)在像面上的位置的相对数值。 由于我们在计算光路的时候,通常仅仅考虑两类光线,子午面和弧矢面。这样对于不同的面,就有两种不同rayfan显示。

ZEMAX中文使用说明书

目录 第1章引言 第2章用户界面 第3章约定和定义 第4章 教程 教程1:单透镜 教程2:双透镜 教程3:牛顿望远镜 教程4:带有非球面矫正器的施密特—卡塞格林系统 教程5:多重结构配置的激光束扩大器 教程6:折叠反射镜面和坐标断点 教程7:消色差单透镜 第5章 文件菜单 (7) 第6章 编辑菜单 (14) 第7章 系统菜单 (31) 第8章 分析菜单 (44) §8.1 导言 (44) §8.2 外形图 (44) §8.3 特性曲线 (51) §8.4 点列图 (54) §8.5 调制传递函数MTF (58) §8.5.1 调制传递函数 (58) §8.5.2 离焦的MTF (60) §8.5.3 MTF曲面 (60) §8.5.4 MTF和视场的关系 (61) §8.5.5 几何传递函数 (62) §8.5.6 离焦的MTF (63) §8.6 点扩散函数(PSF) (64) §8.6.1 FFT点扩散函数 (64)

§8.6.2 惠更斯点扩散函数 (67) §8.6.3 用FFT计算PSF横截面 (69) §8.7 波前 (70) §8.7.1 波前图 (70) §8.7.2 干涉图 (71) §8.8 均方根 (72) §8.8.1 作为视场函数的均方根 (72) §8.8.2 作为波长函数的RMS (73) §8.8.3 作为离焦量函数的均方根 (74) §8.9 包围圆能量 (75) §8.9.1 衍射法 (75) §8.9.2 几何法 (76) §8.9.3 线性/边缘响应 (77) §8.10 照度 (78) §8.10.1 相对照度 (78) §8.10.2 渐晕图 (79) §8.10.3 XY方向照度分布 (80) §8.10.4 二维面照度 (82) §8.11 像分析 (82) §8.11.1 几何像分析 (82) §8.11.2 衍射像分析 (87) §8.12 其他 (91) §8.12.1 场曲和畸变 (91) §8.12.2 网格畸变 (94) §8.12.3 光线痕迹图 (96) §8.12.4 万用图表 (97) §8.12.5 纵向像差 (98) §8.12.6 横向色差 (99) §8.12.7 Y-Y bar图 (99) §8.12.8 焦点色位移 (100) §8.12.9 色散图 (100) §波长和内透过率的关系 (101) §玻璃图 (101) §系统总结图 (101)

tornado调试工具介绍

T ornado调试工具介绍 网络上海软件开发二部 crossWind (tornado debugger) 重要的设置步骤: 1、配置tools->target server->config a、在target name/ip address中输入目标板子的ip地址。 b、在back end 处选上wdprpc,如果网络不好,可以在timeout中输入2s c、在core file and symbols的文件中选上需要调试的vxWorks或vxWorks.st d、memory cache Size 设置为10000。 e、这样就可以启动这个target server了 2、Debug->Source search path 中加上你要调试的原代码的路径。 典型故障: 1、PING目标机也通,想调试程序,但target server 启不来,现象如下: Connecting to target agent... Error: rpccore backend client Unable to receive failed. 解决:检查target server 的配置,其中Core file应选为下载的vxworsk image。假设target server 的配置是正确的,那么就检查Tornado中对vxworks的配置,选择wdb connection为end 方式。 2、启动target server后,出现 Warning: Target checksum: 0xa7fc (computed from 0x108340 to 0x2170d0). Host checksum: 0xa8fd (computed from 0x1830380 to 0x193f110). Warning: Core file checksums do not match. 解决:下载的VxWorks核和target server路径下的文件不是同一个文件,有可能是因为重新编译了VxWorks(即使不修改任何内容,两次编译的结果仍然会不同)。 3、启动target server后,出现 Warning: Target server cache for agent memory is full. Use the '-m' option to increase the target server cache. 解决:target Server的Memory cache size默认为1M,适当加大。 常用功能: breakPoint:设置断点,当任务执行到本断点后会stop,前提是我们设置了auto attach to task,在没有设置此选项的情况下,必须手工attach 到某一任务。有全局断点和任务断点

相关文档
相关文档 最新文档