一款能通过使用AJAX技术在网页上显示动态实时图片的瘦客户端解决方案
标签:JavaAJAX工业4.0开发商: Generic Logic
当前版本: v4.0
产品类型:控件
产品功能:图表
平台语言:JAVA
开源水平:不提供源码
本产品的分类与介绍仅供参考,具体以商家网站介绍为准,如有疑问请来电 023-68661681 咨询。
4.0版本引入了新的HTML5和JavaScript Web部署选项,该选项使使用客户端JavaScript在Web浏览器中开发和部署GLG应用程序成为可能。使用提供的GLG JavaScript库,可以在Web环境中使用所有现有的GLG工程图,并且可以使用GLG JavaScript API在应用程序的Web版本中轻松重用已经为桌面应用程序开发的编程逻辑。
其他新功能包括:
新的GLG JavaScript库可用于在任何台式机或移动设备上的浏览器中的网页上部署GLG应用程序。JavaScript库使用纯HTML5和JavaScript,并提供相同的完整GLG API,该API以前仅适用于以C/C++,Java或C#编写的桌面应用程序。可以使用客户端JavaScript库将任何现有的GLG图形部署在网页上,该JavaScript库在HTML画布中呈现图形,使用实时数据更新图形并处理用户交互。
JavaScript库在HTML画布中呈现图形,使用实时数据更新图形并处理用户交互。除了符合JavaScript语法的更改之外,GLG JavaScript API与相应的C/C++,Java和C#GLG API相同,这不仅使图形可以重用,而且可以重用已经使用的编程逻辑。为桌面版本的应用程序开发。通过使用GLG Graphics Builder创建图形,然后使用HTML5和GLG JavaScript库将其部署在网页上,还可以从头开始开发新的Web应用程序。
JavaScript库支持所有主流浏览器,例如Chrome,Safari,Firefox和Microsoft Edge。它还提供了对移动和触摸屏设备的支持,因此同一应用程序可以部署在台式机或移动设备上。GLG工程图的可扩展性使其可以更轻松地将其部署到具有不同屏幕尺寸的设备上,以及使用响应式Web设计的网页上。API的SetCanvasScale方法提供了将绘图调整为具有不同像素比率的屏幕的功能,从而可以确保清晰的图形渲染并在小屏幕的移动设备上显示GLG绘图时自动增加文本对象的大小。该库同时支持鼠标和触摸事件。
以下链接提供了GLG JavaScript的文档: //www.genlogic.com/doc_html/javascript_doc/index.html
浏览标签、资源或对象属性时,此自省功能可提供视觉反馈。使用“选项”、“跟踪/突出显示”、“跟踪标签”、“资源和约束”菜单选项激活此功能后,它将突出显示图形中依赖于在标签浏览器中选择的标签,在资源浏览器中选择的资源或属性的所有对象。显示在“属性”对话框中。
此功能可与同一菜单的“标记为Mark0的跟踪属性约束”选项一起使用,该选项在取决于标记为Mark0的属性的属性对话框中突出显示属性。
选项、跟踪/突出显示菜单具有两个控制突出显示的选项:
如果未选中任何一个选项,则将突出显示被跟踪对象的最接近的可绘制父对象。
该功能在Graphics Builder和HMI Configurator中以及在应用程序运行时均可用。应用程序可以使用TraceObject API方法来突出显示图形中依赖于标签或资源的所有对象。
在内部,突出显示是通过可绘制对象的新HighlightFlag属性处理的,该属性也可以在程序中设置为突出显示或取消突出显示对象。
新的实时图表功能允许向图表添加自定义注释。批注可以包含文本标签和/或标记,并且可以在图表中指定的时间和值放置。滚动或缩放图表时,图表会自动保持注释的位置。
静态注释可用于将标签添加到水平线,并与工程图一起保存。X和Y方向上的注释位置可以定义为相应轴范围内的值,也可以定义为图表内的绝对位置。由绝对位置定义的注释不会随图表滚动。静态注释的数量由图表的NumAnnotations属性控制。
可以在运行时将动态注释添加到图表中,以使用AddAnnotation API方法对感兴趣的数据样本进行注释,在这种情况下,应在运行时将NumAnnotations属性设置为-1。图表管理动态注释,当图表滚动以显示新数据时,相应的数据样本从图表缓冲区中退出时,动态注释将被删除。
可以修改每个注释的颜色,文本字符串和其他属性,并与图形一起保存(对于静态注释)。可以根据应用程序数据或用户交互来动态更改任何注释属性。即使已将注释添加到图表中,也可以随时进行这些更改。例如,当用户用鼠标选择注释时,可以更改其颜色。
GLG中级API的新AddDataSample方法可用于用大量数据样本预填充历史图表。该方法不使用资源,而是将数据样本直接推送到图表的数据历史记录缓冲区中,当在Java,C#或JavaScript环境中用数十万个数据样本填充图表时,可以显着提高性能。
新的小部件包括汽车里程表和转速表,新的径向和线性仪表,以及带有附加设定指针或其他设定指示器的多个设定仪表。线性量规包括一个色条规,它使用不同的颜色来标注超出指定阈值的条形部分。
“调色板”菜单的新的“使小部件视口透明”选项可用于添加具有透明背景的刻度盘和量规。如果选中,则从调色板添加基于视口的窗口小部件会将其转换为使用具有透明背景的浅视口。如果未选中该选项,则使用背景不透明的视口对象。 以前,要使窗口小部件透明,必须将窗口小部件手动转换为具有透明背景的亮视口,这不太方便。 该选项在Graphics Builder和HMI Configurator中均可用。
使用此新选项,不再需要以前版本中提供的无窗口拨号小部件。它们在新版本中已弃用,并已从编辑器选项板中删除。如果仍需要它们以实现向后兼容,则可以通过取消注释/widgets/palettes.pls文件中的controls/windowless_dials.pal行来启用它们。
“手动小部件定位”选项也已从“选项”移至“调色板”菜单。
车速表
转速表
在新版本中,Java,C#和JavaScript API支持异步图像加载。以前,当最初显示包含图像的图形时,它在渲染图形之前等待所有图像完成加载(同步加载)。 从远程URL加载图像时可能会导致延迟。
在新版本中,应用程序可以控制图像是同步加载还是异步加载。它由GlgAsyncImageLoading全局配置资源全局控制,并且可以由单个图像对象的AsyncMode属性覆盖。
如果图像使用异步模式,并且在显示图形时尚未准备好图像数据,则将在不显示图像的情况下显示图形,并且在其数据可用时将显示图像。当具有异步模式的图像完成其数据加载时,它会向Input回调发送ImageLoad消息,以通知应用程序可能需要更新图形。可以查询图像对象的ImageLoaded属性,以确定图像是否准备好呈现。
默认情况下,GLG库的Java和C#版本使用同步图像加载模式。该库的JavaScript版本使用异步加载模式,这是JavaScript支持的唯一模式。
异步图像加载模式也可以用于GIS对象,该对象用于在GLG绘图中显示地图。异步加载地图时,在初始外观时,或者在缩放或平移地图时,在显示地图时不会显示地图,而在地图图像准备就绪时会显示地图。
GlgAsyncImageLoading全局配置资源控制图像和地图的加载模式,并且可以被GIS对象的AsyncMode属性覆盖。带有异步地图加载的GIS对象还会发送ImageLoad消息,以在新地图准备好时通知应用程序,并且GIS对象的ImageLoaded属性可用于查询新地图的状态。
下文所述的“异步GIS地图加载请求”可用于避免在处理缩放或平移请求时显示没有地图的工程图。
新的异步GIS地图加载请求功能使GIS应用程序可以更好地处理Java,C#和JavaScript环境中的地图缩放和平移。
此功能解决了处理地图缩放或平移操作的问题,该问题要求从服务器获取新的地图图像。在同步地图加载模式下,应用程序将冻结直到准备好新地图。在异步地图加载模式下,地图上的动态符号将立即以新地图缩放状态显示,但背景不会在背景中显示,而从服务器接收到新地图时就会出现。这两种模式都是不可取的,并且“异步GIS请求”功能提供了以下描述的解决方案。
异步GIS地图请求使应用程序可以向服务器发出缩放或平移地图请求,同时继续在旧地图状态下操作,直到准备好新地图为止。当新地图准备就绪时,显示将立即切换到新地图的缩放或平移状态。
使用此功能,将永远不会冻结应用程序等待新地图,也不会在后台没有地图的情况下显示该应用程序。这对于Java,C#和JavaScript应用程序尤其重要,因为它们使用基于Web的GLG Map Server,与C/C ++应用程序使用的嵌入式GLG Map Server相比,引入了与Web相关的延迟。
应用程序可以完全控制地图加载请求。当新地图准备就绪时,将通知应用程序,此时它可以决定安装新地图,或者如果它被另一个具有更高优先级的地图请求所取代,则将其丢弃。添加了以下中间API方法来请求和处理地图加载请求:
新的Min和Max转换选项已添加到Compare转换中,以从两个参数返回最小或最大值。Compare转换的其余选项比较其两个参数的值,并根据所选比较条件返回布尔值(0或1)。
新的WriteStringFromWidget命令已添加到命令操作列表中。它可用于根据用户输入来写入字符串(S)标记,并且类似于现有的写入Double(D)标记的WriteValueFromWidget命令。
GlgNList处理程序现在支持一个可选的InitSelectedIndex资源,该资源保存在图形中,并指定在初始外观时应选择的项目的从0开始的索引。如果未指定资源或将其设置为-1,则在最初绘制列表时将不会选择任何项目。
在保存图形时,可以使用“选项”菜单中“保存”选项上的新“将字符串转换为UTF8”选项将所有字符串属性(例如文本对象的TextString)从当前语言环境转换为UTF8。当在图形中使用Windows上的本地化字符串(将在Web上使用JavaScript时)时,这特别方便。JavaScript支持使用UTF8作为默认字符集的有限数量的字符集,而Windows不支持UTF8系统区域设置。“保存时将字符串转换为UTF8”选项提供了一种方便的方法,可以将图形保存到UTF8语言环境中,而无需使用外部转换器。
此外,“安排UTF8转换”菜单提供了一些选项,可将图形中的所有字符串从当前语言环境转换为UTF8,从UTF8转换为当前语言环境。这些选项可用于在保存之前验证转换后的图形。
转换选项将转换为S(字符串)类型的数据对象的属性字符串,而不转换不是GLG对象的字符串属性(例如对象和标记名)。
新的UnitsSeparator和SuffixSeparator参数已添加到“值显示”和“文本显示”预定义的转换中。新参数用于在值和尾随字符串之间提供空格或其他分隔符,而无需在尾随字符串中嵌入分隔符。
现在,可以通过在HMI Configurator中的视口或浅视口上单击Ctrl-Shift-单击来执行“设置焦点”操作。以前,此操作仅在“图形生成器”中启用。
当用户调整对话框大小以增加其高度时,“变换属性”对话框的布局策略已更改为显示更多属性。
所有支持的部署选项的扩展API中都添加了新的Flush方法。该方法将容器对象的大小设置为请求的大小。如果新大小小于容器大小,则将删除多余的元素。如果新大小较大,则会通过复制最后一个元素来添加元素。
容器可以是组、视口、多边形(作为点的容器)、样条线或连接器。如果未设置容器,则只能调用该方法。如果设置(绘制)了容器,则该方法必须被SuspendObject和ReleaseObject调用包围。
GlgIHGetCurrIH方法可用于获取当前活动的接口处理程序的ID。GlgIHGetPrevIH方法返回当前活动接口处理程序的父处理程序的ID。父处理程序是已安装处理程序堆栈中当前处理程序之前的处理程序。
Linux版本的工具包已移植到具有ARM8 64位体系结构的嵌入式板上,例如Jetson Nano。现在,GLG编辑器和GLG C/C ++应用程序都可以在ARMv8 AArch64嵌入式板上本地运行。
在以前的版本中,仅支持32位ARM6和ARM7嵌入式板,例如Raspberry Pi和BeagleBone。
更改了GLG运行时引擎的Java版本,以按对象的AntiAliasing属性控制,按对象处理抗锯齿。这使其与其他编程环境(C/C ++,C#和JavaScript)的其余GLG运行时引擎兼容。以前,AntiAliasing在Java中被忽略,而抗锯齿由GlgAntiAliasing全局配置资源全局控制。在新版本中,默认情况下,GlgAntiAliasing设置为-1,以使对象的AntiAliasing属性控制抗锯齿渲染。如果将GlgAntiAliasing设置为0,则将禁用抗锯齿。
新的GlgURLTimeout全局配置资源已添加到GLG库的Java和C#版本。当应用程序在继续渲染图形之前,等待应用程序等待图像或GIS地图完成加载时,新资源指定以同步加载模式加载图像和GIS地图的超时(以秒为单位)。如果未在指定的超时时间内加载图像或地图,则将终止图像或地图的加载,并且在生成错误消息后,应用程序将继续运行。图像或GIS对象的ImageLoaded属性可用于查询其加载状态。
SetTag和SetResourceIf方法的if_changed参数用于优化更新性能。如果将其设置为True,则仅当资源或标记值已更改时才会更新图形。使用标签提供数据时,通常使用if_changed=True。
即使数据值未更改,某些资源(例如用于将数据推入图表中的图表入口点)也需要更新,因为即使绘图值不会随时间变化,图表也必须滚动。如果使用标签将数据推入图表的入口点,则应将if_changed参数设置为False。
在以前的版本中,应用程序开发人员必须编写代码以根据将值压入图表还是其他对象来有条件地设置if_changed标志。在新版本中,它将自动处理,而忽略图表入口点的if_changed参数。
数据对象的新AlwaysChanged属性在内部用于处理图表入口点。设置工程图后,对于用作图表入口点的数据对象,该属性设置为True。将数据推入对应于图表入口点的标记中时,无论SetTag方法的if_changed参数设置如何,都将更新图形。
可以通过GLG API查询该属性,以查明资源或标签是否是图表入口点。
Java,C#和JavaScript标准API中现在提供了SetResourceObject方法,用于设置作为对象的全局配置资源,例如默认字体表对象或默认滚动条。
需要扩展API才能将此方法用于全局配置资源以外的资源。
添加了两个新的全局配置资源以帮助在没有鼠标的情况下在触摸屏设备上进行部署:GlgDisableMouseButtonCheck和GlgDisableControlKeyCheck。这两种资源都会禁用没有鼠标就无法在触摸屏设备上使用的操作条件。
可以将GlgDisableMouseButtonCheck资源设置为true以禁用鼠标按钮检查,以便所有配置为在鼠标右键单击上执行的动作都可以更改为在触摸动作上执行,该动作作为鼠标左键单击处理。
可以将GlgDisableControlKeyCheck资源设置为true,以禁用对配置为在使用键盘的设备上按Ctrl键单击时激活的操作的“控制键修改器”检查。当在没有外部键盘的触摸屏设备上将此资源设置为true时,将在触摸时激活这些操作,而无需进行Control键检查。
在以前的GLG版本中,将Linux上的C/C ++ GLG OpenGL驱动程序配置为在未正确配置硬件OpenGL驱动程序时自动切换到软件OpenGL。在较新的Linux版本中,对OpenGL库的更改导致错误地触发了这种情况,即使在某些系统上正确设置了图形卡,也会导致切换到软件OpenGL。
在新版本中,禁用了在GLG OpenGL驱动程序中自动切换到软件OpenGL的功能,以便在可用时正确使用硬件加速的OpenGL。如果硬件OpenGL不可用,驱动程序仍将切换到软件OpenGL。如果硬件OpenGL可用,但系统OpenGL有问题,则可以通过使用-glg-disable-hardware-opengl命令行选项禁用硬件OpenGL或通过将GLG_DISABLE_HARDWARE_OPENGL环境变量设置为True来强制使用软件OpenGL。
在新版本中修复了以下错误:
更新时间:2018-02-28 17:01:26.000 | 录入时间:2008-09-11 13:41:21.000 | 责任编辑:何家巧