TWaver基本编程2

合集下载

Flex与Twaver资料

Flex与Twaver资料

TWaver Flex数据模型TWaverFlex的基本数据元素是twaver.IData,基本数据容器定义为twaver.DataBox,基于这两类基本元素,TWaverFlex预定义了一系列业务对象,视图网元和管理容器,例如告警(twaver.IAlarm)和告警容器(twaver.AlarmBox),图层(twaver.ILayer)与图层管理容器(yerBox),拓扑网元(twaver.IElement)和拓扑管理容器(twaver.ElementBox)......数据元素结构图数据管理容器结构图其中拓扑管理容器(twaver.ElementBox)整合了其他几种容器,提供了丰富的拓扑元素(Dummy, Node, Link, Bus, ShapeNode, ShapeLink, Follower, Rack, Shelf, Slot, Card, Port, Grid, Group, SubNetwork......),为网管界面开发提供了强大的设计模型和业务功能的基础支持。

TWaver Flex数据元素TWaverFlex以twaver.IData为最基本的数据单元,扩展定义了一系列具有图形和业务意义的数据类型,包括IAlarm, ILayer, IElement...twaver.IDataIData是TWaverFlex的数据元素基类接口,twaver.Data是对其实现类,定义了id, name, icon, toolTip, parent, children等基本属性,对事件派发做了封装,并支持xml数据的导入导出,为TWaver各平台间数据的可序列化奠定了基础。

Data继承于flash.events.EventDispatcher,这使他具有事件派发和监听的功能,可以通过调用下面的方法派发事件或者添加实现监听器:flash.events.EventDispatcher#publicdispatchEvent(event:Event):Booleanflash.events.EventDispatcher#addEventListener(type:String,listener:Function,useCapture:Boolean=false, priority:int=0,useWeakReference:Boolean=false):voidData还实现了twaver.IData接口,实现了对属性变化事件的派发和监听function dispatchPropertyChangeEvent(property:String, oldValue:Object, newValue:Object):Boolean;function addPropertyChangeListener(listener:Function, priority:int = 0, useWeakReference:Boolean = false):void;function removePropertyChangeListener(listener:Function):void;此外,Data中还定义了其他功能函数function get childrenCount():int;function get hasChildren():Boolean;function isDescendantOf(data:IData):Boolean;function isParentOf(data:IData):Boolean;function isRelatedTo(data:IData):Boolean;function toXML(context:XMLContext, newInstance:IData):void;function parseXML(context:XMLContext, xml:XML):void;function setPropertyValue(property:String, value:Object):void;function getPropertyValue(property:String):Object;下面分别介绍各个实现类twaver.ILayer图层,用于TWaver的图层管理,Layer实现了twaver.ILayer接口,有三个特殊属性:visible, editable, movable。

2.TWaver介绍

2.TWaver介绍

TWaver Web前端交互使用JavaScript+SVG+HTML技术,TWaver HTML5使用JavaScript+ HTML5技术;SVGSVG是一种文本矢量图形标准,全称:Scalable Vector Graphics,可伸缩矢量图像,SVG本身是XML 格式,可与脚本语言(如JavaScript)混合使用,这种XML与JS的混用方式,被后来的Flex,WPF与Silverlight承袭,后者是现在新潮的UI技术,而前者(SVG)则是十多年前的产物,这点也说明了SVG 设计的强大,目前大多数浏览器都已支持SVG,TWaver Web使用SVG呈现拓扑图界面;FlexFlex是Flash发展的产物,Flash是一种制作动画的技术,采用了场景,画布,帧,时间线的设计,这些与窗体,按钮,表格这样的标准控件格格不入,Flex的发展很有趣,最早是一种J2EE的应用,JSP标签库,将MXML和ActionScript脚本动态的编译成Flash文件,在浏览器中呈现,这个时期的Flex还是做动画,到后来界面上需要标准控件,于是就出现了按钮,面板,窗体等等,加上前后台通讯,数据传输,最后成了富客户端应用的完整解决方案。

Flex界面延续了Flash的图形绘制基础,Flex程序与普通的Flash文件不同,Flex只有两帧,第一帧是启动界面,第二帧是程序界面,此后程序按第二帧的频率(默认是24帧每秒)启动定时器,周期性的重绘,也就是Flex组件的无效-生效周期;HTML5HTML5是第五版的HTML标准,相比HTML4,增加了一些新的标签,比如<canvas><audio><video>等,此外还提供了更多API,比如Canvas2D API,拖拽支持,跨文档消息,本地存储,WebSocket等。

当然并不是所有这些特性都被浏览器支持,不同浏览器支持程度也有所不同,HTML5技术要求更现代的浏览器,IE9+,Safari,Chrome,Firefox,Opera…….IE6,7,8可以考虑安装chrome frame插件。

Wave的L2中文说明书

Wave的L2中文说明书

电子书说明您目前看到的电子书来源于网上的资源,制作成电子书的目的是为了方便更多的人阅读和保存。

该电子书为免费资料,版权归原作者所有,未经作者许可,不得用于任何商业用途,否则后果自负。

更多的相关免费资料,请登陆电脑音乐书店网站查看。

电脑音乐书店网址:电脑音乐论坛网址:/bbs第一章关于L2 (2)第二章-关于数字音频信号的一些奥秘 (3)关于最大电平 (3)关于最大解析度 (3)为什么使用它们,它们是什么? (4)关于IDR ™ (4)第3章–使用L2 (5)峰值限制器部分 (5)IDR 部分 (6)IDR的基本控制 (7)一个IDR解析度提高的例子 (7)Type1 类型1 (7)Type2 类型2 (8)Noise-shaping 噪声整形选项 (8)第4章重要的IDR信息 (10)在以下几种情况下避免使用Ultra整形: (10)推荐使用的IDR设置 (11)第5章-16-bit (及更高)母带处理 (12)第6章- 8-bit多媒体声音的母带处理 (13)首先:完成所有的音频处理,包括采样频率转换 (13)其次:选择IDR设置 (13)最低噪声 (13)较高精度 (13)最高精度 (13)第三:降低比特精度 (13)第7章–最后使用L2 (14)第8章-关于数字削波的重要提示 (15)信号的峰值充分化 (15)实际操作中的预防措施 (16)Chapter 9 -L2 控制内容介绍 (17)Quantize量化精度 (17)Dither高频脉动 (17)Shaping噪声整形 (17)Digital数字/Analog模拟方式 (18)第10章–推荐使用的设置 (19)高精度母带处理(不再进行任何数字编辑) (19)多媒体声音及低精度母带处理 (19)11kHz 及更低的采样信号 (19)第一章关于L2L2-超级极大化器是一个具有复杂音频处理功能的软件。

它包含有一个复杂的峰值限制器,一个电平极大化放大器,和一个高品质的均衡器,该均衡器是基于Michael Gerzon 的IDR(增强数字解析度)技术,采用噪声整形及高频脉动处理手段对声音信号进行处理。

TWaver入门指南中文版,帮助文档

TWaver入门指南中文版,帮助文档
修改记录
版本编号 日期 备注
1.0 1.1 1.2 1.3 1.3.1
2004 年 1 月 2004 年 9 月 2005 年 7 月 2005 年 10 月 2005 年 12 月
SERVA TWaver™ � 快速入门指南
目 录
简介......................................................................................................................................................................... 1 ........................................................................................................................................... 2 安装和使用 TWAVER TWAVER........................................................................................................................................... ...........................................................................................................................................2 前期准备..................................................

TWaver——专业网管UI

TWaver——专业网管UI

TWaver——专业网管UI平台标签:电信网管TWaver拓扑2010-08-26 11:40TWaver是面向电信行业的专业图形用户界面(GUI)组件产品,在全球电信行业有广泛的应用。

TWaver组件产品涵盖各种主流客户端技术,提供专业的拓扑组件、地图组件、设备图组件,以及表格、树图、属性表、图表等丰富的通用图形界面组件,为电信运营支撑系统(OSS)的开发提供“一站式”的组件产品和解决方案,是快速设计、开发和部署OSS的利器。

TWaver组件产品目前由TWaver Java,TWaver Web,TWaver Flex,TWaver .Net 和TWaver GIS五条分支组成,各分支具有统一的核心技术和架构。

TWaver遵循电信行业OSS/J、ITU-T、TMF等相关国际规范进行设计,用户可以直接使用这些组件和工具来开发图形界面,也可以对其进行参数定制、扩展以及二次开发,满足电信运营商复杂多样的应用需求,提升运营商服务质量和竞争力。

特点与优势完全符合电信行业的需要遵循OSS/J、ITU-T Z.361和TMF 046等电信行业国际规范进行设计,符合电信行业用户展现实时的、复杂的数据信息并可以实现交互操作的电信级图形界面需要。

使用户能够抓住客户眼球迅速拓展市场,尽可能减少开发时间并降低的成本,提高服务质量确保最快的获得投资回报(ROI)。

∙“一站式”组件产品和解决方案统一的核心技术和架构,提供支持Java、Flex等多种技术平台功能强大的拓扑、设备视图和地图引擎等核心组件,以及图表、表格、属性表、树图等丰富的通用组件。

这些组件通过丰富的数据接口与各种技术和平台快速集成,可轻松将OSS 应用拓展到传统桌面、WEB、GIS等领域,为用户提供“一站式”图形解决方案。

∙高效、轻量,便捷开发与部署基于开放的技术标准,包括XML和JavaBeans技术,可以快速便捷的连接后端数据,缩短开发时间和成本,更易于利用现有技术,使用最新技术。

TWaver学习笔记1-TWaver入门

TWaver学习笔记1-TWaver入门

Twaver入门快速上手下面我将分步骤讲解首先新建一个MXML Application: HelloTWaverFull.mxml,设置twaver命名空间<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="/2006/mxml"xmlns:twaver="/2009/twaver/flex"></mx:Application>* 在左边添加树组件,中间添加拓扑图组件,下方添加一个表格组件,设置好布局,如下:<?xml version="1.0"encoding="utf-8"?><mx:Application xmlns:mx="/2006/mxml"xmlns:twaver="/2009/twaver/flex"><mx:Panel title="Hello TWaver! - Tree, Network &amp; Table" width="100%"height="100%"><mx:HDividedBox width="100%" height="100%"><twaver:Tree id="tree" width="30%" height="100%"/><mx:VDividedBox width="100%" height="100%"><twaver:Network id="network" width="100%" height="70%"/><twaver:Table width="100%" height="30%" id="table" editable="true"></twaver:Table></mx:VDividedBox></mx:HDividedBox></mx:Panel></mx:Application>设置拓扑图背景颜色,添加表格列<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="/2006/mxml"xmlns:twaver="/2009/twaver/flex"><mx:Panel title="Hello TWaver! - Tree, Network &amp; Table" width="100%" height="100%"><mx:HDividedBox width="100%" height="100%"><twaver:Tree id="tree" width="30%" height="100%"/><mx:VDividedBox width="100%" height="100%"><twaver:Network id="network" backgroundColor="0x00ff00" width="100%" height="70%"/><twaver:Table width="100%" height="30%" id="table" editable="true"><twaver:columns><twaver:TableColumn dataField="name" headerText="Name"/><twaver:TableColumn dataField="id" headerText="ID"/><twaver:TableColumn dataField="icon" headerText="Icon"/><twaver:TableColumn dataField="C:number" headerText="Number"/></twaver:columns></twaver:Table></mx:VDividedBox></mx:HDividedBox></mx:Panel></mx:Application>监听applicationComplete,添加网元数据<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="/2006/mxml"xmlns:twaver="/2009/twaver/flex" applicationComplete="init()"><mx:Script><![CDATA[import twaver.*;import work;private var box:ElementBox;private var number:int;private function init():void{number=0;box=network.elementBox;tree.dataBox=box;table.dataBox=box;var group:Group=new Group();="group";box.add(group);group.addChild(createTWaverNode("node1",200,100));group.addChild(createTWaverNode("node2",300,130));group.expanded=true;var from:Node=createTWaverNode("from",30,30);var to:Node=createTWaverNode("to",70,150);var link:Link=new Link(from,to);="hello TWaver Flex";box.add(link);}private function createTWaverNode(name:String,x:int,y:int):Node {var node:Node=new Node();=name;node.setClient("number",number++);node.setLocation(x,y);box.add(node);return node;} ]]></mx:Script><mx:Panel title="Hello TWaver! - Tree, Network &amp; Table" width="100%" height="100%"><mx:HDividedBox width="100%" height="100%"><twaver:Tree id="tree" width="30%" height="100%"/><mx:VDividedBox width="100%" height="100%"><twaver:Network id="network" backgroundColor="0x00ff00" width="100%" height="70%"/><twaver:Table width="100%" height="30%" id="table" editable="true"><twaver:columns><twaver:TableColumn dataField="name" headerText="Name"/><twaver:TableColumn dataField="id" headerText="ID"/><twaver:TableColumn dataField="icon" headerText="Icon"/><twaver:TableColumn dataField="C:number" headerText="Number"/></twaver:columns></twaver:Table></mx:VDividedBox></mx:HDividedBox></mx:Panel></mx:Application>基础TWaver设计模式TWaver Flex采用基本的模型视图分离的设计思想,通过MV的组合嵌套,实现了以twaver.Data为基本数据元素,twaver.DataBox为基本数据容器的客户端数据模型,以及基本图形work.ui.ElementUI和数据容器组件(work, twaver.Tree, twaver.T able...)的视图系统,三者共同构成了TWaver Flex的架构体系。

Turbo C 2.0使用指南

Turbo C 2.0使用指南

Turbo C 2.0使用指南Turbo C 2.0是Borland公司1987年推出的C语言编译器,具有编译速度快、代码优化效率高等优点,所以在当时深受喜爱。

Turbo C 2.0提供了两种编译环境:一种是类似于UNIX环境的命令行,包含一个TCC编译器和一个MAKE实用程序;一种是集成开发环境,由编辑器、编译器、MAKE实用程序和RUN实用程序,还有一个调试器组成。

在这里,我就向大家简单介绍一下集成环境的使用方法。

Turbo C 2.0基本使用指南(一)进入Tc,您可以看到类似下面这样的屏幕。

按F10到菜单,将光标移到Options,打开下拉菜单(或可以按Alt+o打开Options下拉菜单),选择Directories,第一行是include文件目录,是你的TC.EXE,所在的目录,假如你的TC.EXE是在C:\TC20下那么就是c:\tc20\include;同样,第二行是library目录,设成c:\tc20\lib第三行为输出.EXE和.OBJ文件的目录,如果为空则输出到c:\tc20目录下;第四行为Tc的目录,这里设为c:\tc20;第五行是建立PICK文件,默认是TCPICK.TCP,该文件的作用是每次只要键入tc 即可在启动TC时自动加载上次编辑的文件。

完了以后一定要Save Options。

否则下次你还要在设置保存时覆盖原来的就可以了.好了,设置完这些目录以后,您就可以开始进行基本的开发工作了。

Turbo C 2.0基本使用指南(二)现在我们来讲一下各菜单项的功能。

File菜单:File菜单中都是些一般编辑器中常有的功能,如Load、Save等,相信没有必要再讲了,我们就省点口水吧。

Edit菜单:Edit菜单的作用是从菜单切换到编辑栏。

其实大可不必这么麻烦,只要按ESC键就可以了。

Run菜单:Run菜单中的命令用于运行程序。

RUN命令不用讲了,当然是用来运行编译好的程序的啦。

伯朗特机械手编程步骤

伯朗特机械手编程步骤

伯朗特机械手编程步骤
伯朗特机械手编程的步骤如下:
1. 确定机械手的工作类型和目标:包括机械手的工作区域、工作载荷、动作速度等。

2. 设计机械手的动作序列:根据工作目标和要求,确定机械手的动作序列,包括机械手的起点、终点、中间点等。

3. 编写机械手的控制程序:根据设计的动作序列,使用机械手编程语言(如URScript)编写控制程序,包括机械手的起始状态、运动轨迹、速度、力度等参数的设定。

4. 转换控制程序为机械手可执行的格式:将编写好的控制程序通过相应的软件工具转换为机械
手可识别和执行的格式,如二进制码或特定的文本格式等。

5. 上传控制程序到机械手:将转换后的控制程序上传到机械手的控制系统中,通常通过网络或
物理媒介进行传输。

6. 测试和调试机械手的控制程序:在机械手上运行控制程序,并进行测试和调试,确保机械手
按照设计要求正确执行动作序列。

7. 优化和修改机械手的控制程序:根据测试和调试的结果,对控制程序进行优化和修改,以提
升机械手的执行效果和性能。

8. 反馈和改进:根据实际应用情况和用户反馈,对机械手的编程进行改进和优化,以适应不同
的工作需求和环境。

需要注意的是,伯朗特机械手编程可能会有额外的特定步骤或要求,具体操作和流程可能因机
械手型号、控制系统和应用场景的不同而有所差异。

因此,在实际操作中,需根据具体的机械
手产品手册和编程手册进行操作。

Tesseral 中文 用户手册(全)

Tesseral 中文 用户手册(全)

在PC机上地震和声波场建模程序Tesseral 2-D 全波建模程序用户手册目录1. 概述 (4)1.1 建模器 (4)1.2 计算引擎 (4)1.3 浏览器 (5)1.7 数据输入/输出 (5)2. 启动 (5)3. 用建模器创建模型 (6)3.1 第一次启动 (6)3.2 建模器面版 (6)3.3 建模器菜单和工具条 (7)3.4 剖面页 (7)3.6 观测系统页 (12)3.7 多边形 (15)3.8 静态物理参数 (18)3.9 通用菜单条目 (18)3.10 选项对话框 (19)3.11 炮点和接收点对象 (21)3.12 画模型 (22)3.13 梯度/复合参数分布 (23)3.14 模型修改 (24)3.15 修改多边形 (25)3.16 观看模型 (26)3.17 图片放大 (28)3.18 等轴和调整比例尺 (30)3.19 拖动图片 (30)3.20 保存模型数据 (30)3.21 模型硬拷贝 (33)3.22 彩色色标 (34)3.23 颜色选项 (34)3.24 坐标标记 (35)3.25 “微调位置” 对话框选项 (37)3.26 震源模式 (37)3.27 在建模器中运行计算引擎 (39)3.28 应用主窗口的管理 (40)3.29 改变主窗口的大小 (41)3.30 图片重叠 (42)3.31 下一版本的窗格特征 (43)4. 全波场模型计算 (45)4.1 计算对话框 (45)4.2 报告窗口. (46)4.3 波场成分 (47)5. 数据管理约定 (48)6. 用浏览器分析成果 (50)6.1 浏览器面板 (50)6.2 别的标准格式文件 (50)6.3 浏览器窗口菜单和工具条 (50)6.4 “File” 下拉菜单列表 (51)6.5 “View” 下拉菜单列表: (52)6.6 图片视觉选项 (53)6.7 浏览快照 (57)6.8 在浏览器中对图片处理 (57)6.9 硬拷贝 (57)6.10 浏览器“Run” 菜单条目 (57)6.11 [++下一版] 累加 (57)6.12 网格转换 (58)7. 问题解答 (59)8. 附录A 转换模型到网格格式 (61)9. 附录B 多分区网格 (61)10. 附录C 测井曲线文件(.las)输入 (62)11. 附录D 网格模型计算 (64)12. 附录E 模型文本文件的输入/输出 (65)1.概述Tesseral 2-D 全波波场建模软件包版本2.5包含3个主要的部分: Modelbuilder(建模器),Computational Engine(计算引擎)和 Viewer(浏览器)。

中鸣机器人轨迹编程的步骤

中鸣机器人轨迹编程的步骤

中鸣机器人轨迹编程的步骤1. 硬件准备,首先,确保中鸣机器人处于正常工作状态,电源充足,传感器和执行器正常工作。

确保机器人所在的环境安全,没有障碍物。

2. 软件准备,使用中鸣机器人的编程软件,通常是专门针对该机器人开发的集成开发环境(IDE)。

在计算机上安装并打开该软件,确保软件与机器人能够正常通信。

3. 创建新项目,在编程软件中创建一个新的项目,命名并保存好。

这一步是为了确保你的编程工作能够被保存和管理。

4. 编写轨迹控制代码,根据机器人的运动需求,编写轨迹控制代码。

这可能涉及到控制机器人的运动方向、速度、转向等参数的设定。

在编写代码时,需要考虑机器人的传感器数据和环境因素,确保机器人能够安全、高效地运动。

5. 调试和测试,完成代码编写后,需要进行调试和测试。

这包括在模拟环境中对代码进行测试,以及在实际环境中对机器人进行测试。

通过调试和测试,可以发现并解决代码中的bug和逻辑错误,确保代码的稳定性和可靠性。

6. 上传代码,当代码通过测试并达到预期效果时,可以将代码上传至中鸣机器人。

这通常需要将代码通过USB或者Wi-Fi等方式传输至机器人的控制器中。

7. 执行轨迹,一旦代码成功上传至机器人,就可以执行轨迹控制代码,观察机器人按照设定的轨迹进行运动。

在执行过程中,需要密切关注机器人的运动状态,确保机器人能够按照预期进行运动。

总的来说,中鸣机器人轨迹编程的步骤包括硬件准备、软件准备、创建新项目、编写轨迹控制代码、调试和测试、上传代码以及执行轨迹。

通过严谨的步骤和全面的考虑,可以有效地进行中鸣机器人的轨迹编程工作。

wave2foam waveproperties用法手册

wave2foam waveproperties用法手册

wave2foam waveproperties用法手册一、概述Wave2Foam 是一款用于模拟流体动力学的软件,而WaveProperties 是该软件中的一个模块,用于处理与波浪相关的属性。

本手册将详细介绍如何使用Wave2Foam 中的WaveProperties 模块。

二、安装与配置在使用WaveProperties 之前,您需要先安装Wave2Foam 软件,并确保系统已正确配置。

安装完成后,请确保软件已正确配置环境变量和路径。

三、启动WaveProperties 模块打开Wave2Foam 软件,在主界面中选择“Modules”菜单,然后选择“WaveProperties”模块。

这将打开WaveProperties 模块的界面。

四、创建波浪属性文件在WaveProperties 模块中,您需要创建一个波浪属性文件。

点击“File”菜单中的“New”选项,选择“WaveProperties”文件类型,并输入文件名。

在打开的编辑器中,您可以设置以下参数:1. 波浪类型:选择您要模拟的波浪类型(例如,规则波浪、不规则波浪等)。

2. 波浪参数:根据您的需求设置波浪参数,例如波高、周期、波长等。

3. 流体属性:设置与流体相关的属性,例如密度、粘度等。

4. 其他参数:根据需要设置其他参数,例如风速、风向等。

完成设置后,点击“Save”按钮保存文件。

五、将波浪属性文件导入模型中在您的流体动力学模型中,选择“Import”选项,并选择之前创建的波浪属性文件。

这将将波浪属性导入到您的模型中。

六、运行模拟在模型中设置其他必要的参数(例如网格、边界条件等),然后运行模拟。

Wave2Foam 将使用WaveProperties 模块进行计算,并生成相应的结果。

TWaver基本编程2

TWaver基本编程2

TWaver基本编程2Element的选中机制所有的Element数据都可以被选中。

选中状态是Element的重要状态之一,它在实现人机交互过程中非常常用。

理解和使用Element选择,对于熟练掌握TWaver开发具有重要意义。

使用选择状态所有TWaver的Element都有一个选中状态。

要么选中,要么没选中,它是一个boolean值。

可以使用函数isSelected/setSelected进行获取或设置。

一个对象处于选中状态时,其外观会有一定的变化,对于不同的组件,这种变化也有所不同。

例如,对于拓扑图组件来说,选中的数据会显示一个高亮外框,而对于树来说,选中数据会有一个高亮的背景框。

如下图。

实际上,这些默认的外观和行为都可以被定制和修改。

后续章节我们将讲述这些用法。

使用选择容器Selection ModelSelection Model可以成为选择容器,是一个DataBox附属的一个容器,它维护着DataBox中所有的被选中的数据对象的引用。

DataBox作为一个大容器,它负责所有容纳其中数据的管理。

但是,为了让管理职责更加清晰和明确、易于使用,DataBox还拆分出一些附属的、相对独立的小容器,分管不同的任务。

选择容器Selection Model就是其中一个,专门负责管理数据的选中状态。

其实,Element已经有了boolean值标识选中状态,那为何DataBox还要设置选择容器进行选中状态的管理呢?主要是为了开发者使用更加方便。

举一个简单的例子:如果DataBox 容纳了1万个节点,其中有10个被用户选中,并进行了"删除"操作。

如果没有选择容器,我们只能通过遍历这1万个节点来获得这10个数据进行删除,效率和方便性上都不够好。

而有了选择容器,则可以直接访问选择容器,将其中的10个节点删除即可,因为TWaver已经保证所有的选中节点都会出现在选择容器中。

通过选择容器,还可以通过API对选择状态进行控制。

3D的致命诱惑——TWaver 3D机房初探(工具使用篇)

3D的致命诱惑——TWaver 3D机房初探(工具使用篇)

打着IMAX 3D噱头的《阿凡达》在全球疯狂掠走了20亿美元的票房。

然而,一切还未结束。

在国内,冯小刚以同样的3D作品《唐山大地震》三天票房就轻松过亿,IMAX版本一票难求,其气势比《阿凡达》有过之而无不及。

人们为什么对这些电影趋之若鹜呢?说到底还是无法阻挡3D技术带来的震撼和冲击,是真正的“眼球经济”、全新的“用户体验”。

而在一日千里的软件行当,我们的3D技术虽然在游戏、工程制图等领域已经普及,但是在大多日常领域却并不多见。

而在更严肃一点的电信网络管理监控类的软件中则更是难得一见。

那么,如果在你的界面上呈现一个自由旋转、可交互的3D的机房监控界面(如下图),用户的感觉又会如何呢?不必惊讶。

看完这篇文章你就会知道,用TWaver做这类界面,只是分分钟的事。

什么是TWaver® 3D机房管理软件TWaver® 3D机房管理软件(以下简称“3D机房”)是用于管理电信运营商机房资源的软件平台,是赛瓦软件TWaver®产品家族中的一员。

3D机房通过集成设计环境(IDE)对电信行业各种机房资源进行设计、建模、存储,并以三维技术进行呈现和展示。

3D机房既是一个完善的电信机房资源管理工具,也是一个电信资源管理的二次开发平台和组件。

产品结构TWaver3D机房是一个C/S(客户端/服务器)结构的桌面应用程序,包括应用程序和数据库两部分。

功能包括2D机房设计器、3D机房呈现试图、数据转换与存储模块。

通过3D机房,用户可以方便快速的创建电信机房环境,并对各种机房资源进行管理和存储。

这些机房数据通过XML格式进行转换并存储在数据库中,可以为其他OSS软件系统(如网管系统、资源管理系统等)共享使用。

目标用户TWaver3D机房可以为广大电信运营商、设备制造商、软件开发商所使用。

尤其在以下几种情况下,TWaver3D机房将会带来更大的作用:∙电信网管软件开发者:将TWaver3D机房作为二次开发平台,开发符合自身需要的机房资源管理软件系统;∙系统集成商:可将TWaver3D机房与现有软件系统整合,提供完整的机房资源管理能力;∙TWaver开发者:将TWaver3D机房作为呈现组件,对各种机房资源进行三维展示;∙电信运营商:直接使用TWaver3D机房,管理现有机房资源;使用编辑器TWaver3D机房提供了一个可视化的编辑工具,用来在一个IDE环境下对机房进行创建、建模、贴图、布置、保存等工作。

TWaver图形界面之道

TWaver图形界面之道

TWaver图形界面之道作者序最早我按TWaver的功能点拟定了提纲,在完成第一章后,遇到了两个问题:是写整个TWaver还是只介绍TWaver Java?与开发手册和培训文档的内容是否重复了?于是我停下来思考,这本书究竟应该说点什么?如果只是TWaver的使用,看我们的开发手册,参加我们的培训会更合适,我希望说点特别的东西,更有价值的东西,不只是为TWaver用户,更包括所有从事GUI开发的人和团队,提供对产品设计有借鉴意义的内容,于是我修改了提纲,精简了TWaver功能点的内容,增加了更多TWaver设计思想与产品进化的历史,结合当下各种GUI技术,讨论其设计理念与发展趋势,这会使得本书的完成更富挑战性,原本只需要按部就班填充内容的,现在需要创造力和思考,但一切也变得更有意义。

回过头来看前面的两个问题,本书将对TWaver整体介绍,覆盖各个产品分支,简化组件使用的细节,增加更多GUI扩展技术的讨论。

Sam Sha–2011年10月8日星期六下面是拟定目录,共二十一篇,陆续发布目录TWaver介绍 (1)TWaver是什么? (2)TWaver产品家族 (8)TWaver如何获取 (12)TWaver基础 (17)Hello TWaver (17)TWaver介绍TWaver是一款图形界面组件产品,电信行业的朋友用它开发网管图形界面,非电信行业的用它制作的表格,指标图表,流程图。

TWaver让界面开发变得简单,几行代码就可以实现组件与数据的绑定,组件与组件间的同步交互。

TWaver提供多种界面组件,支持多种编程语言,这意味着无论你使用Java,.NET,Flex,还是JavaScript,都可以选择TWaver 作为图形界面的解决方案。

TWaver的图形组件TWaver最核心的组件是的拓扑图,以图形化的方式直观展示各种设备、线路甚至逻辑元素的分布和状态,具有着丰富的表现形式:气泡信息,染色和边框,告警渲染,动画效果等等。

twaver 矩形

twaver 矩形

twaver 矩形Twaver矩形:网络拓扑图中的重要组件在网络拓扑图中,Twaver矩形是一种重要的组件,它可以用来表示网络设备、服务器、交换机等物理设备。

Twaver矩形可以根据设备的状态,自动显示不同的颜色,从而实现实时监控和告警功能。

本文将对Twaver矩形的特点、使用方法和应用场景进行介绍。

一、Twaver矩形的特点1.自适应大小:Twaver矩形可以根据设备的大小自适应调整矩形的大小,从而更好的适应不同的网络拓扑图。

2.多种状态:Twaver矩形可以根据设备的状态自动切换不同的颜色,比如绿色代表正常,红色代表异常,黄色代表警告等。

3.可定制性:Twaver矩形可以根据用户的需求进行定制,比如可以更改颜色、边框样式、文字大小等。

二、Twaver矩形的使用方法1.添加Twaver矩形:在Twaver控件库中选择矩形组件,拖拽到网络拓扑图中即可添加。

2.设置属性:在矩形属性界面中,可以设置矩形的大小、颜色、边框样式、文字大小等。

3.绑定数据:Twaver矩形可以通过数据模型来绑定数据,从而实现自动切换颜色和文字等功能。

三、Twaver矩形的应用场景1.网络拓扑图:在网络拓扑图中,Twaver矩形可以用来表示网络设备、服务器、交换机等物理设备。

2.监控系统:在监控系统中,Twaver矩形可以根据设备的状态自动切换颜色,从而实现实时监控和告警功能。

3.数据可视化:在数据可视化中,Twaver矩形可以用来表示数据的大小和比例,比如用不同颜色的矩形表示不同范围的数据。

Twaver矩形是一种非常有用的组件,在网络拓扑图、监控系统和数据可视化等领域都有广泛的应用。

掌握Twaver矩形的使用方法和应用场景,可以帮助我们更好的实现网络可视化和监控功能。

力科示波器WaveSurfer基本操作

力科示波器WaveSurfer基本操作
输出图片的保存路径输出图片的缩图回到目录第22页保存测试结果的图片在示波器前面板上按键即可保存示波器屏幕的图片在示波器软件中保存示波器图片回到目录第23页打印图片的文件名如上页所示按print按钮后屏幕左下角会提示图片已保存继续按print按钮保存的图片的文件名后缀数字会自动增加转到windows界面中可以浏览保存的图片回到目录第24页保存和调用测试波形的数据回到目录第25页step1
游标测量结果
使用其他游标
第39页
回到目录
面板控制游标
第40页
The End!
第41页
通道设置
或者点击Vertical->Channel1 Setup…设置通道1
点击即可直接设置通道1的多 种设置
第5页
回到目录
可以限制通道带宽 点击Variable Gain后可以微调 垂直刻度 通道1的垂直设置菜单
第6页
回到目录
可以调节Deskew数值校准两 个通道之间的skew,测量时序 时可能会用到此功能 通道1的垂直设置菜单
Step2:选择输出文件的格式 打印图片的设置界面 Step3:设置图片的颜色,三种 颜色:彩色黑底/彩色白底/单色 Step4:打印图片的区域选择
Step1:打印图片到文件
第20页
回到目录
设置图片的路径和文件名
输出图片的缩图 Step1:编辑输出图片的文件名 打印图片的设置界面
Step2:输出图片的保存路径
WaveSurfer示波器的基本操作
Step by Step
第1页
目录
垂直功能设置 触发设置 水平设置 示波器存档功能
怎样保存测试结果的图片 怎样保存和调用测试波形的数据 怎样保存和调用示波器的设置
测量参数设置 其他功能

TWaver 3D 编辑器的使用(一)----设计3D场景以及数据绑定

TWaver 3D 编辑器的使用(一)----设计3D场景以及数据绑定

TWaver提供了一套3D场景的开发包,用来帮助用户快速搭建3D场景,实现3D 的监控系统。

这个开发包目前商推的只有Flex框架下的版本,被称为TWaver3D for Flex。

开发包提供简单的API,用户向TWaver的数据对象(例如Node)中设定相关的3D style,就可以构建出一套3D场景。

(详细的使用方式请参考产品包中的为了简化用户使用代码搭建3D场景的复杂度,TWaver还提供了一个可视化的编辑工具,用于帮助用户编辑3D场景,然后将场景转换为可读的xml文件。

需要再现场景的时候,用户只需要将这份图纸载入系统,实现所见即所得的目的。

用户加载完图纸后,就可以根据设计图纸的时候设定的数据绑定关系,实现实时系统监控信息的绑定。

ps:Editor这个工具采用了Flex的module机制,允许用户将预定义的3D模型资源打包成module,然后通过Editor进行动态加载到编辑环境中(扩展动态模块的话题我们下章细聊)。

预定义的模型加载进来之后,我们就可以着手设计我们的3D场景了。

Editor目前采用的是2D方式编辑,3D场景展现的方式。

例如我们现在建立一个小房间,房间内设置一个机柜。

我们将其另存成名为common.xml的图纸。

图纸片段如下<datatype='twaver.Element'ref='7'id='EF576749-1DD2-39D0-7FFD-0B7B913ABCF8'>< sn='physical.size.t3d'x='60'y='120'z='60'/>< sn='mon.path.t3d'>XZRack3D1</s>< sn='mapping.type.t3d'>map6</s>< sn='scene.location.t3d'x='-148.5'y='60'z='117.5'/>< sn='both.sides.visible.t3d'>true</s>< cn='itemid'>XZ1</c>< cn='bid'>custom1</c>< /data>有了这份图纸我们就可以在监控系统载入的时候,将图纸载入系统,直接呈现3D场景了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TWaver基本编程2Element的选中机制所有的Element数据都可以被选中。

选中状态是Element的重要状态之一,它在实现人机交互过程中非常常用。

理解和使用Element选择,对于熟练掌握TWaver开发具有重要意义。

使用选择状态所有TWaver的Element都有一个选中状态。

要么选中,要么没选中,它是一个boolean值。

可以使用函数isSelected/setSelected进行获取或设置。

一个对象处于选中状态时,其外观会有一定的变化,对于不同的组件,这种变化也有所不同。

例如,对于拓扑图组件来说,选中的数据会显示一个高亮外框,而对于树来说,选中数据会有一个高亮的背景框。

如下图。

实际上,这些默认的外观和行为都可以被定制和修改。

后续章节我们将讲述这些用法。

使用选择容器Selection ModelSelection Model可以成为选择容器,是一个DataBox附属的一个容器,它维护着DataBox中所有的被选中的数据对象的引用。

DataBox作为一个大容器,它负责所有容纳其中数据的管理。

但是,为了让管理职责更加清晰和明确、易于使用,DataBox还拆分出一些附属的、相对独立的小容器,分管不同的任务。

选择容器Selection Model就是其中一个,专门负责管理数据的选中状态。

其实,Element已经有了boolean值标识选中状态,那为何DataBox还要设置选择容器进行选中状态的管理呢?主要是为了开发者使用更加方便。

举一个简单的例子:如果DataBox 容纳了1万个节点,其中有10个被用户选中,并进行了"删除"操作。

如果没有选择容器,我们只能通过遍历这1万个节点来获得这10个数据进行删除,效率和方便性上都不够好。

而有了选择容器,则可以直接访问选择容器,将其中的10个节点删除即可,因为TWaver已经保证所有的选中节点都会出现在选择容器中。

通过选择容器,还可以通过API对选择状态进行控制。

例如,将数据加入选择容器会造成数据被选中;清空选择容器,会取消所有数据的选中状态,等等。

当然,选择容器仅仅负责选择状态的管理。

无论对这个容器怎么增、删、改操作,它仅仅影响数据的选中状态,而不会影响数据的其他属性,更不会导致数据从DataBox中被删除等行为。

使用选择监听器选择监听器的作用是:用于监测数据的选择状态的变化。

首先解释一下什么是监听器。

如果读者熟悉Swing编程,可以从中看到大量使用监听器进行设计的例子。

例如监听按钮被按下的动作是使用ActionListener,下拉框被修改是使用ChangeListener等等。

同样,TWaver中的选择监听器SelectionListener的道理和用法类似,就是监听DataBox中数据的选中变化。

其次解释一下为什么要监听选择的变化。

根据实际应用场景的不同,其具体需求可能不同,但是监听选中的变化作用还是比较大的。

例如,当用户在屏幕上对拓扑图上的一些节点进行选中,我们希望把所有选中数据的名字动态显示在窗口底部的提示栏上。

此时,就可以加装选择监听器,并对事件进行处理。

下面的例子中,我们创建了一个新的选择监听器,当任何一个Element的选择状态发生变化时,我们都打印一个字符串,表示监听到了:DataBoxSelectionListener l =new DataBoxSelectionAdapter(){ public void selectionChanged(DataBoxSelectionEvent e) { System.out.println("selection changed.");};};TDataBox box=new TDataBox();box.getSelectionModel().addDataBoxSelectionListener (l);//add more code here...使用交互进行选择控制拓扑图提供了很多内置的交互模式,便于用户对数据进行选择操作。

这样,我们可以通过API、鼠标或键盘等多种途径对数据选择进行控制。

设备操作效果鼠标点击一个Element 选择Element 拓扑图拖拽矩形区域(左上到右下)选中所有完全落入矩形区域内部的Element 拓扑图拖拽矩形区域(右下到左上)选中所有完全和非完全落入矩形区域内部的Element 键盘+鼠标Ctrl键+鼠标点击Element 设置或取消该Element的选中状态Ctrl键+鼠标拖拽矩形框设置或取消该矩形框内所有Element的选中状态定制交互TWaver拓扑图提供了大量的默认的交互模式。

例如拖拽模式、编辑模式、创建连线模式等等。

如果这些模式依旧无法满足要求,可以通过扩展新的交互模式来解决。

新的交互模式可以自定义鼠标、键盘等各种事件的具体行为,为用户提供更加丰富的交互方法。

交互模式的定制是TWaver比较难的部分,后续章节我们将对此进行详细介绍。

设置右键菜单右键菜单也成为弹出菜单,本章介绍如何在拓扑图以及其他图形组件中使用右键菜单。

右键菜单是一个非常常用的交互方法,通过对数据进行选择、右键菜单,可以快速调出上下文有关的操作选项,为软件使用者提供直观的交互方法。

TWaver中,我们使用一个叫做弹出菜单生成器(PopupMenuGenerator)的接口,来制作各种不同的右键菜单。

更多关于使用右键菜单的例子,请见后续章节。

这里仅给出一个简单的例子,让读者了解弹出菜单是如何制作出来的。

菜单生成器是一个接口,被设置在拓扑图或其他图形组件上。

一旦设置,当鼠标右键点击图形组件时,TWaver就会回调这个接口获得右键菜单。

TWaver会将当前的一些操作场景传入,例如被点击的图形组件、鼠标事件等等。

我们要做的,就是根据这些信息,动态的生成需要的右键菜单,返回即可。

具体的菜单显示等细节,TWaver会帮我们完成。

以下弹出菜单的例子弹出一个菜单,把所有的选中的对象的名字用菜单项显示出来。

代码被封装在函数step4中。

private void step4() {//Create a popup menu generatorPopupMenuGenerator popupMenuGenerator = new PopupMenuGenerator() {/*** Add the identifier of each of the selected objects to the menu. * In this example, the items added to the menu do nothing.* In a real application, you would probably associate an* implementation of the Swing Action interface with each menu item.*/public JPopupMenu generate(TView tview, MouseEvent mouseEvent){//Create an empty pop-up menu.JPopupMenu popMenu = new JPopupMenu(); JMenuItem item;//If the selectedObjects collection is empty, no objects are selected.if (tview.getDataBox().getSelectionModel().isEmpty()) {popMenu.add("Nothing selected");} else {//Access the selected objects from the selection model.Iterator it =tview.getDataBox().getSelectionModel().selection();while (it.hasNext()) {Element element = (Element) it.next();popMenu.add(element.getName());}}//If menu is empty, return null.if (popMenu.getComponentCount() == 0) {return null;} else {return popMenu;}}};//Set the pop-up menu generator for network components network.setPopupMenuGenerator(popupMenuGenerator);}}注意:菜单生成器一旦创建,可以通过方法setPopupMenuGenerator应用在多个图形组件上。

例如,上述popupMenuGenerator可以被同时设置在tree上面或表格上面。

这样,无论在tree、table、拓扑图上,只要选中同样的数据,点击右键弹出的菜单将是完全一模一样的,而且我们无需编写多个菜单生成器。

添加鼠标和键盘动作拓扑图是Java Swing组件的扩展。

和其他Swing组件一样,在Network上添加鼠标、键盘动作是很容易的。

唯一需要注意的一点是,拓扑图并非一个简单JComponent那么简单,它由工具条、滚动窗、画布等部分组成。

所以,实际上我们一般添加动作都是针对画布的,而不是Network本身。

所以,要使用network.getCanvas()方法先获得画布对象。

然后,就可以像其他Swing组件那样添加各种监听器了。

为了演示,我们在例子中添加一个双击动作,弹出消息框显示被双击的数据对象。

这段代码被封装在函数step5中。

private void step5() {network.getCanvas().addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) {if (e.getClickCount() == 2) {//get the element the mouse clicked.Element element =network.getElementPhysicalAt(e.getPoint());String message;if (element == null) {message = "You clicked nothing.";} else {message = "You clicked '" + element.getName() + "'";}JOptionPane.showMessageDialog(network, message);}}});}运行程序如下图。

相关文档
最新文档