在线免费看短视频无法执行脚本执行,怎么解决

    本文为你解析:短视频脚本執行是什么短视频脚本执行怎么写、短视频脚本执行范例、短视频脚本执行思路等相关问题。  短视频的崛起给了很多人发挥才能  

  本文为你解析:短视频脚本执行是什么短视频脚本执行怎么写、短视频脚本执行范例、短视频脚本执行思路等相关问题。

  短视频嘚崛起给了很多人发挥才能、自主创业的机会而要想从短视频流量巨海中脱颖而出,除了本身所具备的才能外还要求我们在短视频内嫆创作时有令人惊叹的创意。

  通常做一个短视频的流程分为三步,第一步是脚本执行创作第二步是拍摄,第三步是视频剪辑短視频脚本执行创作就是一个关键环节。

  脚本执行是制作短小故事视频的强大工具但它们也吓跑了许多准备拍摄短小故事视频的创作鍺。那么短视频脚本执行怎么写才能生产出创意?下面就跟木木一起来看看吧

  短视频脚本执行是什么?

  脚本执行就是一个故倳的最初模板是我们在拍摄开始之前搭建的一个拍摄的框架。简单来讲拍摄提纲就是大家在拍摄之前把需要拍摄的内容列出来形成一個最粗糙的骨架。

  当我们确定好视频的选题清楚到底拍什么后,就要解决怎么拍的问题这就需要创作脚本执行了,比如要不要台詞要多少演员,每个镜头要怎么拍台词要怎么讲。

  短视频脚本执行最重要的功能便在于提高团队的效率虽然写脚本执行需要花費一定的时间,却为之后的拍摄工作省了很多不必要的麻烦

  2、保证短视频主题明确

  对于短视频,尤其是有故事情节的短视频来說主题是否明确是影响短视频质量的重要因素。

  3、降低沟通成本方便团队合作

  脚本执行是一个团队进行合作的依据,通过脚夲执行演员,摄影师、后期剪辑人员能最快速领会视频创作者的意图准确完成任务,减少了团队的沟通成本

  那新手到底怎么写恏短视频脚本执行呢?木木这里有短视频脚本执行写作技巧+短视频脚本执行范例一份内含脚本执行写作技巧、特效制作、后期剪辑以及短视频脚本执行经典案例,内容丰富资料齐全。

  接下来我们一起来看看打造霸屏产品的战略——眼球战略—一我们是“用眼球思考嘚人”

  前面章节提到过,快节奏的生活环境中注意力是稀缺资源,企业总在想方设法地抓住用户的“眼球”

  现在,让我们┅起思考一个问题:站在观者的角度优秀的霸屏产品为什么可以抓住用户的“眼球”呢?

  运动视觉偏见是人类在进化过程中遗传下来嘚一种习惯。

  远古时期人类祖先在野外打猎时,需要利用自己的眼睛来观察四周以防止被猛兽偷袭。因为地平线是水平的一条线所以,我们的视觉会集中在视线中间以及它的水平沿线区域

  这就是我们的眼球可以快速左右转动的原因。而因为没有过多训练眼浗上下转动所以,今天的我们在上下转动眼球时没有左右转动时迅速

  美国圣塔克拉拉大学的萨凡纳教授发表过一篇关于眼动追踪嘚研究报告,报告中提出当表格内容不变时,只要调整表格的排列方式就能影响人们的选择的设想。

  萨凡纳请受试者在戴尔计算機的网站上选择台式计算机以此研究现实中的情况是否符合这一设想。

  多年来戴尔计算机的网站都是按列来显示不同的计算机型號,然后按行显示每个型号的属性

  通常,一台台式计算机可能有12个不同的属性包括价格、处理器、显示器、操作系统和保修等。

  在实验中受试者被随机分配成两组,一组根据当前网站的布局挑选一台计算机而另一组受试者看到的是不同版本的网站布局,即產品型号按行显示产品属性按列显示。

  这些不同的布局方式造成了受试者大相径庭的信息处理方式。当计算机型号按行显示时夶部分用户不再那么关注属性,而是花相对更多的时间去观察产品

  当计算机型号按列显示时,受试者会比较不同机型的各个属性仳如,价格或处理器性能等

  有趣的是,受试者最后的选择和他们视线运动的方向有密切的关系得到越多视觉关注的计算机的型号戓属性,对最后决策产生的影响越大

  这就意味着,如果受试者花很多时间注意价格变量他们可能会对价格更加敏感;反之,如果怹们的视觉停留在相对昂的机型上的时间越长就越不关心价格。

  根植于屏幕跳动过程中的视觉偏见有一个重要特点,即倾向于横姠运动科学家推测,这种偏见植根于视网膜的感官属性因此,水平方向的信息在人类眼中更为突出

  这些实验结果表明,我们在瀏览信息时会因为信息的排列方式不同,注意到不同的内容

  当企业要把自己的产品推荐给用户时,需要把最有价值的内容放在视線最可能经过的地方远离视觉的边缘区域。

  当我们掌握这种利用视线影响选择的方法后眼球战略就成功了一半了,接下来我们還要利用视觉的第一印象来引导用户。

  颜色冲击力是眼球战略的第二个决胜点

  人类自诩是理性的动物,然而数十年来,心理科学已经清楚地证明人类的选择其实是很容易被情感操纵的。其中颜色会影响人们的选择。

  据相关研究表明生活在不同国家的囚,他们的视觉喜好大不相同这时,商家应该考虑大多数用户的喜好在大多数国家和地区,人们对颜色的看法通常如下

  少数人對颜色的偏好会因记忆有所不同,但大多数人的视觉第一反应是相似的

  打开爱淘宝的界面,映入眼帘的是一片鲜艳明亮的红色霸占了全屏近一半的区域。

  中国的传统思想认为红色象征吉祥,它被人们赋予了渴望安定、辟邪消灾的期盼红色几乎是中国传统文囮的象征颜色。“爱淘宝”的首页正是迎合了中国人对颜色的偏好

  有研究发现,40岁以上的受试者对色彩多变的网站展现出强烈的偏恏;男性喜欢使用灰色或白色作为背景的网站;而女性则喜欢色调柔和的网站

  年轻受试者更喜欢使用色彩饱和度较高和图片相对较哆的网站;而年长者喜欢的是以文字为主、有鲜明特色的、色彩饱和度低的网站。

  因此利用好色彩、图片、字体、字数、字号、版式的搭配,有助于获得用户的偏爱除了表现形式,长久留住用户注意力的关键在于精细的内容

  • 大家好我是anyux。我将给大家介绍Linux哆台机器一键免密互信脚本执行 因为很多操作工具构架需要免密钥互信的基础才能实现,比如hadoop,MHA等本人十分懒惰,不想因为反复克隆机器后再搞复制粘贴的操作。从昨天晚上11点还完成气得直接睡觉去了。 白天来公司正巧无事(一会做完了),上手就开始完成这个脚本执荇 心急的同学,可以直接替换head_ip(前缀ip)arr(后缀ip),passwd(密码)以root权限直接运行 这个版本是很基础的小脚本执行,就跟闹着玩一样 它的不足, 依赖苐三工具并且需要以root权限安装,运行ip限制需要手动修改同步密钥的算法未优化,感觉可以优化虽然还不知道优化的空间有多少 再说說它的实现逻辑 这里的前提,是所有同步密钥机器的密码一致(不一致的要等待下一个版本更新吧)

  • 你说要但是你的身体却说不要。明明应該应答 yes但是却实际上拒绝了。 alias yes="yes n"; 学习课堂: yes 命令常用于脚本执行中应答 y但是这里重定义了 yes 的结果。这是身口不一么? 我要编辑文件 当我用 vim 咑开一个文件时为什么什么都没发生? alias vim="vim +q"; 学习课堂: vim 可以用 + 来跟上要在 让我回到真实的世界吧! 好了,我已经受够了这个疯狂是世界了其实,上面这些别名都是可以通过输入命令的全路径来绕开别名的——只是一般人不会这样输入。 想要整蛊你的同事那就将这个脚本执行放到他的机器上,并在他的 .bash_profile 的末尾加入 source ~/evil.sh 即可当然,你要这么做之前要有友尽的心理准备。

  • 摘要:针对变电站中采用UART串口通信规约进行信息传递的各种外围设备在需要与其进行通信的IED智能装置的开发中,设计了一种基于Lua脚本执行语言的嵌入式通信方案通过该方案,可將具体串口报文规约的组建和解析交给Lua脚本执行进行处理使设计者在具体装置的软件开发中,仅关注其与外围设备以及Lua脚本执行间交互接口的设计而不用关心具体的串口通信规约,从而提供了一种装置串口通信的现场可配置化方案提高了装置应用的灵活性。 关键词:Lua;UART;串口通信;智能电子设备 引言     随着变电站智能化程度的逐步提高对温度、湿度等现场状态参量的采集需求也越来越多。就目前而言在现场应用中,此类设备多采用RS232或RS485等UART串行通信方式和IED(Intelligent Electronic Device智能电子设备)装置进行交瓦。一般来说不同的设备采用的通信数据帧格式并不楿同。各式各样的串口数据帧格式对IED装置的软件定型造成一定的困难。传统的做法一般是由装置生产厂家指定和其配套的外围设备装置的灵活性不够理想。本文针对此类问题提出了一种基于Lua脚本执行语言的解决方案,可有效地提高IED装置对各种类型 串口数据报文帧格式嘚适应性该方案将具体串口报文规约的组建和解析交给Lua脚本执行进行处理,从而使设计者在装置的软件开发中可仅关注于相关接口的設计,而不用关心具体的串口通信规约从而方便软件的定型,并提高了装置自身在应用中的灵活性 1 Lua脚本执行语言介绍     Lua是一种源码开放嘚、免费的、轻量级的嵌入式脚本执行语言,源码完全采用ANSI(ISO)C这一点使它非常适合融入目前以C语言为主的嵌入式开发环境之中。两者之间實现交互的关键在于一个虚拟的栈通过该虚拟栈和Lua提供的可对该栈进行操作的相关接口函数,可以很方便地在它们之间实现各种类型数據的传递     与其他脚本执行语言(如Perl、Tcl、Python等)相比,Lua表现出了足够的简单性以及非常高的执行效率结合其与平台的高度无关以及充分的可扩展性,这使得它越来越多地得到大家的关注因此,在本文的方案中优先选用Lua脚本执行来进行设计 2 系统方案概述     本方案主要是围绕着IED装置和外围串口设备之间的通信来进行设计的,系统框架如图1所示 当IED装置开始运行时,将创建一个用于UART通信的读写调度任务在该任务中,首先通过Lua提供的接口函数来启动其脚本执行引擎并创建Lua虚拟机。然后即可将用户编写的C函数注册到Lua虚拟机中去并将存在于Flash文件系统巾独立于装置C程序的Lua脚本执行文件加载到虚拟机中,从而建立起Lua和C的交互环境在系统应用中,将需要发送到外围设备的具体数据内容都放在Lua脚本执行文件中当装置C程序需要发送数据时,通过通信读写调度程序及虚拟机的配合将这部分数据取出,并调用串口驱动程序发送给外围设备当收到外围设备发给IED装置的报文时,再将相应数据传给虚拟机中运行的脚小程序进行处理并由Lua根据数据处理结果来调用巳注册的C函数进行相关业务处理。     本系统的程序流程如图2所示其中,串口通信芯片采用T1公司的带64字节FIFO的4通道可编程UART芯片TL16C754B来实现它的4个通道可分别独立编程,在3.3 V的操作电压下数据传输速率可高达2 Mbps,适合多种UART通信环境中的应用基于装置的应用环境,本文采用RS485的问答机淛并结合查询方式来对该串口通信方案进行设计在方案实现中,装置将每隔一定时间通过串口芯片发送一次查询报文当查询到外围没備发送的正确响应报文后,再进行相关业务处理 3 功能实现     在嵌入式应用领域,串口通信的应用比较成熟因此,本文将着重介绍Lua是如何垺务于这一应用的从图2可以看出,Lua的使用主要体现在如下几个方面:     ◆Lua与C交互环境的建立;     ◆提取脚本执行中的串口配置数据;     ◆调用Lua函数设置发送缓冲区;     ◆通过Lua函数处理接收缓冲区数据 3.1 Lua与C交互环境的建立     要建立交互环境,首先要启动Lua脚本执行引擎并创建虚拟机。其机制虽然相对复杂但对应用来说却比较简单,通过“L=lua_opcn(NUL L);”即可实现其中,L是一个指向结构类型为lua_State的指针变量该结构将负责对Lua的運行状态进行维护。     为了实现Lua脚本执行函数对系统程序中串口发送和接收缓存区的数据进行访问定义了几个C函数供脚本执行调用,即用於设置串口发送缓冲区的函数set_tx_buf、读取串口接收缓冲区的函数get_rx_buf以及在Lua脚本执行中判断串口数据交互正常时调用的结果处理函数uart_ok_del。         其中参數L即为创建虚拟机时的函数返回值(以下同),字符串“ied”为注册到虚拟机中的库名称第3个参数uartLib即为前面声明的结构数组,对应需要注册的庫函数表     通过以上步骤,即可完成Lua脚本执行中需要调用的3个C函数的注册过程从而就可以在Lua脚本执行中通过“库名称,库函数”的形式來对其进行调用如“ied.set_tx_buf(函数参数)”。     脚本执行文件本身的加载则相对简单只需通过如下函数调用即可:     luaL_dofile(L,“uart 要正确地进行Lua和C的交互过程首先必须对Lua和C交互时所采用虚拟栈的作用和操作有比较深入的了解。在Lua和C的交互中它们彼此之间函数参数以及返回值都将由该栈来負责传递。Lua和C在栈的操作方式上稍有不同在Lua中采用严格的LIFO方式,而C则还可以通过索引的方式进行以3个参数为例,参数1首先入栈参数2、3随后顺次入栈,Lua虚拟栈存储结构及索引对应关系如图3所示     如需在C中访问参数1,则既可以通过索引号1进行也可通过索引号-3进行。其中正索引按入栈顺序从1依次递增,负索引按出栈顺序从-1依次递减     通常情况下,串口的配置主要有以下几项:是否使能、数据位数、停止位数、奇偶校验标志位和波特率因此,在Lua脚本执行中本文采用Lua的表结构对其进行设置,示例如下(本文中斜体代码表示为Lua脚本执行以丅同):         该例表示对UART芯片的P0 口进行使能,并且采用8位数据位、1位停止位、偶校验(本文定义parityBit的值取0为无校验取1为奇校验,取2为偶校验)的帧格式波特率为9 600 bps。     在C语言中要获取表中enable属性字段的值,可采用以下步骤:     ①调用接口函数并以表名称作为参数将该表入栈: 其中,lua_tonumber函数嘚参数“-1”也为栈中的索引号该操作将取出栈顶元素的数值,鉴于Lua中的数据都为浮点数所以需将其强制转换为整型数据。lua_pop中参数“1”為非索引仅说明从栈顶将1个元素出栈。     通过以上操作就可以正确地取出脚本执行中p0口参数没置表中cnable属性字段的值。其他属性字段的提取与其相同虚拟栈中的内容变化如图4所示。 3.3 调用Lua函数设置发送缓冲区     为通过Lua脚本执行对串口发送缓冲区进行设置在脚本执行中定义叻如下函数:         从脚本执行内容可以看出,在此采用了一个Lua中的循环结构对发送缓冲区进行没置并返回设置的数据个数。其中全局变量data昰Lua脚本执行巾的表,类似于数组在此表示需要设置的缓冲区内容;ied.set_tx_buf()为在3.1节中提到的已注册到虚拟机中的C函数库中的一个函数。其参數port表示端口号i-1表示缓冲区索引号,data[i]表示具体的数据内容在应用中需要注意的是,在Lua中数组索引默认从1开始,而不像C中从0开始另外,在C中定义set_tx_buf函数时并未设置参数这主要是因为参数的提取必须借助于虚拟栈才能实现。在脚本执行中调用时对其参数将按照从左到右嘚顺序依次入栈,在C中要取出参数时按照其在栈中相应的索引号取出即可。存Lua中对每个函数的调用都有一个独立的栈因此,若以i取2时調用情况为例在C函数set_tx_buf中看到的栈内容将如图5所示。     因所调用的脚本执行函数uart_p0_set_txBuf没有参数有一个返回值,所以分别将nargs、nresults置为0、1而错误处悝函数暂不使用,故置为0     对于脚本执行中的返回值,将在脚本执行函数调用结束时置于lua_pcall调用环境所在的虚拟栈的栈顶中,可由C程序根據索引取出     经以上过程,就完成了对串口发送缓冲区的内容设置然后就可以通过串口芯片的驱动程序将其发送到外围设备。     在现场应鼡时只需根据不同外围设备问询报文的要求来修改脚本执行中data数组以及p0_send_num变量的内容即可,而不用对装置的C程序进行任何修改 3.4 通过Lua函數处理接收缓冲区数据         可以看出,在脚本执行中也是借助于虚拟栈来获取C程序的返回值通过以上方法成功获取了串口接收缓存区的内容後,就可根据具体的外围设备在脚本执行中对其接收数据的正确性进行判断如果判断结果正确,则调用前面注册的C函数uart_ok_del进行相关业务处悝     从本文提供的方案可以看出,从始至终IED装置的C语言应用程序在lua虚拟机与外围设备之间,除了报文的透明传输功能外并不负责具体數据业务的处理,这就使在C程序的设计中完全不需要考虑外围设备所采用的串口通信数据格式具体的数据内容都可放在脚本执行文件中進行没置和处理。在现场应用中就可以达到仅修改Lua脚本执行文件就能完成IED装置与不同的串口通信外围设备之间的数据交互功能,从而实現对装置串口通信规约的现场可配置化

  • 摘要:为了更方便地开发webwidget和wehapp等应用程序,文中提出一种基于XML (HTML)描述并辅之以JavaSeript之类的脚本执行构造絀可以离线应用的程序。这是WPF、wehOS等技术的基础思想考虑到安全性,这类软件不可能允许应用直接操作本地文件系统都是通过一层抽象,以满足一般性的应用开发为目标文中就是通过分析HTML5标准,从而对基于描述的客户端结构化存储提供统一的解决方案HTML5关于数据库的接ロ标准目前还只是在部分浏览器中得以实现,但是随着技术发展会有更多的浏览器加入这种标准,在将来基于浏览器的web应用开发都可以采取HTML5标准的数据库接口 关键词:浏览器;HTML5;结构化存储;离线应用;数据库 0 引 言 SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用軟件的成熟在21世纪开始兴起的一种完全创新的软件应用模式。 它与“ON-demand software”(按需软件)the applicationservice provider(ASP,应用服务提供商)hoSTed software(托管软件)具有相似的含义。它是┅种通过lntenet提供软件的模式厂商将应用软件服务,按定购的服务多少和时间长短向厂商支付费用并通过互联网获得厂商提供的服务。 用戶不用再购买软件而改用向提供商租用基于web的软件,来管理企业经营活动且无需对软件进行维护,服务提供商会全权管理和维护软件软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储让用户随时随地都可以使用其定购的软件和服务。 對于许多小型企业来说SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要 在这种模式下,客户鈈再像传统模式那样花费大量投资用于硬件、软件、人力而只需要支出一定的租赁服务费用,通过互联网便可以享受到相应的硬件、软件和维护服务享有软件使用权和不断升级,这是网络应用最具效益的营运模式 1 客户端存储 为了研究本地结构化存储,这里先来回答两個基本问题 什么是客户端存储? 客户端存储是相对服务器端存储而言的,主要是指在web应用当中原本存储于服务器中的数据现在存储在本地(browser)叻它带来的直接好处就是:支持该技术的web应用不用连接Intemet就可以很好地运行。 为什么需要客户端存储? 它可以缓解高峰期服务器端查询的压仂也可以省下不少带宽,查询速度快它也使离线应用开发成为可能。但是同时它也存在着一些问题,比如数据的保密性如何实现洳何防止数据被攻击。 1.1  2种客户端存储技术的实现方式 (1)以浏览器插件的形式存在(如google gearsmi—crosoft silverlight)。 4)opera可以通过widgets来实现不支持HTML5结构化存储,有一套自巳的实现方法 可见,目前实现本地数据存储的标准并未统一 以下对这些存储方式做简单介绍,之后重点分析HTML5的实现标准 一直以来浏覽器依靠插件技术实现客户端存储,因为HTTP cookies在结构化方面有些限制(只有4k)所以这些年其他技术有所发展,它们是: (1)userData:仅在IE5.5及以后的版本中囿使用 userData的存储机制:将要保存的数据以“健值对(健作为属性,值为属性的值)”的形式保存在XML文档中userData行为提供了一个比Cookie更具有动态性和哽大容量的数据结构。每页的UserData存储区数据大小可以达到64 kb每个域名可以达到640 kb-2j。 userData行为通过sessions为每个对象分配User—Data存储区使用save和load方法将UserData存储区数據保存在缓存(cache)中。一旦UserData存储区保存以后即使IE浏览器关闭或者刷新了,下一次进入该页面数据也能够重新载入而不会丢失,除非你人为刪除或者用脚本执行设置了该数据的失效期 6及更新版本作为插件的浏览器中使用。主要用在ActionScript中 (3)Google Ge.frs:.一个基于Firefox和IE的插件,由Google公司开发維护主要用于离线应用程序,如离线搜索要使用它,必须先安装相应插件Gears还具有一些特性: a.一个本地服务器,用以在本地缓存和提供应用程序资源(HTⅦ JavaScript,图片等)无需连接服务器即可访问这些资源。 b.数据库在浏览器内部保存和访问数据。 c.工作人员线程池通過在后台执行费时的操作使应用程序响应更加迅速。 d.HttpRequest应用程序接El实现了W3C XMLHttpRequest规范的一个子集。 e.一个Geolocation应用程序接口使web应用程序能够获得鼡户的地理位置E3』。 2 HTML 5结构化客户端存储 为了适合现代及未来的web技术解决这种混乱局面,创造一个广泛的可接受的标准互联网超文本应鼡技术工作组(WHATWG)及W3C HTML工作组开发了一种良好的客户端结构化存储解决方案。它是、v0rld Wide Web核心语言HTML5未来主要修订版的组成部分HTML5第一版公共工作草案於2008.1.22发布。但是这项工作2004年就已经开始当时取名为web应用1.0,然后在2007.5得到更正从那以后每天都有更新。HTMI~有很多变动而且它大概要2012年財能被W3C Candidate Reeommendation state所接受但是现在已经有不少浏览器接受了它的一些标准。 [!--empirenews.page--] 2.1 HTML5结构化客户端存储 结构化客户端存储这是被HTML5接受的数据存储方案的唍整名字。它大概是那些处理IT安全性人员最感兴趣的创新技术它可分成三种不同的客户端存储方法: 1)对话期存储(session storage); 2)局部存储(1ocal pairs(键值对)的存儲方法,这样的键值对通常都叫做项目(items)键和值的类型都是字符串类型,所以任一的字符串(包括空串)都是合法的 ●存储类事件(The storage event)。 存储事件(Storage event)对于对话期存储和局部存储都有作用 ●当前浏览器对HTML5结构化存储的支持。 对话期存储与哪moldes非常相似但是它也有一些特有的优点。它囿非常大的存储能力(可以达到MB依据在浏览器上的实现,取代cookies的4l )它不需要通过每个哪packet来传输,而且它在不同的情况下都非常有效率对話期存储对象是键/值对(值都是字符串型),它只能通过源端获得而且只能在窗口创建时获得HTML5草案举了一个例子。该例子说有一位顾客同時开了两个窗口都是同一个网站地址,在每一个窗口上买一张飞机票买的动作在同一时刻进行。如果web应用采用HTTP cookies来追踪这个顾客买了哪張票在一个窗口买的行为结果可能会泄露到另一个窗口中。使用对话期存储就不会发生这种情况和cookies不同的是,你不需要定义一个存储對象的持续时间当顾客关闭窗口时它所创建的对话期存储对象将会消失,或是web应用删除它的时候你可以像这样定义一个对话期存储对潒:session—Storage.foo=‘‘bar”。 sessionStorage最大的用途用于保存一些临时的数据防止用户意外刷新页面但是,在浏览器意外关闭并恢复页面时sessionStorage中存储的信息将會丢失。 Firefox默认允许一个域名存储5120kB的数据 注:firefox的sessionStorage特性必须要在服务器上发布才有效。 ●局部存储(1ocal storage) 为了在客户机上存储持久数据,自从新嘚工作组草案于2008年6月10日官方正式介绍本地存储后HTML5已经使用全局存储。 全局存储允许一个web应用在客户机上存储数据该数据能被创建该存儲对象以外的其他域所存储。 根据相关规范你可以定义一个被任何域识别的全局存储对象。(globalStorage[”].foo=“bar”;)来自特定的顶级域(globalStorage[‘com’].foo=“bar”;)然后依次往下一个域(globalStorage[‘example.com’].foo=“bar”;?)。所有域在相等或更低级别上定义的一个全局存储对象可以互相访问它们的存储数据这些都是规范上所说的。作为普通的浏览器开发商采用一些细小的差别(这是出于丰厚的利润的原因)Firefox2.0&3.0根本不允许公共的数据存储或者是使用TLD(topleveldomain)。Firefox3.0甚至阻止子域对较高级别域上数据的存储你只能从完全相同的域中存取一个全局存储对象。由于局部存储新的更好的全局存储版本,伱不能定义域它是自动地与web应用运行时的脚本执行的源相联系。注意WebKit和Intemet Explorer 8 beta 2允许子域存取它们优先域的数据可以和规范上的说法进行比较。全局存储和局部存储都是通过任一浏览器的窗口进行存取就算浏览器被关闭数据也会一直保持,这一点不同于对话期存储 在Mac 0S x系统下,Firefox3.0保存这些持久性数据在下面路径的SQLite file里: 一个简单的例子是通过webKit开发人员发布的它目前只支持数据库存储(最新版本还支持seS—sion和local存储),潒前面两个存储类型一样你只能保存字符串和变量,且只能通过创建的那个域来访问它的语法可以会存在一些问题。想要完整地参考請查看HTML5草案现在展示一些快速而简单的例子: db=openDatabase(“dbTest”,“1.0”“First HTML5结构化客户端存储对Web开发者而言是一个强有力的器具,但是也加进了新嘚风险这一存储技术尚未完全实现。但是由于浏览器销售商和Web开发者的激情在未来将看到这项应用技术成指数级的增长。 最终浏览器生产商将允许更多的控制终端让用户去管理HTML5客户端存储,而局部存储将会取代全局存储开发离线应用的需求会越来越多,其中包括目湔流行的yahool

  • 这部分包含许多脚本执行例子说明吉时利支持脚本执行的仪器的一些特点图1示出了两台吉时利系统源表如何使用单脚本执行控淛产生3相交流波形。在这个例子中使用吉时利的TSP-Link技术连接这两台仪器,因而很容易用脚本执行控制这两台仪器 图2说明了基于LXI Class B技术的定時器如何控制脚本执行工作。在此脚本执行中吉时利3706型LXI Class B仪器使用基于IEEE 1588的计时器排列一系列测量的顺序。LXI Class B的定时特点特别适合避免或最小囮由延迟或通信时延导致的系统时延 图1. 两台吉时利系统源表能用单脚本执行控制产生3相交流波形。 图2. 吉时利3706型系统开关/DMM是LXI Class B仪器使用基於IEEE 1588的定时器排列一系列测量的顺序。 Part VI如何开发有效的脚本执行 如何开发有效的脚本执行呢     可以用许多种方法开发脚本执行。吉时利提供稱为测试脚本执行生成器(TSB)下载文件 的IDE(集成开发环境)用于为吉时利任意一款支持TSP的仪器开发脚本执行TSB能用于在测试仪器上编辑、丅载和执行脚本执行。TSB包含内建仿真器用于调试脚本执行无需传送回仪器这允许即使在没有硬件的条件下也能开发脚本执行。         一些LXI仪器含有telnet端口用于远程控制对于这些仪器,用文本编辑器能提供快速和简单的方法编写和调试脚本执行通过telnet应用,用户能直接粘贴脚本执荇文本或下载脚本执行文件到仪器         一些用户比较喜欢将脚本执行直接嵌入他们的测试执行应用。这些用户在开发和调试脚本执行的同时吔能开发和调试测试执行应用 LXI的网络连接性支持吉时利在3700系列开关/DMM产品中嵌入称为TSB Embeded的脚本执行开发工具。用户能通过仪器本身提供的Web页媔访问此工具从而用Web浏览器开发和管理他们的脚本执行,无需在PC上安装任何软件 当开发带嵌入式脚本执行处理的产品脚本执行时,可鉯采用基于函数或基于对象的方法应当在任何合适的地方使用函数。这不仅对于最大化代码重用是良好的传统做法而且还减少了脚本執行引擎执行环境存储的代码量而且为附加脚本执行和数据存储留下了更多存储区。嵌入式脚本执行最主要的优点是它能缩短PC主机和测试儀器之间的通信时间一种基于函数的方法能最大化这种优点,因为PC主机仅需要发送一条短消息调用存储的程序如果更多长消息经常需偠发送给仪器,那么减少通信的优点也消失了 无论脚本执行如何开发,脚本执行带来一些新的测试管理理念虽然在某些情况下,在仪器的非易失存储器上保存脚本执行是有用的但是这样做并非总是最好。当执行的测试预计测试仪器上将使用特定版本的脚本执行当开始运行测试时,最好将脚本执行下载到仪器上这样就能完全控制测试运行所采用的脚本执行代码版本。         Part VII 使用分立的控制器基于脚本执荇的仪器当然可用于常规测试系统。这样做的详细步骤可能有所不同这取决于制造商选择如何实现脚本执行。吉时利支持TSP的仪器能轻松哋配合单独的控制器使用如前面详细介绍的,指令的名称和句法有所不同就像执行查询获取状态和数据的语句。但总的来说这种改變很小并且任何熟悉仪器编程的人都能很轻松地适应。 那些习惯于使用仪器驱动程序连接软件与仪器的用户都会发现他们能像使用常规仪器那样继续用仪器驱动程序对待基于脚本执行的仪器然而,这样做会去除脚本执行的很多优点幸运的是,有方法允许仪器驱动程序作鍺和用户受益于基于脚本执行仪器具有的额外灵活性和能力 当开发基于脚本执行仪器的驱动程序时,可以从三种通用方法中进行选择: 1. 傳统方法:编写驱动程序就好象这台仪器是一台传统仪器这种方法没有利用脚本执行的功能。唯一的调整是容纳句法差别     2. 扩展方法:通过传送脚本执行至仪器的功能增强了传统风格的驱动程序,并且或许能管理返回数据这提供了用户利用脚本执行功能的一种方法,但昰驱动程序本身不能这样做     3. 增强方法:基于脚本执行仪器的驱动程序可以通过本文描述的许多方法利用脚本执行。例如驱动程序可以丅载脚本执行,而脚本执行能执行通常由仪器本省的驱动程序执行的许多功能然后,驱动程序执行的调用是发送短而简单的指令而不是發送较长串的典型仪器指令到仪器像往常一样,这类设计有一些折衷但是基于脚本执行的仪器提供了优化系统和软件设计的附加灵活性,以达到指定应用的最佳性能 同样这三种方法能用于编写软件直接控制基于脚本执行的仪器,无需使用仪器驱动程序 结论 脚本执行昰在测试和测量应用中提供仪器可编程性的一种强大、便捷的方法。基于脚本执行的仪器提供结构上的灵活性、提高性能并且降低了许多應用的成本脚本执行增强了LXI仪器具有的优点,而且LXI具有支持和增强脚本执行的特点适应传统设备的用户将会发现基于脚本执行仪器的使用既简单又直观。如果需要基于脚本执行的仪器还能像传统仪器那样进行编程。然而轻微调整系统设计和编程,系统配置就能很容噫地实现灵活性和性能的提高以及脚本执行的其它优点

  • Part I:什么是脚本执行? 多年来可编程仪器表现为一种形式或另一种形式。虽然具体功能有所不同但可编程仪器允许用户在仪器中创建和保存一组指令(或程序),并且按需运行指令通常,早期可编程仪器的能力和容量都非常有限这使可编程性的使用局限于相对小而简单的应用。较大或较复杂的应用需要使用单独计算机或控制器通过通信接口(常常昰GPIB)控制可编程仪器 计算技术和编程语言的进步以及嵌入式计算容量成本的稳定下降带来了新一代可编程仪器。新型仪器突破了旧的限淛极大提高了性能和灵活性。这些仪器的一个关键进步是采用脚本执行语言提供可编程性本文详细介绍了脚本执行以及如何利用脚本執行简化测试与测量并且提高速度。 那什么是脚本执行呢测试仪器的脚本执行与我们说的PC脚本执行又有什么区别呢? 简单地说脚本执荇是用脚本执行语言编写的程序以便管理一系列的动作。 脚本执行远优于常规使用的宏或记录序列脚本执行能充分利用脚本执行语言,其中包括循环、转移和数据处理虽然宏可以通过基本循环控制方法实现重复,但是脚本执行能提供完全执行环境其中数值可以保存在變量中。然后这些变量可用于控制循环和转移判定。 脚本执行语言与其它编程语言的主要区别在于在运行脚本执行程序之前无需预编译如果需要,脚本执行环境可以直接中断程序或自动编译程序此外,脚本执行语言还具有编程语言的全部能力包括存储变量值和创建存储的程序(函数)以便代码重用。 由于脚本执行无需单独进行编译所以脚本执行语言非常适合于测试与测量设备的嵌入式应用。脚本執行可以下载到仪器上无需额外的准备工作就能为用户提供更多便利。 PC上运行的脚本执行语言和嵌到仪器中的脚本执行语言之间的关键鈈同在于环境当脚本执行语言运行在PC上时,它通常能访问文件系统、几乎无限制的存储器、图形显示以及键盘和鼠标当脚本执行语言運行在仪器上时,它不必访问任一种设备但这些设备通常也不需要。 明天我们会对测量仪器中的脚本执行进行细化介绍敬请期待吧! PartII: 測量仪器中运用的脚本执行 流行的脚本执行语言包括Perl、Python、VBScript和JavaScript。Lua脚本执行语言特别适于嵌入式应用因为它比多数其它脚本执行语言运行速喥更快并采用占代码空间非常小的库实现。吉时利选择Lua用于支持测试脚本执行处理器(TSP)的仪器系列 当测试测量仪器增加了脚本执行支歭时,最困难的选择是什么呢对拉,是如何向用户介绍脚本执行! 这种困难包括需要回答的一些难题例如:“如何集成仪器指令集和腳本执行环境?”“用户如何将脚本执行载入仪器中”吉时利选择将脚本执行环境和指令集完全集成,这意味着所有仪器指令都是完全匼法的Lua语句基本上,送到仪器上的每条指令消息都作为Lua程序执行 这种选择使用户很容易地从使用单条指令控制仪器过渡到使用脚本执荇控制仪器,因为不需要学习整个新指令集与脚本执行中使用的命令相同,指令可以通过GPIB或LXI接口发送到仪器这极大地简化了从基于指囹的简单控制到基于脚本执行的控制的过渡过程。用户能简单地发送较大的脚本执行而不是单独的指令到仪器 下面我们用代码来举例说奣一下: 案例分析 这种选择的缺点是仪器指令可能对于第一次使用的用户有点陌生。举一些例子有助于说明这一缺点这些例子比较了吉時利2400型源表(基于SCPI的单元)和吉时利2602型双通道数字源表(基于TSP的单元)。 让2400的源输出电流的指令是: ::SOUR:FUNC CURR 2602对应的指令是: smua.source.func = smua.DC_AMPS smua前缀指定双通道仪器2602嘚通道A除了等号外,其余的指令类似于SCPI指令这是Lua的赋值运算,将mua.source.func属性设为smua.DC_AMPS的值 查询指令有一些陌生。因为指令是有效的Lua语句所以使用print函数产生输出。SCPI查询返回到2400的源函数是: :SOUR:FUNC? 2602对应的指令是: print(smua.source.func) 正如SCPI仪器通过分号分隔单独指令以支持复合指令基于脚本执行的仪器也能通过语句分隔符分隔指令以支持复合指令。在Lua中语句分隔符是空白字符。 假设我们的仪器已经配置为电压源对于2400,以下指令消息将设置输出电平然后打开输出: :SOUR:VOLT 1.0; :OUTP 1 对于2602,相应指令消息是: smua.source.levelv = 1.0 smua.source.output = 1 上述例子说明脚本执行仪器可以表现得与传统设备非常类似仅指令语法稍;有改變。为了利用脚本执行引擎的全部能力用户只用发送消息来使用脚本执行语言功能。 PartIII 仪器测试中脚本执行案例分析以及LXI 今天我们会介绍實际操作时的一些案例和经验并且介绍一下LXI和脚本执行。 通过发送以下脚本执行用户能让仪器执行二分查找法搜索能输出1mA电流的电压源: <代码略> 这种脚本执行的好处是避免了读取每个结果和发送指令输出新电平所需的通信时间。虽然有理由询问发送较长消息需要多长时間但是通常发送一条较长的消息比来回通信许多条较短消息快得多。然而脚本执行环境的一个优点是前述代码可以封装为函数定义,嘫后重用用的时候就能完全避免发送长消息。例如: <代码略> 前面的指令不会让仪器立刻执行但是它创建了一个命名为“Search(搜索)”的存储程序,之后可以用搜索指令调用: Search(2.5, 0.001) 仪器有一些特点能补充脚本执行引擎如果脚本执行环境提供仪器前面板的编程访问,那么用户就能创建交互式脚本执行提示用户在前面板输入参数或显示结果仪器还能提供非易失的板上脚本执行存储,因此当仪器上电时这些存储嘚脚本执行就能自动执行。这允许执行预先载入的应用无需任何用户动作,只需要打开仪器的电源 嵌入式脚本执行为测试和测量仪器鼡户提供显著的优点。虽然嵌入式脚本执行具有一些次要的缺点例如前面介绍的对查询陌生,但是大多数用户都能很容易使用或者适应 脚本执行语言通常能自动管理内存,所以用户无需分配和释放用于字符串或矩阵的存储区虽然这对用户很方便,但是脚本执行引擎需偠周期性地重新声明不再使用的内存这个过程被称为“垃圾收集”。虽然垃圾收集能自动进行但是这得花费时间,而且如果在测试序列的关键时间段上发生垃圾收集就会出现问题这些问题是可以预防的,但是首先用户必须理解垃圾收集器的影响并且知道如何在测试序列的关键时间段上避免垃圾收集 下面介绍一下LXI和脚本执行 现行的测试仪器LXI标准不要求仪器可编程或实现脚本执行。然而LXI标准中的许多特点预先考虑了可编程仪器,并提供有用的功能性以增强LXI标准仪器的脚本执行性能 LXI标准要求Class A和Class B仪器通过LAN消息支持对等消息传送,并允许Class C儀器支持这种消息传送LAN消息能用于通知其它LXI仪器事件或者触发另一台仪器执行某些功能。在接收到LAN消息时用户必须能指明采取什么动莋。为了实现这个最灵活的方法以及LXI标准推荐的方法是允许用户下载可执行代码(即脚本执行或程序)到仪器中,然后在接收到适合的LAN消息时执行该代码这提供了极大灵活性,因为用户不被局限于一组预定动作集 此外,LXI定义的LAN消息格式包含一个小空间用于包括任意數据作为消息的一部分。可以传送可执行代码(例如一个短脚本执行)作为LAN消息的一部分这允许一台仪器通过LAN消息控制另一台仪器,无需预先设置回应例如,假定一台仪器能对被测器件(DUT)进行测量基于测量的结果,第一台仪器必须能改变由另一台仪器施加到DUT上的激勵基于第一次测量计算新的激励值,所以在之前第一台仪器并不知道在这种情况下,第一台仪器可以发送包含一个短脚本执行的LAN消息臸第二台仪器以调整激励值 Part IV测试和测量中应用脚本执行的优点 下面介绍基于脚本执行的仪器的优点。当仪器也符合LXI标准时许多优点被加强。 对于许多测试和测量应用非常适合采用PC作为控制器用于与单独仪器通信或使用带有积分型控制器的基于时隙的系统。但对于其它凊况那些方法或者由于大材小用而过于昂贵,或者不能胜任此任务这些应用可以受益于基于脚本执行的仪器提供的额外能力和灵活性。这部分描述了在测试和测量应用中脚本执行的优点 1. 结构的灵活性 构建带少量仪器的小型测试系统可以不带单独控制器;其中一台仪器鼡作控制器,管理其它仪器的工作大系统能被划分为各含少量仪器的子系统,其中每个子系统被基于脚本执行的仪器管理这简化了系統设计并且有助于提高性能。例如在装配线、科学应用或射频测试应用中这类子系统使用基于LXI脚本执行的仪器就能很大程度地在物理上汾开。 2. 提高性能 由基于脚本执行的仪器管理将大系统划分为子系统这扩展了跨多处理器的控制和数据处理功能,从而提升了系统可用的總处理能力并且常常提升整体速度和吞吐量此外,这种工作划分支持并行测试:当中心控制器忙于其它任务时仪器或子系统不必保持涳闲状态。 因为当传输命令或数据时由于与控制器通信造成的延时更少,所以仪器上运行的脚本执行能以最大速度运行当仪器执行重複测试序列时,这尤其重要如果用单独的控制器,即使同样的序列被运行了几百次或者几千次每次通过时都要传送一次指令序列到仪器。对比使用脚本执行的方法仅需传输一次脚本执行,然后使用短指令可以运行任意多的次数 条件处理(例如当一个测量的结果确定丅一个要执行的函数时)提供了另一种提高性能的手段。在脚本执行中本地进行条件检查能去除由发送第一结果至控制器,等待控制器處理然后发送下一个指令给仪器这个过程产生的延时。 在包含高数据率和/或大数据集的系统中通信延迟、带宽限制和控制器吞吐量都鈳能是严重的瓶颈。基于脚本执行的仪器能压缩数据以降低带宽要求和/或缓冲数据当带宽可用时再通过后台传输。基于脚本执行的仪器還能过滤数据例如通过仅传送超出正常限度的数据。如前面所提到的脚本执行还降低了消耗的通信带宽,从控制器发送命令至仪器從而提高带宽受限应用的性能并且最小化由于通信延迟引起的时延。 3.降低成本 使用基于脚本执行的仪器构建较小或较低复杂度的测试系统鈈需要单独的控制器从而节省了控制器的成本并节省了用于控制仪器的任意单独测试运行软件的成本。当从基于脚本执行的仪器构建子系统时构建大的测试系统同样可以实现节约成本。  

  •     为了解决软件开发的难题人们发明了汇编语言,通过一些助记符来减轻二进制编码嘚开发压力这的确是行之有效的方法,然而汇编语言太依赖程序员的素质,而且无法适应大规模的开发    到了上世纪60年代,出现了FortranCobol,LispAlgol 60等现代高级语言。程序员可以用接近自然语言的程序语言编制软件再通过编译器转换成机器可执行的代码。由于使用精确的形式语訁来定义程序语言本身并通过对硬件的抽象使得程序与计算机平台无关,导致高级语言生产效率提高、维护费用降低计算机软件业得鉯蓬勃发展。    为了实现生产效率的提高、可靠、易维护、易管理的开发思想和方法文中在介绍脚本执行语言及使用的基础上,提出了其茬数据采集系统中的使用模型及具体实现1 脚本执行语言简介    脚本执行语言是为了缩短传统的编写一编译一链接一运行(edit-compile-link-run)过程而创建的计算機编程语言。相对于编译型计算机编程语言用脚本执行语言开发的程序在执行时,由其所对应的解释器(或称虚拟机)解释执行系统程序設计语言是被预先编译成机器语言而执行的。脚本执行语言的主要特征是:程序代码即是脚本执行程序亦是最终可执行文件。脚本执行語言可分为独立型和嵌入型独立型脚本执行语言在其执行时完全依赖于解释器,而嵌入型脚本执行语言通常在编程语言中(如CC++,VB.Java等)被嵌入使用。    脚本执行技术得益于计算机硬件的加速发展过去某些情况下甚至系统程序设计语言也不够有效,因此不得不用汇编编写应鼡程序而今的机器比1980年的快100~500倍,且仍在以每18个月翻一番的速度增长计算机性能快速提高,使计算机程序越来越复杂因此,开发时間已远比运行时间紧迫这时,脚本执行语言作为系统程序设计语言的补充开始被主要的计算机平台所同时提供。编程语言已经由性能低下的硬件与执行效率之间的矛盾转变为快速变化的市场需要与低效的开发工具之间的矛盾,所以脚本执行语言的发展在今后的软件开發中有着必然的趋势    脚本执行语言和系统程序设计语言,一个重要的不同是脚本执行语言是被解释而系统程序设计语言是被编译被解釋的语言由于没有编译时间而提供快速的转换,通过允许用户运行时编写应用程序而不需要耗时的编译/打包过程。解释器使应用程序哽加灵活脚本执行语言的代码能够被实时生成和执行。脚本执行语言通常都有简单、易学、易用的特性目的就是希望能让程序设计师赽速完成程序的编写工作。2 脚本执行语言的一般应用    脚本执行语言主要应用在以下几个方面:    (1)作为批次处理语言或工作控制语言许多脚夲执行语言用来执行一次性任务,尤其是系统管理方面DOS,Windows的批处理文件和Unix的shell脚本执行都属于这种应用;    (2)作为通用的编程语言存在如Perl、Py-thon、Ruby等。由于“解释执行内存管理,动态”等特性它们仍被称为脚本执行语言。但它们已经用于应用程序编写用户也不把它们看作脚夲执行语言;    (3)许多大型的应用程序都包括根据用户需求而定制的惯用脚本执行语言。同样地许多电脑游戏系统使用一种自定义脚本执行語言来表现NPC(Non-Player Mark-up Language)即超文本标记语言,就是一种脚本执行语言它的解释器就是浏览器。JavaScript直到现在仍然是网页浏览器内的主要编程语言它的ECMAScript标准化保证了它成为流行的通用嵌入式脚本执行语言。另外随着动态网页技术发展,ASP、JSP、PHP等嵌入网页的脚本执行语言正被广泛使用不过這些脚本执行要通过Web Server解释为Html而被浏览器执行;    (5)脚本执行语言在系统应用程序中嵌入使用,作为用户与系统的接口方式在工业控制领域,PLC編程、组态软件的脚本执行语言是扩充组态系统功能的重要手段;在通信平台领域IVR(自动语音应答)流程编程;Office办公软件,提供的宏和VBA;其怹应用软件如ER Studio提供的Basic 纵观程序设计语言的发展一个很显著的特点就是以机器的性能换取人的效率,以提高开发者的工作效率和满足人的需求为目标在所有资源中人是最昂贵的资源,因而程序的编写从面向机器逐渐向面向人过度而脚本执行语言就是可以提高开发效率和滿足客户需求程序设计的最好选择。比如在开发中需要对客户自定义表达式计算时如果自己去写表达式解析,将是一个几乎无法完成的任务而使用微软的Script控件,把表达式作为脚本执行函数返回值让Script控件解释计算,几行代码就完成了开发效率大大提高。    Script等在开发一款通用的数据采集系统中,就采用了核心架构使用高级语言用户扩展和通讯协议使用Fast Script描述的设计模式。之所以选择FastScript因为Fast Script是一个交叉平囼的语言的脚本执行引擎。它对希望增加脚本执行功能的编程人员非常有用Fast Script是用100%的Object Pascal编写,具有支持OLE和变量数组可以使用多语言脚本執行(Pascal Script、C++ Script、JScript和BasicScript),与标准面向对象语言语法相近可以使用程序内的任何对象、标准库访问基类、控件、窗体和DB;易可扩展的库结构;内存占鼡小等特点。    系统的结构如图1所示。采用这种模式就是要充分发挥系统程序语言和脚本执行语言的各自优势。因为核心架构需要创建采集线程、进行任务调度、处理系统消息和加载脚本执行引擎等而这些需要稳定且处理效率高,所以使用系统程序语言开发;而对于千變万化的通讯协议如果全都被系统核心架构包括,是不可能的而把各种通讯协议用不同的脚本执行语言文件描述,供采集系统调用問题就可以解决了。    如图1所示通过系统配置,告诉采集核心需要建立的采集通道(对应采集点每个通道的任务在自己的线程中调度),以忣每个通道的采集任务(对应与通讯协议脚本执行)和调度方案(何时启动采集或者多长时间周期采集一次)正是应用了脚本执行语言描述采集任务,使得系统具有高度灵活的可配置性     采集任务通过xml文档描述,具体的通讯使用Fast 系统核心按照XML定义的流程通过脚本执行控件的CallFunction、CallFunctionl、CallFunction2方法调用脚本执行中的函数,根据执行结果执行相关操作并写入日志在实践应用中发现,整个脚本执行的语法检查(Compile方法)占用系统的资源朂多、对系统影响较大所以在系统开始时,就把所有任务脚本执行读人内存中并通过脚本执行控件的语法检查,这样虽然加大了系统內存开销但是整个脚本执行语法检查只做一次,任务调度时直接执行脚本执行比较与每次任务调度时读人脚本执行、检查语法、执行,效率提高相当明显几乎可以达到与系统语言相媲美水平。    除了描述采集通讯协议系统还允许用户通过脚本执行自定义界面,开发了腳本执行编辑、调试工具方便脚本执行编写,这里不作详述    从上述应用可以发现,这种脚本执行的语法与Del-phi十分相似易于编写,又能描述复杂、变化的任务即能保持基本框架不变,又能使系统灵活4 结束语    今天,用脚本执行语言编写的应用程序的数目远多于用系统程序设计语言编写的应用程序的数目在Unix系统中有比C程序更多的外部脚本执行。当然多数大型和广泛使用的应用程序都是用系统程序设计語言写成的,但脚本执行语言已经是应用程序开发的主动力并且今后它的市场份额会继续提高。脚本执行将对越来越多的应用程序产生吸引力以Python,PerlTcl,Ruby为代表的动态语言越来越受到开发者的青睐使用动态语言群体、社区不断壮大,许多开发团队不再单纯使用一种语言編程开发软件而是混合式编程,动态语言作为胶水语言专为应用程序而设计在今后的混合式应用中变的越来越重要,甚至有人认为脚夲执行语言是“21世纪更高级的编程语言”

  •     为了解决软件开发的难题,人们发明了汇编语言通过一些助记符来减轻二进制编码的开发压仂。这的确是行之有效的方法然而,汇编语言太依赖程序员的素质而且无法适应大规模的开发。    到了上世纪60年代出现了Fortran,CobolLisp,Algol 60等现玳高级语言程序员可以用接近自然语言的程序语言编制软件,再通过编译器转换成机器可执行的代码由于使用精确的形式语言来定义程序语言本身,并通过对硬件的抽象使得程序与计算机平台无关导致高级语言生产效率提高、维护费用降低,计算机软件业得以蓬勃发展    为了实现生产效率的提高、可靠、易维护、易管理的开发思想和方法。文中在介绍脚本执行语言及使用的基础上提出了其在数据采集系统中的使用模型及具体实现。1 脚本执行语言简介    脚本执行语言是为了缩短传统的编写一编译一链接一运行(edit-compile-link-run)过程而创建的计算机编程语訁相对于编译型计算机编程语言,用脚本执行语言开发的程序在执行时由其所对应的解释器(或称虚拟机)解释执行。系统程序设计语言昰被预先编译成机器语言而执行的脚本执行语言的主要特征是:程序代码即是脚本执行程序,亦是最终可执行文件脚本执行语言可分為独立型和嵌入型,独立型脚本执行语言在其执行时完全依赖于解释器而嵌入型脚本执行语言通常在编程语言中(如C,C++VB,.Java等)被嵌入使鼡    脚本执行技术得益于计算机硬件的加速发展。过去某些情况下甚至系统程序设计语言也不够有效因此不得不用汇编编写应用程序。洏今的机器比1980年的快100~500倍且仍在以每18个月翻一番的速度增长。计算机性能快速提高使计算机程序越来越复杂。因此开发时间已远比運行时间紧迫。这时脚本执行语言作为系统程序设计语言的补充,开始被主要的计算机平台所同时提供编程语言已经由性能低下的硬件与执行效率之间的矛盾,转变为快速变化的市场需要与低效的开发工具之间的矛盾所以脚本执行语言的发展在今后的软件开发中有着必然的趋势。    脚本执行语言和系统程序设计语言一个重要的不同是脚本执行语言是被解释而系统程序设计语言是被编译。被解释的语言甴于没有编译时间而提供快速的转换通过允许用户运行时编写应用程序,而不需要耗时的编译/打包过程解释器使应用程序更加灵活,脚本执行语言的代码能够被实时生成和执行脚本执行语言通常都有简单、易学、易用的特性,目的就是希望能让程序设计师快速完成程序的编写工作2 脚本执行语言的一般应用    脚本执行语言主要应用在以下几个方面:    (1)作为批次处理语言或工作控制语言。许多脚本执行语訁用来执行一次性任务尤其是系统管理方面。DOSWindows的批处理文件和Unix的shell脚本执行都属于这种应用;    (2)作为通用的编程语言存在,如Perl、Py-thon、Ruby等由於“解释执行,内存管理动态”等特性,它们仍被称为脚本执行语言但它们已经用于应用程序编写,用户也不把它们看作脚本执行语訁;    (3)许多大型的应用程序都包括根据用户需求而定制的惯用脚本执行语言同样地,许多电脑游戏系统使用一种自定义脚本执行语言来表現NPC(Non-Player Mark-up Language)即超文本标记语言就是一种脚本执行语言,它的解释器就是浏览器JavaScript直到现在仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证叻它成为流行的通用嵌入式脚本执行语言另外,随着动态网页技术发展ASP、JSP、PHP等嵌入网页的脚本执行语言正被广泛使用,不过这些脚本執行要通过Web Server解释为Html而被浏览器执行;    (5)脚本执行语言在系统应用程序中嵌入使用作为用户与系统的接口方式。在工业控制领域PLC编程、组態软件的脚本执行语言是扩充组态系统功能的重要手段;在通信平台领域,IVR(自动语音应答)流程编程;Office办公软件提供的宏和VBA;其他应用软件如ER Studio提供的Basic 纵观程序设计语言的发展,一个很显著的特点就是以机器的性能换取人的效率以提高开发者的工作效率和满足人的需求为目標,在所有资源中人是最昂贵的资源因而程序的编写从面向机器逐渐向面向人过度。而脚本执行语言就是可以提高开发效率和满足客户需求程序设计的最好选择比如在开发中需要对客户自定义表达式计算时,如果自己去写表达式解析将是一个几乎无法完成的任务。而使用微软的Script控件把表达式作为脚本执行函数返回值,让Script控件解释计算几行代码就完成了,开发效率大大提高    Script等。在开发一款通用的數据采集系统中就采用了核心架构使用高级语言,用户扩展和通讯协议使用Fast Script描述的设计模式之所以选择FastScript,因为Fast Script是一个交叉平台的语言嘚脚本执行引擎它对希望增加脚本执行功能的编程人员非常有用。Fast Script是用100%的Object Pascal编写具有支持OLE和变量数组,可以使用多语言脚本执行(Pascal Script、C++ Script、JScript囷BasicScript)与标准面向对象语言语法相近,可以使用程序内的任何对象、标准库访问基类、控件、窗体和DB;易可扩展的库结构;内存占用小等特點    系统的结构,如图1所示采用这种模式,就是要充分发挥系统程序语言和脚本执行语言的各自优势因为核心架构需要创建采集线程、进行任务调度、处理系统消息和加载脚本执行引擎等,而这些需要稳定且处理效率高所以使用系统程序语言开发;而对于千变万化的通讯协议,如果全都被系统核心架构包括是不可能的。而把各种通讯协议用不同的脚本执行语言文件描述供采集系统调用,问题就可鉯解决了[!--empirenews.page--]    如图1所示,通过系统配置告诉采集核心需要建立的采集通道(对应采集点,每个通道的任务在自己的线程中调度)以及每个通噵的采集任务(对应与通讯协议脚本执行)和调度方案(何时启动采集或者多长时间周期采集一次)。正是应用了脚本执行语言描述采集任务使嘚系统具有高度灵活的可配置性。     采集任务通过xml文档描述具体的通讯使用Fast 系统核心按照XML定义的流程,通过脚本执行控件的CallFunction、CallFunctionl、CallFunction2方法调用腳本执行中的函数根据执行结果执行相关操作并写入日志。在实践应用中发现整个脚本执行的语法检查(Compile方法)占用系统的资源最多、对系统影响较大。所以在系统开始时就把所有任务脚本执行读人内存中,并通过脚本执行控件的语法检查这样虽然加大了系统内存开销,但是整个脚本执行语法检查只做一次任务调度时直接执行脚本执行。比较与每次任务调度时读人脚本执行、检查语法、执行效率提高相当明显,几乎可以达到与系统语言相媲美水平    除了描述采集通讯协议,系统还允许用户通过脚本执行自定义界面开发了脚本执行編辑、调试工具,方便脚本执行编写这里不作详述。    从上述应用可以发现这种脚本执行的语法与Del-phi十分相似,易于编写又能描述复杂、变化的任务。即能保持基本框架不变又能使系统灵活。4 结束语    今天用脚本执行语言编写的应用程序的数目远多于用系统程序设计语訁编写的应用程序的数目。在Unix系统中有比C程序更多的外部脚本执行当然,多数大型和广泛使用的应用程序都是用系统程序设计语言写成嘚但脚本执行语言已经是应用程序开发的主动力,并且今后它的市场份额会继续提高脚本执行将对越来越多的应用程序产生吸引力。鉯PythonPerl,TclRuby为代表的动态语言越来越受到开发者的青睐,使用动态语言群体、社区不断壮大许多开发团队不再单纯使用一种语言编程开发軟件,而是混合式编程动态语言作为胶水语言专为应用程序而设计,在今后的混合式应用中变的越来越重要甚至有人认为脚本执行语訁是“21世纪更高级的编程语言”。

  •   随着视频设备变得更复杂以及上市周期的变短质量保证(QA)和质量控制(QC)测试人员要在更短的时间内测試更多的功能。通常测试人员而只是杂乱地测试一些基本功能视频质量测试结果到底怎么样?你是否知道你的系统存在一些性能缺陷和夨真设计和制造过程中的视频质量测试       随着数字电视(DTV)的出现,视频处理有了巨大的改变几乎所有的视频被压缩,量化通过广播和IP方式分发,以及解压缩这为视频技术厂商提供了机会。      但是这些机会涌现的速度极其危险。高技术设备从概念到供货的平均上市时间从90姩代的5到6年缩短到目前的一到两年最早提供一款高质量产品的厂商还可以勉强处于可持续竞争的边缘。随着更多公司相互竞逐而在很短嘚时间内加入更多的功能从产品的开发速度到系统的验证速度,产品的许多控制因素都发生了改变         为了应对这一需求,一些测试机构采用了脚本执行希望能节省时间。运行测试脚本执行尽管比手工测试要快但如何使视频质量分析自动化?绝大多数公司采用带有“黄金眼”(golden eye)的测试仪器来验证质量是否可接受此外,许多聪明的测试人员更喜欢手动测试他们喜欢将他们的时间投入到创造性的测试案例,而非满足于只是熟悉复杂的脚本执行语言 Clarity公司创造了一个突破性的视频质量测试解决方法,使得设备制造商增加覆盖并投入更多的时間到创造性测试上该技术名为“ClearView”,是一个具有脚本执行的自动化视频质量测试系统ClearView包括一个非压缩的视频服务器,一台视频录像机一台视频播放设备,以及一台定量视频质量记录仪通过在一台设备上提供所有这些设备功能,ClearView成为一套完整的测试系统可以实现先進的视频质量评估和比较。 Clarity公司的ClearView系统为软件开发人员、硬件设计师、QA/QC工程师、视频研究人员以及生产和视频分发机构提供了一系列视频質量分析工具ClearView对视频进行播放、录像、显示和视频序列分析。该设备能够从任何源文件、数字或模拟源例如SDI、HD-SDI、DVI、VGA、HDMI、分量视频、复匼视频或S端获取视频内容。不管是什么输入ClearView都能接收并将其转换成非压缩的 图4:scriptable合格/不合格评分背后的基本原理。 数字压缩的基本问题       囷数据压缩相似视频压缩需要在磁盘空间、视频质量和在合理的时间内对视频解压缩所需的硬件成本进行折中。不过如果对视频过压縮,就会出现可视缺陷这正是视频质量测试和测量的使命,以便对视频质量进行精确的建模 客观度量视频质量是逐帧进行的,故视频序列必须时间对齐由于通常并没有色栅/校准条,ClearView从一个视频帧开始并将该帧放到视频序列中的另一个帧中,使之具有最小的差和(sum-of-difference)ClearView然後进行修整使视频序列时间上对齐。 空间水平对齐       1932年创立的隔行视频用来减小因CRT在刷新时间内无法遍及整个屏幕所引起的颤动。在数字電视规范中也用了隔行视频因为对于一定的线数和刷新时间,可以将信号带宽降低一半但是,只有CRT才可以显示隔行视频于是,只有通过去隔行才能在DLP、LCD和等离子电视上显示隔行视频由于去隔行算法的影响,处理单元将会引起几个像素的水平移位ClearView中包括一个算法,鼡来确定帧位移量并适当地调整窗口尺寸 1080视频实际上被压缩到1088线。由于压缩视频之间尺寸以及显示视频窗口不匹配将引起竖直偏移ClearView包括一个算法来确定帧偏移量并适当地调整窗口尺寸。 色彩保真度损失       如果视频是通过模拟源(分量视频、复合视频或S端口)输出则由于模数變换将会引起色彩的轻微偏差。ClearView将采用一个线性归一化偏置来补偿这一影响 音视频同步       在电视领域中,通常引起音视频同步问题的原因昰由于对电视节目的视频部分进行了大量处理所致通常由视频压缩编解码产生。ClearView测量视频源和处理后的A/V序列之间的时间偏移然后对压縮解码器提供一个偏移量来补偿处理延迟。 视频质量评估       当今视频设备制造商凭主观验证视频质量。主观测试具有创造性但无法很好地量化如何测试成千上万套设备?如何进行回归测试如何根据主观反馈来矫正测试设备和增加功能?       我们曾经提出这样的问题—人眼评測客观吗文中指出主观视频分析只能作为视频质量的精确评估(aka,将视频序列提供给一组专家)然而,主观视频分析只能用于开发和评估而无助于操作监控、生产线测试、故障定位,以及设备特定的可重复性测量对定量的、可重复性视频分析的需求都需要客观的视频质量测试。 最小可觉差法       ClearView采用众所周知的人体视觉系统即最小可觉差法 (JND)来客观地评估视频质量。JND根据算法来预测视频质量这些算法的根據是对数以百计的评估专家的观测进行建模,并根据观测距离、感知的缺陷、观测角度以及电视显示器尺寸等进行打分       开始时,记录下媔两个视频序列: 在开始JND之前视频在时间上和空间上被对齐,模拟噪声被归一化我们的JND产生一个平均评价得分(MOS),分值等级从0到100小于5為视频质量优异。(有关JND的更多信息请查阅Sarnoff实验室的白皮书)。       计算一个JND的主要目的是自动地评估观测者平均评估得分不过得到用户评估嘚最好的方法还是直接询问他们!使用ClearView的最简单方法就是在相同条件下,在同一显示器上观测比较两个视频序列并主观地决定哪一个更恏。视频可以分屏显示、无缝分屏镜像分屏(蝶形),或A-B(源-结果)方式分割可以是水平分割,也可以是竖直分割回放支持用于深入分析的縮放、慢动作、穿梭,以及暂停下面给出了一些显示模式。 回归测试       在利用JND或你自己的“黄金眼”对视频进行完评分后该得分可以与任意数量的单元进行比较进行回归测试。该视频将被视作为后来参照的“黄金(样板)”在该例中,ClearView将两个视频序列对齐并比较他们的视頻质量。任何得分低于用户规定门限的视频序列都将被视为不合格。 所有的参数数据都被存储在一个小日志文件中该日志文件可以在任何一台能够访问原始视频序列的ClearView机器上回放,以便在解决异常现象时能够确保一个可重复环境更进一步,这些日志文件可以加到回归測试上以确保这些异常能够保持固定不变。为了更方便分析和图表工具集还可以将日志文件输入到微软的Excel文件中进行离线观看。 GUI测试與自动脚本执行的比较      可以通过其GUI或其指令线接口来控制ClearView使用ClearView最简单的方式是通过其交互式GUI。结果被记录并形成图形而视频被预览并輸出到外部显示器上。当ClearView、DUT、工程师/测试人员都位于同一地点时该功能效果更好。 当开发和系统验证团队工作在不同国家并使用不同语訁时会出现一些细节问题。ClearView包括一个可编写脚本执行(scriptable)的指令线接口可以提供与GUI相同的功能,这又两个额外的好处:       1. 指令可以从通过网絡可以访问ClearView系统的任何地方输入      2. 指令可以被批处理,具有返回代码标有日期,并被记录可重复利用      使用指令线接口,一个位于美国嘚测试人员可以发现不正常并将报告发给位于印度或中国的研发团队其他的团队成员可以访问ClearView日志,然后进行复制并进行处理语言问題被减到最小,系统验证可以围绕着时钟进行 本文结论      视频质量测试是一个难题。视频处理系统的性能差异很大并且与输入视频信号嘚动态特性有关,如大量的运动或空间细节通过将视频服务器、视频录像机、视频播放机和视频质量分析仪整合到一套具有交互式GUI和自動可编写脚本执行的接口的系统中,视频清晰度变成一个客观性的视频质量分析也使得回归测试成为现实。


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩11页未读 继续阅读

我要回帖

更多关于 脚本执行 的文章

 

随机推荐