SDK使用说明
- 格式:doc
- 大小:904.00 KB
- 文档页数:8
T5longan linux SDK 开发环境配置手册V1.3Revision HistoryVersion Date Author Changes compared to previous issue V0.12019-12-17吴松睿初建版本V0.22020-4-2袁国超添加编译、QT、工具链、测试等章节V0.32020-5-9xufang补充rootfs工具说明V1.02020-5-10袁国超添加auto sdk等章节V1.12020-7-4袁国超添加显示配置V1.22021-12-3KPA0501增加T507-H/T517-H的编译说明V1.32022-04-28KPA0501更新-H系列编译说明目录1.概述 (6)2.目录结构 (7)2.1.buildroot (7)2.2.kernel (8)2.3.brandy (8)2.4.platform (8)2.5.tools (9)2.6.test系统dragonboard (9)2.7.device (10)3.开发环境配置 (12)3.1.Linux服务器开发环境搭建 (12)3.1.1.硬件配置 (12)3.1.2.系统版本 (12)3.1.3.网络环境 (13)3.1.4.软件包 (13)3.2.Windows PC环境搭建 (13)3.2.1.开发工具安装 (13)3.2.2.开发板驱动安装 (14)3.2.3.烧录软件安装 (14)3.3.开发板介绍 (15)3.3.1.使用准备 (16)3.3.2.开发板供电 (16)3.3.3.串口连接 (16)B调试连接 (17)3.3.5.摄像头硬件连接 (17)4.编译代码和打包固件 (18)4.1.编译基础 (18)4.1.1.基本编译命令 (18)4.1.2.编译选项 (18)4.1.3.扩展编译命令 (19)4.2.编译示例 (20)4.2.1.配置环境 (20)4.2.2.T5auto编译详解 (21)4.2.3.T5Qt编译详解 (22)4.3.工具链简介 (22)4.3.1.Kernel工具链 (23)4.3.2.Buildroot工具链 (23)4.3.3.Dragonboard工具链 (23)5.固件烧写 (24)B烧录 (24)5.1.1.运行PhoenixSuit (24)5.1.2.连接设备 (24)5.1.3.选择img文件 (25)5.1.4.开始烧录 (25)5.2.SD卡烧录 (27)5.2.1.制作升级卡 (27)5.2.2.插入平台上电升级 (27)6.系统调试 (28)6.1.串口登录命令行 (28)6.2.连接成功后,在串口终端回车即可。
Release NotesPC SDK5.15Revision: -Table of Contents The information in this manual is subject to change without notice and should not be construed as acommitment by ABB. ABB assumes no responsibility for any errors that may appear in this manual.Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific purpose or the like.In no event shall ABB be liable for incidental or consequential damages arising from use of this manual and products described herein.This manual and parts thereof must not be reproduced or copied without ABB's written permission, and contents thereof must not be imparted to a third party nor be used for any unauthorized purpose. Contravention will be prosecuted.Additional copies of this document may be obtained from ABB at its then current charge.© Copyright 2012 ABB All rights reserved.ABB ABRobotics ProductsSE-721 68 VästeråsSweden© Copyright 2012 ABB All rights reserved 2ContentsOverview 5 1 Release Information 61.1 General 61.2 Contents 62 What’s New in this Release? 72.1 Robot Communication on Developer Center 73 Late-breaking information 83.1 Overview 84 Problems Corrected 94.1 Solved Product Defect Documents (PDD) since PC SDK5.14.03 95 Known Limitations 106 Installation Information 126.1 Hardware and Software requirements 136.2 Compatibility 147 Technical Support 15OverviewDescriptionThis document provides information about the new features, problems corrected, andinstallation of PC SDK.Product OverviewPC SDK can be used to develop customized PC applications, for communication withthe IRC5 controller.It can also be used to develop RobotStudio add-ins that interacts with the IRC5controller.PC SDK applications can connects to one or several IRC5 controllers, real as well asvirtual.No license is required to develop applications using PC SDK.The option “PC Interface” is required to allow PC SDK applications to connect to theIRC5 controller over LAN network.For download, updates and information, visit the RobotStudio Community:/roboticssoftware.To get started, or to learn more, visit our Developer Center:Here you will also find the User Forum, where developers discuss software problemsand solutions online:/forum1 Release Information1.1 GeneralRelease NameThe release name is PC SDK 5.15 and the build number is 5.15. 0261.Release DateThe release date is 12th of October, 2012.1.2 Contents.NET AssembliesABB.Robotics.dllABB.Robotics.Controllers.dllRedistributablesABBControllerAPI.msmRobot Communication Runtime installerDocumentationReference Manual – PC SDK (Html Help). Documentation of class libraries with methodsignatures in C# and Visual Basic.Application Manual – PC SDK (Html Help and PDF).After installation the documentation can be launched from the Windows Start MenuPrograms\ABB Industrial IT\Robotics IT\Robot Studio 5.15\SDK.The manuals and additional samples are also available at.2 What’s New in this Release?OverviewThis section contains information about new features in this release.2.1 Robot Communication on Developer CenterYou can now access the PC SDK Application and Reference Manual from.To help you get started you will also find complete walk-through projects for download.3 Late-breaking information3.1 OverviewThis section contains late-breaking information that will be included in the appropriatedocuments in the subsequent releases.Nothing in this release.4 Problems CorrectedOverviewThis section describes the problems solved in PC SDK.4.1 Solved Product Defect Documents (PDD) since PC SDK5.14.03ID Title- Controller.IOSystem.GetSignals performancedegraded in 5.14.03PDD308 Old PC SDK Apps not working with/against RW5.14.025 Known LimitationsOverviewThis section describes known limitations in PC SDK.*Value of RAPID data exeeding 1024 bytes cannot be retrievedIt is not possible to retrieve a value of a RAPID data exceeding 1024 bytes.An instance of a large RECORD may exeed this limition, as well as an array of suchrecords, for example.Workaround 1: Make your data smaller in size, for example by using two smaller records with less elements in each, instead of one large record with lots of elements.Workaround 2: Do not retrieve the entire value of a RAPID array. Instead retrieve thevalue element by element. Prefer using RapidData.ReadItem(i), over ArrayData[i].PC SDK UIInstructionEvent / RAPID UIListViewUIListViewEventArgs.ListItems may return the wrong number of list items if - if youare using characters like double quote (“) and brackets ([ ]) in the RAPID array of listitem strings, theAvoid using double quote (“) and brackets ([ ]).FlexPendant may lock up when PC SDK application release and immedeatley request mastershipIn manual mode, when a PC SDK application releases master and immediatelyrequests master again, the FlexPendant is locked up when the user presses theprompt to grant write access to the PC SDK application. In automatic mode there isno problem.IPC Messaging - PC SDK always sends 444 bytes of dataWhen sending a message with IpcQueue.Send(), the size of the message sentover the network will be 444 bytes, regardless of the amount of data passed toSend(). Data must therefore be null terminated.IPC Messaging requires MTA threadIpcQueue.Send() must be called from an MTA thread. Create a separate senderthread and use the method Thread.SetApartmentState() to set the apartmentstate to MTA before starting it.IsLocal on the class RapidData, returns true for shared dataThe property IsLocal on the class RapidData, returns true for shared data, eventhough such data is visible from all modules.The declarations of default zonedata and speeddata has been moved from moduleBASE.SYS in each task, and are now installed as shared data.If an application used to create a RapidData object representing for example"v1000", the IsLocal property returned false in RobotWare 5.12, but will return truein RobotWare 5.13."6 Installation InformationOverviewTo install PC SDK click RobotStudio on the RobotWare & RobotStudio DVD.If you select the default installation option Complete, PC SDK will be installed. If youwant to install only PC SDK and not RobotStudio select the installation option Custom.PC SDK 5.xx will be installed side by side with any previous major version of PC SDK5.xx, while minor versions within a release will update to the latest one.Microsoft Visual Studio development environment is used to develop PC SDKapplications.Refer to chapter 6.1 for a list of supported versions of Visual Studio.The default installation path is C:\Program Files\ABB Industrial IT\Robotics IT\SDK\PCSDK 5.15.6.1 Hardware and Software requirementsSoftware requirementsPC software requirementsOperating SystemsMicrosoft Windows XP SP3 – 32bit editionMicrosoft Windows 7 – 32bit editionMicrosoft Windows 7 – 64bit editionMicrosoft Windows 8 – 64 bit editionRobot Communication RuntimePC SDK applications requires Robot Communications Runtime to be installed on thePC. The runtime is installed by RobotStudio installation, and can also be installedseparately from C:\Program Files\ABB Industrial IT\Robotics IT\SDK\PC SDK5.15.xx\redistributable\RobotCommunicationRuntime after you have installed PC SDK.Redistributables for earlier versions of PC SDK can be found onRobotStudioRobotStudio 5.15 is needed for building virtual controller systems and fordebugging and testing in the virtual environment.Please see /forum for more information.IRC5 software requirements- RobotWare option "PC Interface" for communication with IRC5 controller.Supported development environmentsMicrosoft Visual Studio 2008Express edition or better.Microsoft Visual Studio 2010Express edition or better.Microsoft Visual Studio 2012Express edition or better.6.2 CompatibilityThe APIs in PC SDK 5.15.xx are backwards compatible with the APIs in PC SDK5.14.There are no breaking changes.PC SDK communicates with the robot controller using the Robot CommunicationRuntime, which is designed to be backwards compatible with earlier versions ofRobotWare.Note! Functionality introduced in later versions of RobotWare will not be available for aPC SDK application that is connected to a controller with an older version ofRobotWare.For example the Messaging functionality is only supported on RobotWare 5.10 andabove. This means that a PC SDK application cannot use the Ipc class whencommunicating with a controller with RobotWare 5.09.The code will compile, but an exception will be thrown at runtime. Applicationdevelopers are responsible for handling this scenario in their applications. Please referto the PC SDK Reference Documentation for details.Note! Compatibility between RobotWare minor revisions is guaranteed (PC SDK5.15.01 will be compatible with PC SDK/RW 5.15.02 etc)..7 Technical SupportFor technical support please turn to your local ABB office./contactsFor help, advice and the latest updates please visit the User Forum./forum。
Android_SDK_V2.0使用说明1.Android_SDK_V2.0简介Android SDK以Jar包形式提供,封装了QQ登录的登录授权以及大部分OpenAPI 和社交渠道的分享、邀请、请求礼物、挑战炫耀、语音、评价等API,移动应用只需要修改少量代码,即可快速实现QQ登录功能,并可调用平台提供的OpenAPI及社交渠道API 的功能。
Android平台上的应用,要使用QQ互联平台提供的Android SDK,请先在QQ互联平台进行注册,获取appid和appkey。
SDK主要提供的功能接口有:登录、注销、邀请好友、应用分享、获取用户信息、获取用户相册列表、发送分享、发表说说、发表微博、上传图片、创建相册、设置QQ头像、增量授权、分享消息给QQ好友(图文消息,纯图片和音乐)、发送语音等功能,Android_SDK_V2.0新增了发表语音,分享到QQ空间等新功能。
详细内容可参考《接口调用说明》。
更多详细信息请查看API列表。
2.下载Android SDK请到SDK下载页面下载Android SDK和示例代码。
3.创建工程及引用SDK源码文件以下以eclipse为开发的IDE进行范例说明:Eclipse ADT ADT 17 以上版本用户,请在工程目录下新建一个文件夹libs,将open-sdk.jar文件和mta_sdk_x.x.x.jar文件拷贝到这个文件夹下,然后在Eclipse里面刷新工程即可完成SDK文件的引入。
1.7以下版本的用户请参考下面的步骤引入SDK文件:(1)创建一个工程,并把open-sdk.jar文件和mta_sdk_x.x.x.jar文件拷贝到libs(或lib)目录下,如下图所示:(2)将open-sdk.jar加入编译路径中。
具体的操作步骤为:选中open-sdk.jar,右键菜单中选择Build Path,选择Add to Build Path,如下图所示:(3)将mta_sdk_x.x.x.jar加入编译路径中。
acrobat sdk 接口说明Acrobat SDK是一个强大的工具包,它可以提供PDF文档的编辑和操作功能,例如将页面进行旋转、添加文本、创建表格等。
在这个工具包中,API是一个重要的部分,因为它使得开发者能够轻松地使用Acrobat SDK来实现自己所需要的功能。
因此,在这篇文章中,我们将围绕着Acrobat SDK的API来进行阐述,帮助您更好地理解和使用它。
步骤一:选择开发环境首先,要想使用Acrobat SDK,您需要选择一个适合自己的开发环境。
Acrobat SDK支持多种编程语言,例如C++,Java,C#等等。
同时它也支持很多的操作系统,例如Windows、macOS、Linux等等。
因此,您可以根据自己的开发需求来选择合适的编程语言和操作系统。
如果您是一个新手,建议选择比较容易上手的编程语言来开发,例如Python或Java。
步骤二:安装Acrobat SDK安装Acrobat SDK非常简单。
首先,您需要到Adobe官网下载Acrobat SDK并且进行安装。
在安装之前,您需要确定安装的版本和适用的操作系统。
如果您选择的是Windows操作系统,需要先确认您的Windows是32位还是64位版本。
另外,如果您的操作系统是macOS或Linux,需要确认您已经安装了对应的开发环境。
一旦安装完成之后,您就可以开始使用Acrobat SDK来进行开发工作了。
步骤三:使用Acrobat SDK APIAcrobat SDK提供了很多的API,这些API可以用来进行PDF文档的编辑和操作。
例如,您可以使用API来打开一个PDF文档、将文档保存为另一个格式、创建一个新的页面、添加文本、旋转页面等等。
这些API的用法非常简单,只需要按照Acrobat SDK的API文档说明进行调用即可。
当然,在使用这些API的时候,您需要进行一些必要的参数设置和错误处理,以确保您的开发工作不会出现问题。
FMU SDK 2.0.6The FMU SDK is a free software development kit provided by Synopsys. The FMU SDK demonstrates basic use of Functional Mockup Units (FMUs) as defined by the following specifications •Functional Mock-up Interface for Model Exchange and Co-Simulation 2.0 (July 25, 2014)•Functional Mock-up Interface for Model Exchange 1.0 (January 26, 2010)•Functional Mock-up Interface for Co-Simulation 1.0 (October 12, 2010)The FMI specifications are available from here. The FMU SDK can also serve as starting point for developing applications that create or process FMUs.For each of the supported FMI versions (currently 1.0 and 2.0), the FMU SDK contains the C sources for various discrete and continuous FMU models, a batch file for compiling and zip'ing these models, an XML parser for parsing the model description of an FMU and two simple simulation programs that run a given FMU and output the result as CSV file.For bug reports, questions or comments regarding the FMU SDK, please mail to ***********************. Questions or comments regarding the FMU specification should be sent to info@.Table of Contents•Building and Installing the FMU SDK•Simulating an FMU•Creating your own FMUs•FMU SDK Revision history•License conditionsInstalling the FMU SDKThe FMU SDK runs on all 32 bit and 64 bit Windows platforms, Linux and Mac OS X platforms. Unzip the file in a directory where you have write access. That directory is called FMUSDK_HOME below and may contain white space, such as in "C:\Program Files\fmusdk". The FMU SDK contains only the C sources of the FMUs and the simulators, not the executables, and should compile on all Windows, Linux and Mac OS X platforms.To build Windows 32 bit versions of all FMUs and simulators of the FMU SDK, double click on FMUSDK_HOME\install.bat. This should create fmus in FMUSDK_HOME\fmu10\fmu andFMUSDK_HOME\fmu20\fmu, as well as four simulators in FMUSDK_HOME\fmu10\bin and FMUSDK_HOME\fmu20\bin.To build Windows 64 bit versions of all FMUs and simulators, open a command shell and run "install -win64". This creates additional fmus in the x64 subdirectories in FMUSDK_HOME\fmu10\fmu and FMUSDK_HOME\fmu20\fmu, as well as additional simulators in FMUSDK_HOME\fmu10\bin\x64 andFMUSDK_HOME\fmu20\bin\x64. Building these 64 bit versions works also on 32 bit Windows platforms. Execution of the 64 bit simulators and fmus requires however a 64 bit version of Windows. Compilation using install.bat requires that you have installed one of Microsoft Visual Studio 2005 (VS8), 2008 (VS9), 2010 (VS10), 2012 (VS11), 2013 (VS12) or 2015 (VS14), for example the free Express Edition. To compile with another compiler, adapt the batch files.To build Linux or Mac OS X binaries of all FMUs and simulators, open command shell and run "make". The build requires that you have installed the C and C++ compilers, libexpat and libxml2 libraries. To install these dependencies on Linux you can use a package manager like "sudo apt install g++", "sudo apt install libexpat1-dev", "sudo apt install libxml2-dev".Simulating an FMUOn Windows, to run a given FMU with one of the FMU simulators, open a command shell in directory FMUSDK_HOME and run the command fmusimfmusim simulator model.fmu [tEnd [h [loggingOn [csvSeparator]]]] [-win64]simulator ..... cs10 or cs20 for co-simulation, me10 or me20 for model exchange, requiredmodel.fmu ..... path to FMU, relative to current dir or absolute, required tEnd .......... end time of simulation, optional, defaults to 1.0 sech ............. step size of simulation, optional, defaults to 0.1 secloggingOn ..... 1 to activate logging, optional, defaults to 0csvSeparator .. c for comma, s for semicolon, optional, defaults to c-win64 ........ to use a 64 bit simulator. By default, the 32 bit version is usedThis unzips the given FMU, parses the contained modelDescription.xml file, simulates the FMU from t=0 to t=tEnd, and writes the solution to file 'result.csv'. The file is written in CSV format (comma-separated values), using ';' to separate columns and using ',' instead of '.' as decimal dot to print floating-point numbers. To change the result file format, use the 'csv separator' option. The logging option activates logging of the simulated FMU. The FMI specification does not specify, what exactly to log in this case. However, when logging is switched on, the sample FMUs of the FMU SDK log every single FMU function call. Moreover, the fmusim simulators log every step and every event that is detected. Example command:> fmusim me10 fmu10/fmu/me/bouncingBall.fmu 5 0.1 0 sFMU Simulator: run 'fmu/bouncingBall.fmu' from t=0..5 with step size h=0.1, loggingOn=0, csv separator=';'Simulation from 0 to 5 terminated successfulsteps (51)fixed step size .. 0.1time events 0state events (14)step events 0CSV file 'result.csv' writtenOn Linux and Mac OS X get inspired by run_all target inside FMUSDK_HOME\makefile.To plot the result file, open it e.g. in a spread-sheet program, suchas Miscrosoft Excel or OpenOffice Calc. The figure below shows the result of the above simulation when plotted using OpenOffice Calc3.0. Note that the height h of the bouncing ball as computed byfmusim becomes negative at the contact points, while the true solution of the FMU does actually not contain negative height values. This is not a limitation of the FMU, but of fmusim_me, which does not attempt to locate the exact time of state events. To improve this, either reduce the step size or add your own procedure for state-event location to fmusim_me.Creating your own FMUsThe FMU SDK contains a few sample FMUs•dq the Dahlquist test function x = -k der(x)•inc increments an integer counter every second•values demonstrates the use of all scalar FMU data types•vanDerPol ODE with 2 continuous states•bouncingBall a bouncing ball that defines state eventsTo implement your own FMU using the FMU SDK, create a directory - say xy - in FMUSDK_HOME\fmu10\src\models, orFMUSDK_HOME\fmu20\src\models, and create files xy.c there. The name of the new directory and of the .c file must be the same. The content of the .c file should follow the existing FMU examples, see the comments in the example code. For FMI 1.0, add also file modelDescription.xml. The XML file must not containthe <implementation> element and the closing <fmiModelDescription> tag, because this is added automatically during build. For FMI 2.0, add file modelDescription_cs.xml and modelDescription_me.xml. When done with editing xy.c and the xml file (or files), open a command shell in FMUSDK_HOME\fmu10\src\models or inFMUSDK_HOME\fmu20\src\models to run the build command.On Windows, run command build_fmu me xy to build an FMU for model-exchange, or build_fmu cs xy to build an FMU for co-simulation. This should create a 32 bit FMU file xy.fmu in the corresponding subdirectory of FMUSDK_HOME\fmu10 or FMUSDK_HOME\fmu20. To build a 64-bit FMU, append option -win64 to the build command. For Linux and Mac OS X get inspired by all target insideFMUSDK_HOME\fmu10\src\models\makefile andFMUSDK_HOME\fmu20\src\models\makefile.The figure below might help to create or process the XML file modelDescription.xml. It shows all XML elements (without attributes) used in the schema files (XSD) for model exchange and co-simulation 1.0. Notation: UML classdiagram.For the case of FMU 2.0, see the corresponding overview figure in the FMI specification 2.0.FMU SDK Revision history•07.02.2010, Version 1.0o First releaseo demo FMI for Model Exchange 1.0•05.03.2010, Version 1.0.1o demo FMI for Model Exchange 1.0o bug-fix in fmuTemplate.c: fmiSetString now copies the passed string argument and fmiFreeModelInstance freesall string copieso fmusim/main.c: removed strerror(GetLastError()) from error messages•22.08.2011, Version 1.0.2o demo FMI for Model Exchange 1.0 and FMI for Co-Simulation 1.0o added support for FMI for Co-Simulation 1.0 (standalone, no tool coupling)o bug-fix in fmusim/main.c: added missing calls tofmiTerminate and fmiFreeModelInstance•07.03.2014, Version 2.0.0o demo FMI for versions 1.0 and 2.0 RC1o added support for FMI 2.0 RC1o added 64 bit supporto more compilers recognized by the installer•16.04.2014, Version 2.0.1o bug-fix in modelDescription.xml files: remove alias parameter, add derivative attribute to suitable variables o bug-fix in fmu20/fmuTemplate.c: allow modules to request termination of simulation, better time eventhandling, initialize() moved from fmiEnterInitialization tofmiExitInitialization, correct logging message format infmiDoStepo bug-fix in Co-Simulation and Model Exchange simulators: set fmu location for 1.0 and fmu resources location for2.0 at instantiation of model•02.07.2014, Version 2.0.2o added support for FMI 2.0 RC2o remove support for exporting FMI 2.0 RC1. Co-Simulation and Model Exchange simulators still support FMI 2.0 RC1 o fmi2setDebugLogging called with 0 categories, set all categories to loggingOn value•27.08.2014, Version 2.0.3o track all states of Model-exchange and Co-simulation and check the allowed calling sequences for FMI 2.0 o added explicit 'isTimeEvent' parameter for eventUpdate function in the user's modelso lazy computation of computed valueso bug-fix in modelDescription.xml: set initial attribute to local and output variables, add unknown variables in<ModelStructure><InitialUnknowns> section•20.10.2015, Version 2.0.4o added explicit 'isNewEventIteration' parameter for eventUpdate function in the user's modelso bouncingBall example improvement: demonstrate tunable parameters, avoid 'fall through effect' due to numericalcalculationo bug-fix: allow to declare real variables and zero states ina modelo bug-fix: allow to simulate FMI 2.0 RC1 modelso bug-fix: remove memory leaks and compilation warnings •8.12.2017, Version 2.0.5o added support for Linux and Mac OS X. Thanks toChristopher Brooks (https:///cxbrooks) o added support for building with Microsoft VS 2015o location of simulators changes toFMUSDK_HOME\fmu10\bin andFMUSDK_HOME\fmu20\bin instead of FMUSDK_HOME\bin o fmu20 build define DISABLE_PREFIX to not use prefixed FMI functionso fmu20 models declare source files inModelDescription.xmlo log error messages regardless of loggingOn flag when functions return fmi2Erroro bug-fix: allow to declare real variables and zero states •20.07.2018, Version 2.0.6o update libxml2.lib to work for windows 7 and Visual Studio 2013 and 2015o linux - give exec right to build_fmu.sh before executing ito copy .h model files with rsync to avoid missing file error License conditionsThe FMU SDK is provided by QTronic under the BSD License.FMU SDK licenseCopyright © 2008-2019, Synopsys, Inc. All rights reserved.The FmuSdk is licensed by the copyright holder under the BSD License(/licenses/bsd-license.html):Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:- Redistributions of source code must retain the above copyright notice,this list of conditions and the following disclaimer.- Redistributions in binary form must reproduce the above copyright notice,this list of conditions and the following disclaimer in the documentationand/or other materials provided with the distribution.THIS SOFTWARE IS PROVIDED BY SYNOPSYS INC. "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIESOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL SYNOPSYS INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.The following additional tools are distributed with the FMU SDK under their respective licenses•7z 4.57 by Igor Pavlov. Used here to zip and unzip FMUs, license is here.•eXpat 2.0.1 by James Clark. Used here to parse the modelDescription.xml file of an FMU 1.0, license is here.•libxml, the XML C parser and toolkit of Gnome. Used here to parse the modelDescription.xml file of an FMU 2.0, licenseis here.。
APIThis guide explains features, functions, and how-to-use information of the APIs required to create the Web application for LG Smart TV.Main Features of LG Smart TV SDK 3.0 APIsThis section introduces the key API functions of LG Smart TV SDK V3.0 released in February 2013.This is also provided in Korean document. You can download it from [DISCOVER > Legacy Platform (NetCast) > Technical Notes].Web API OverviewLG Web API provides APIs for developers to create web applications on LG Smart TV. The section shows the LG Web API service blocks.NetCast APIThis section provides descriptions on NetCast API methods and proprietary events.Media Player Plugin and APIThis section provides descriptions on Media Player Plugin and API methods and properties.Device Info Plugin and APIThis section provides descriptions on Device Info Plugin and API methods, properties, and events.Voice Recognition Plugin and APIThis section provides descriptions on Voice Recognition Plugin and API methods, properties, and events. AppToApp Plugin and APIThis section provides descriptions on ApptoApp Plugin and API methods and events.Sound Plugin and APIThis section provides descriptions on Sound Plugin and API methods.DRMAgent Plugin and APIThis section provides descriptions on DRMAgent Plugin and API methods and events.Media Device NetCast APIThis section provides descriptions on Media Device NetCast API methods.Image Viewer Framework APIThis section provides descriptions on Image Viewer Framework API methods.Media Plugin Video Player Framework APIThis section provides descriptions on Media Plugin Video Player Framework API methods.HTML5 Video Player Framework APIThis section provides descriptions on HTML5 Video Player Framework API methods.Web UI Component APIThis section provides descriptions on Web UI Compoenent API methods and parameters.Annex A Differences in Media DevicesMedia products partly support NetCast 3.0. Please see the detailed information below for Media products development.Annex B Utilities for Using Web UI ComponentsThis section describes utilities for using LG Web UI components.ContentsMain Features of LG Smart TV SDK 3.0 APIs (14)New Features of LG Smart TV SDK 3.0 APIs (14)Main Features of LG Smart TV SDK (14)Media (15)Voice Recognition (16)AppToApp (17)Sound (18)UI Component (19)Web API Overview (20)NetCast API (22)Methods/Proprietary Events (22)Methods (23)CastExit (23)CastBack (23)CastSetPageLoadingIcon (24)CastSetDefaultAspectRatio (25)CastLaunchQMENU (26)CastLaunchRATIO (27)CastMouseOff (28)CastGetMouseOnOff (29)CastSetAutoMouseOff (29)CastGetUsedMemorySize (30)CastSystemKeyboardVisible (30)Proprietary Events (32)mouseon (32)mouseoff (32)outofmemory (33)Media Player Plugin and API (35)Media Object (35)Properties (36)mode3D (36)preBufferingTime (36)oneshot_url (36)subtitleOn / subtitle (37)drm_type (37)playCount (38)Audio Object (38)Media Type Resolving in Media Player Plugin (38)Methods/Properties/Events (39)Methods (40)play (40)stop (41)next (41)mediaPlayInfo (42)setWidevineXXX (44)Properties (46)version (46)type (46)data (46)width / height (47)playTime (47)playPosition (48)playState (48)error (49)autoStart (50)isScannable (50)speed (51)bufferingProgress (52)subtitleOn (52)subtitle (53)mode3D (53)audioLanguage (54)Events (56)onPlayStateChange (56)onBuffering (56)onError (57)onDRMRightsError (58)Device Info Plugin and API (59)Device Object (59)Methods/Properties (59)Methods (60)getLocalTime (60)getSystemTime (60)pentouchInfo (61)setDrmLicenseInfo (62)setVMConfigData (63)Properties (64)version (64)manufacturer (64)modelName (64)serialNumber (65)swVersion (65)hwVersion (66)SDKVersion (66)osdResolution (66)networkType (67)net_macAddress (67)drmClientInfo (68)net_dhcp (68)net_isConnected (69)net_hasIP (69)net_ipAddress (69)net_netmask (70)net_gateway (70)net_dns1 (70)net_dns2 (71)supportMouse (71)supportVoiceRecog (72)supportPentouch (72)preferredSubtitleLanguage (74)preferredAudioLanguage (74)preferredSubtitleStatus (75)tvLanguage2 (75)tvCountry2 (76)timeZone (76)platform (76)chipset (77)Voice Recognition Plugin and API (78)Voice Object (80)Properties/Methods/Events (80)Properties (81)isInitialized (81)isEnable (81)dictation (81)language (82)Methods (83)startRecognition (83)Events (84)onrecognizevoice (84)onbuttonenable (84)AppToApp Plugin and API (85)AppToApp Object (85)Methods/Events (85)Methods (86)sendMessage (86)sendMessageTo (86)Events88onreceivemessage (88)Sound Plugin and API (89)Sound Object (89)Methods (89)Method (90)play (90)DRMAgent Plugin and API (91)DRMAgent Object (91)Methods/Events (91)Methods (92)sendDRMMessage (92)Events (94)onDRMMessageResult (94)DRMAgent Specific (95)Media Device NetCast API (98)CastSetScreenSaver (98)Image Viewer Framework API (99)How to Use Image Viewer Framework (99)Markup Interface (100)JS Interface (100)Methods (100)Methods (101)createImgViewer (101)addImage (102)removeImage (102)gotoImage (103)zoom (103)rotate (104)flip (105)startSlideShow (105)stopSlideShow (106)setSlideShowSpeed (107)getSlideShowSpeed (107)setRandomSlideShow (108)getRandomSlideShow (108)next (108)previous (109)first (109)last (110)setDisplayMode (110)getDisplayMode (111)setFrameworkFocus (112)removeFrameworkFocus (112)mouseWheel (113)focusNext (113)focusPrevious (114)focusUp (114)focusDown (115)doSelection (115)Media Plugin Video Player Framework API (116)How to Use Media Plugin Video Player Framework (117)Markup Interface (117)JS Interface (117)VideoPlayer Framework Implementation (118)Methods (118)Methods (119)createVideoPlayer (119)play (119)stop (120)rewind (120)fastFoward (121)switchToFullScreenMode (121)optionMedia (122)HTML5 Video Player Framework API (123)Markup Interface (124)JS Interface (124)HTML5 Video Player Framework Implementation (125)Methods (125)Methods (126)createVideoPlayer (126)play (126)stop (127)rewind (127)fastFoward (128)switchToFullScreenMode (128)optionMedia (129)Web UI Component API (130)AnimatedImage (131)Markup Interface (132)animation-hover (132)animation-click (132)JS Interface (Constructor Parameters) (133)animate (133)id (133)selector (133)style (134)src (134)JS Interface (Methods) (135)getAnimation (135)getSrc (135)getStyle (136)setAnimation (136)setSrc (136)setStyle (137)Button (137)Markup Interface (138)icon-position (138)icon-type (138)text-inline (138)text-omit (139)JS Interface (Constructor Parameters) (140)href (140)id (140)iconPosition (141)iconType (141)selector (141)style (141)textOmit (142)textInline (142)type (142)value (142)JS Interface (Methods) (144)getHref (144)getIconPosition (144)getIconType (145)getText (145)getTextInline (146)getTextOmit (146)setTextInline (148)setTextOmit (148)CheckBox (149)Markup Interface (150)text-inline (150)JS Interface (Constructor Parameters) (151)checked (151)id (151)selector (151)style (152)text (152)textInline (152)JS Interface (Methods) (153)getCheck (153)getText (153)getTextInline (154)setCheck (154)setText (154)setTextInline (155)Focus (155)Markup Interface (157)option (157)JS Interface (Constructor Parameters) (158)id (158)option (158)selector (158)JS Interface (Methods) (159)setOption (159)GroupButton (159)Markup Interface (160)box-orient (160)JS Interface (Constructor Parameters) (161)boxOrient (161)id (161)items (161)selector (162)JS Interface (Methods) (163)addItem (163)getBoxOrient (163)getItem (164)removeItem (164)setBoxOrient (164)setItem (165)GroupCheckBox (165)Markup Interface (167)box-orient (167)JS Interface (Consturctor Parameters) (168)boxOrient (168)id (168)items (169)legend (169)selector (169)getLegend (171)removeItem (171)setBoxOrient (172)setItem (172)setLegend (173)GroupRadio (173)Markup Interface (174)box-orient (174)JS Interface (Constructor Parameters) (175)boxOrient (175)legend (175)id (176)items (176)selector (176)JS Interface (Methods) (178)addItem (178)getBoxOrient (178)getItem (179)getLegend (179)removeItem (179)setBoxOrient (180)setItem (180)setLegend (181)ImageList (181)Markup Interface (182)JS Interface (Constructor Parameters) (183)id (183)image (183)selector (184)style (184)JS Interface (Methods) (185)addImageItem (185)getCurrentIndex (185)moveImageItem (186)removeImageItem (186)ImageTile (186)Markup Interface (188)JS Interface (Constructor Parameters) (189)id (189)option (190)selector (190)style (191)tables (191)JS Interface (Methods) (193)getBackground (193)getBorderSpacing (193)getMargin (194)getNumToMove (194)setBackground (194)setBorderSpacing (195)setMargin (195)setNumToMove (196)Label (196)JS Interface (Constructor Parameters) (198)id (198)selector (198)style (198)text (199)textInline (199)textScroll (199)textScrollDirection (199)JS Interface (Methods) (201)getText (201)getTextInline (201)getTextScroll (202)getTextScrollDirection (202)setText (202)setTextInline (203)setTextScroll (203)setTextScrollDirection (204)MsgBox (204)Markup Interface (205)option (205)JS Interface (Constructor Parameters) (206)btnType (206)id (206)message (206)messageRes (207)title (207)titleRes (207)JS Interface (Methods) (208)addEventListener (208)close (208)doModal (209)getBtnType (209)getMessage (210)getTitle (210)setBtnType (210)setMessage (211)setMessageRes (211)setTitle (212)setTitleRes (212)Picker (212)Markup Interface (214)index (214)option (214)JS Interface (Constuctor Parameters) (216)id (216)selector (216)text (217)textRes (217)type (217)width (218)JS Interface (Methods) (219)addItem (219)addItemWithRes (219)getOption (220)Progress (222)Markup Interface (223)JS Interface (Constructor Parameters) (224)id (224)max (224)min (224)style (225)selector (225)value (225)JS Interface (Methods) (227)getMax (227)getMin (227)getStep (228)getValue (228)resetProgress (228)setMax (229)setMin (229)setStep (230)setValue (230)startProgress (231)stopProgress (231)Radio (231)Markup Interface (233)text-inline (233)JS Interface (Constructor Parameters) (234)checked (234)id (234)selector (234)style (235)text (235)textInline (235)JS Interface (Methods) (236)getCheck (236)getText (236)getTextInline (237)setCheck (237)setText (237)setTextInline (238)Rating (238)Markup Interface (239)JS Interface (Constructor Parameters) (240)id (240)max (240)min (240)selector (241)style (241)value (241)JS Interface (Methods) (242)getMax (242)getMin (242)getValue (243)setMax (243)setMin (243)Scroller (244)Markup Interface (246)img-scroll-direction (246)JS Interface (Constructor Parameters) (247)id (247)imgScrollDirection (247)selector (247)style (248)JS Interface (Methods) (249)addContents (249)getScrollDirection (249)getScrollLock (250)setScrollDirection (250)setScrollLock (250)Slider (251)Markup Interface (252)JS Interface (Constructor Parameters) (253)id (253)max (253)min (254)style (254)selector (254)value (254)JS Interface (Methods) (256)getMax (256)getMin (256)getValue (257)setMax (257)setMin (257)setValue (258)Tab (258)Markup Interface (260)index (260)JS Interface (Constructor Parameters) (261)id (261)selector (261)text (261)JS Interface (Methods) (263)addTab (263)getSelected (263)getTabHeight (264)getTabWidth (264)setSelected (265)setTab (265)setTabHeight (265)setTabWidth (266)TextInput (266)Markup Interface (268)text-inline (268)JS Interface (Constructor Parameters) (269)id (269)selector (269)style (269)text (270)textinline (270)type (270)JS Interface (Methods) (271)getText (271)getTextInline (271)setText (272)setTextInline (272)ToggleSwitch (272)Markup Interface (274)text-inline (274)JS Interface (Constructor Parameters) (275)id (275)on (275)off (275)selector (276)textinline (276)JS Interface (Methods) (277)getSelected (277)getText (277)getTextInline (278)setTextRes (278)setSelected (278)setText (279)setTextInline (279)TvHelp (280)Markup Interface (281)option (281)JS Interface (Constructor Parameters) (282)id (282)items (282)selector (283)style (283)JS Interface (Methods) (284)addItem (284)getLink (284)getOption (285)getText (285)removeItem (286)setItem (286)PageEffects (286)JS Interface (Constructor Parameters) (288)currentPage (288)JS Interface (Methods) (289)execute (289)FadeEffect (290)FlipEffect (292)PopEffect (294)SlideEffect (296)Annex A Differences in Media Devices (298)Annex B Utilities for Using Web UI Components (299)Converting HTML Components into LG Components (299)JavaScript Handler for UI Components (299)Defining the Next Focus (300)Adding attribute in lge-attr (301)Adding parameters in JavaScript constructor (302)Calling direction key event (303)Main Features of LG Smart TV SDK 3.0 APIs This document outlines the key API functions of LG Smart TV SDK V3.0 released in February 2013. It was created to help developers, content planners and department officials gain a better understanding of LG Smart TV applications (apps).This chapter includes the following sections.•New Features of LG Smart TV SDK 3.0 APIs•Main Features of LG Smart TV SDKNew Features of LG Smart TV SDK 3.0 APIsAPIs provide the Web app programming environment for the LG Smart TV NetCast Platform. In particular, they provide an abundance of media playback functions, device information, DRM management functions and adaptive streaming solutions.From the previous SDK version, this SDK 3.0 version added and modified a new API on Device Info Plugin and API, NetCast API.NetCast API- CastSetAutoMouseOff is added- CastSystemKeyboardVisible is addedDevice Info Plugin and API- support3DMode is addedMain Features of LG Smart TV SDKNetCast means that the platform is compatible with LG Smart TVs.Developers can use the APIs provided by the LG Smart TV SDK to drive the NetCast Platform and develop creative and useful apps. This document outlines the following key functions:- Media- Voice Recognition- AppToApp- Sound- UI ComponentMediaThe NetCast Platform supports the two following video playback methods in apps:Supported SDK and Emulator- LG Smart TV SDK V1.5 or newer- LG Smart TV Emulator 2011: HTML5 video tags are not supported, but media objects are supported. - LG Smart TV Emulator 2012: Both HTML5 video tags and media objects are supported.Related DocumenntSee Media Player Plugin and API for detailed information.Voice RecognitionThe NetCast Platform makes it possible to use the Magic Remote's voice recognition function in Smart TV Web apps. It provides the API for converting voice into text and allows users to use voice recognition to input characters while using their Smart TV, for example, when searching content and inputting their account details.There are two voice recognition modes:- Word mode: Keyword-level voice recognition (up to three similar voice recognition results will be displayed).- Dictation mode: Sentence-level voice recognition (only one recognition result will be displayed).The voice recognition plugin and API are supported since NetCast 3.0. The supported languages for the voice recognition are listed in the Voice Recognition Plugin and API.Supported SDK and Emulator- H12: Korea/North America/Europe/CIS/Australia/Brazil/China- M12: Korea- See the Voice Recognition Plugin and API for information on the supported languages in different regions.Related DocumenntSee Voice Recognition Plugin and API for detailed information.Example of an Application[Figure] Recognizing keywords using the voice recognition function in the search section of the Social CenterAppToAppThe NetCast Platform allows a Smart TV app and a mobile app (Android and iOS based), which can be called a second screen or companion app, to communicate with each other through the TV.An LG Smart TV app (host) uses the AppToApp API to communicate with a mobile app. The mobile app (controller) discovers, pairs with, launches, and communicates with the host based on the UDAP (Universal Discovery & Access Protocol) defined by LG.Developers can offer a wide range of second screen-based experiences to Smart TV users by enabling interworking between Smart TV and mobile devices.Currently, the AppToApp API specifications, UDAP, and UDAP service profile specifications are available separately. Sample code for mobile apps (controllers) will also be provided for easier implementation.Supported SDK and Emulator- LG Smart TV SDK V2.2 or newer- LG Smart TV Emulator 2011: not supported- LG Smart TV Emulator 2012: SDK 2.2 or newerRelated DocumenntSee AppToApp Plugin and API for detailed information.Example of an ApplicationThe following app was developed using the AppToApp function.If users share the URL for the Webpage they wish to view on a big screen through the WatchBig! App, the webpage that appears on their mobile phones can be viewed on their Smart TV via its Web browser.The WatchBig! app will be available to download from LG Smart World (LG Apps TV) soon.[Figure] LG Electronics Super App Contest Winner: WatchBig!SoundThe NetCast Platform enables sound effects (a short WAVE file) to be inserted into the background music of a Smart TV video or program.If the sound effect and background music are played at the same time, the Media Player plugin must be used to play the background music. It is also possible to play the sound effect on its own, without any background music. Several audio plugins can also be used simultaneously.The WAVE files currently available for sound effects are as follows:- Sampling rate: 44.1 K- Audio bps: 16 bit- Audio channel: monoSupported SDK and Emulator- LG Smart TV SDK V2.2 or newer- LG Smart TV Emulator 2011: not supported- LG Smart TV Emulator 2012: SDK 2.2 or newerRelated DocumenntSee Sound Plugin and API for detailed information.UI ComponentThe NetCast Platform provides Web UI components, whose look and feel are unique to LG Electronics. Developers can use the LG Web UI Components to develop apps that are compatible with the UI/UX of LG Smart TVs.To use LG Web UI Components, you must install LG Smart TV SDK V2.2.0 or newer.You can generate UI components easily by means of drag and drop using the WYSIWYG Editor in the LG IDE.UI Components will be generated using the standard HTML markup or LG JavaScript interface.Supported SDK and Emulator- LG Smart TV SDK V2.2 or newer- LG Smart TV Emulator 2011: not supported- LG Smart TV Emulator 2012: SDK V2.2 or newerRelated DocumenntSee Web UI Component API for detailed information.Example of an Application[Figure] Examples of apps using LG Web UI ComponentsWeb API OverviewLG Web API provides APIs for developers to create web applications on LG Smart TV. The following figure illustrates the LG Web API service blocks.[Figure] Service Block Diagram of LG Web APIWindow Extended (NetCast)NetCast supports the proprietary browser APIs for developers to use.Media PlayerMedia Player Plugin and API contain CE-HTML and CEA-2014 compliant media player plugin.DeviceDevice Info Plugin and API are for obtaining device information in the application.Voice RecognitionVoice Recognition Plugin and API are for using voice recognition function of Magic Remote in the application. AppToAppAppToApp Plugin and API are used for interaction between LG Smart TV and external smart device such as Smart phone.SoundSound Plugin and API are used for playing sound effect, a short wav file, while background music is being played using Media Player plugin. (It is possible to use Sound plugin with no background music being played.)DRMAgentDRMAgent Plugin and API are used for the generic playout of PlayReady content using the NetCast media objectand using the drmAgent object.Media DeviceMedia Device Plugin and API are used for PDP TV and Media device, not for LCD/LED TV device.Image Viewer FrameworkImage Viewer Framework API provides the functionalities of a photo gallery and image viewer.Media Plugin Video Player FrameworkMedia Plugin Video Player Framework API provides the video player and its functionalities using the media object. HTML5 Video Player FrameworkHTML5 Video Player Framework API provides the video player and its functionalities using the HTML5 Video element.Web UI ComponentLG Smart TV SDK provides LG Web UI Components for developing LG Smart TV web applications. The LG Web UI components are designed to comply with the look and feel of LG Smart TV’s UI/UX. LG pro vides various components including Button, CheckBox, Focus and more. Also, 4 types of page effects are provided.NoteAccording to our policy, the following Web Open APIs will not be compatible with the LG Smart TV 2014 platform.- AppToApp APIs (Since LG will provide a new library that has the UDAP function in the next year, UDAP will not be supported in the LG Smart TV 2014 platform. If you want to deploy your app implemented using UDAP on the LG Smart TV 2014 platform, it must be partly reimplemented using new library. For more information, detailed reimplementation guide will be provided later.)- SNS APIs (Removed from LG Web Open API on June, 2013.)NetCast APIFollowing sections describe the proprietary browser APIs for LG Smart TV application authors to use. •Methods/Proprietary EventsMethods/Proprietary EventsMethods and proprietary events are listed in the following sections.•Methods•Proprietary EventsMethodsMethods of NetCast API are as follows:CastExitDescriptionThe NetCast Platform provides a proprietary API, ‘CastExit()’, to implement the exit function to AV. A JavaScript application can use this API for users to exit or quit the application to AV.NoteSince LG Smart TV’s UX Guideline is changed, we do not recommend to use this API anymore. When an application is closed, you must use the CastBack() API to go back to the previous menu.SyntaxCastExit();ParametersNoneReturn ValueNoneExamplefunction processExit(){CastExit();}CastBackDescriptionThe NetCast Platform provides a proprietary API, ‘CastBack()’, to implement the back function to the previous NetCast menu. A JavaScript application can use this API for users to move back to previous NetCast menu. SyntaxCastBack();ParametersNoneReturn ValueNoneExamplefunction processBack(){if(CastBack) {CastBack();}}CastSetPageLoadingIconDescriptionIt is recommended that developer s provide a “loading” icon so that users are provided with an indication of the latency of data downloading from a server. Developers can implement this feature using JavaScript, however, it may not be possible do this, as there would not be any JavaScript running while a HTML page is loading. The NetCast Platform supports a proprietary API, ‘CastPageLoadingIcon()’, to provide the web application’s own page loading animation function. Developers can use this API during HTML page loading.NoteThis function will be applied while the next page is loaded.The following examples show how application authors can enable and disable the browser’s page loading icon.SyntaxCastSetPageLoadingIcon(control);Parameterscontrol [in] ‘enabled’ or ’disabled’Return ValueNoneExamplefunction enablePageLoadingIcon() {CastSetPageLoadingIcon('enabled');}function disablePageLoadingIcon() {CastSetPageLoadingIcon('disabled');}[Figure] Screen shot of web application’s page loading icon in NetCast 2.0[Figure] Screen shot of web application’s page loading icon in NetCast 3.0 or higherCastSetDefaultAspectRatioDescriptionDevelopers may want to set the default aspect ratio for users to view full screen video with the correct aspect ratio. The NetCast Platform allows developers to set the default aspect ratio by using the‘CastSetDefaultAspectRatio()’ API. The setting only applies if the video runs in full screen mode, 1280 x 720. This API takes a string type of argument. The list of arguments and their behaviors are listed in the following table and figure.NoteThis API call applies only once for a whole application life cycle. Second and subsequent calls will be ignored by the LG Browser automatically. Therefore, it is recommended to locate the API call at the time of launching the application. If the application is launched again after exiting, the API will be enabled again.16:9 AspectRatio TV screenoriginal zoom full [Figure] Media Data Transmitting Algorithm of Media PlaybackSyntaxCastSetDefaultAspectRatio(control);Parameterscontrol [in] Aspect ratio control mode[Table] Explanation of aspect ratio control modeReturn ValueNoneExamplefunction setDefaultAspectRatio(){CastSetDefaultAspectRatio('original');}</script><body onload='setDefaultAspectRatio(); return false;'>...</body>CastLaunchQMENUDescriptionThe N etCast Platform provides a ‘QMENU’ (Quick Menu for Audio and Video Adjustment) for users to setup the aspect ratio for full screen video, picture quality adjustment and audio adjustment. The QMENU can be launched by users when playing video in full screen mode by pressing the ‘QMENU’ button on the remote control. This only works in full screen video mode.Note, it is possible for users to operate a LG Smart TV application using the Magic Remote, the pointing device of the NetCast Platform. There is no ‘QMENU’ button on the Magic Remote, Therefore, it is strongly recommended that the LG Smart TV developer implements a graphical user interface to launch the QMENU over a full screen video.The NetCast Platform thus provides a proprietary API, ‘CastLaunchQMENU()’ to enable this feature. If this API is called then the LG Smart TV will overlay the QMENU on the full screen video. Developers can launch the QMENU over a full screen video using this API.SyntaxCastLaunchQMENU();ParametersNoneReturn ValueNoneExamplefunction launchQMENU(){if(CastLaunchQMENU) {CastLaunchQMENU();}}CastLaunchRATIODescriptionThe NetCast Platform provides a ‘RATIO’ (Aspect Ratio Control) menu for users to setup the aspect ratio of a full screen video. The RATIO menu can be launched by a user while playing a video in a full screen mode by pressing the ‘RATIO’ button on the remote control. This only works in full screen video mode.Note, it is possible for users to operate a LG Smart TV application using the Magic Remote, the pointing device of NetCast Platform. There is no ‘RATIO’ button on the Magic Remote, therefore, it is strongly recommended that the LG Smart TV developer implements a graphical user interface to launch the RATIO menu over a full screen video.The NetCast Platform thus provides a proprietary API ‘CastLaunchRATIO()’ to enable this feature. If this API is called then the LG Smart TV will overlay the RATIO menu on the full screen video. Developers can launch the RATIO over a full screen video using this API.SyntaxCastLaunchRATIO();ParametersNoneReturn Value。
sdk简单说明⽂档草稿。
SDK初始化:HighApi为SDK核⼼类,请客户端持有其唯⼀单例对API进⾏调⽤。
HighApi构造器函数HighApi(Context appContext, final String appId, ApiInitListener apiInitListener)参数说明:appContext 全应⽤上下⽂对象,推荐使⽤applicationappid 平台为引⽤分配的唯⼀标⽰,可在后台管理出查看。
apiInitListener 初始化监听器,由于现SDK为异步初始化,部分其他设定需要在SDK初始化完成后执⾏,便可写在此监听对象的回调函数中。
聊天服务器的登录:HighApi ⽅法public void initChatClient(String account, String pw)⽅法说明:根据⽤户在我嗨平台的帐号密码初始化聊天客户端并验证当前⽤户⾝份,⽤户未注册时,将⾃动注册登录。
请在HighApi初始成功化后执⾏该⽅法。
添加聊天消息监听:HighApi⽅法public void addMessageListener(MessageListener messageListener)⽅法说明:为聊天服务添加监听,收到新消息时会回调监听对象的 onMessageArrived(HMessage hMessage) ⽅法。
注意:不需要监听时请移除该监听。
移除聊天消息监听:HighApi⽅法public void removeMessageListener(MessageListener messageListener)⽅法说明:当不在需要监听并响应新消息时调⽤,移除已经注册的消息监听。
订阅聊天室⽅法:HighApi⽅法public void chatClientSubscribe(String clientId)⽅法说明:需在聊天客户端初始化后调⽤。
参数说明:clientId 客户端⽤户为已标⽰符。
电抗器专业供应商http://上海民恩电气有限公司SLK系列交流输出电抗器安装使用说明书上海民恩电气有限公司Shanghai Minen Electric Co.,Ltd.非常感谢您选用民恩牌电抗器,为了您正确使用本电抗器请在使用前仔细阅读本说明书,并妥善保存以供今后使用输出交流电抗器Output AC Reactors一.产品概述Product Profile输出交流电抗器用于变频器的负载侧,电机电流流经这些电抗器。
输出交流电抗器补偿长电缆的电容性电荷反转电流,用于平滑滤波,降低瞬变电压dv/dt,延长电机寿命。
降低电机的噪音,降低涡流损耗、降低输入高次谐波造成的漏电流、保护变频器内部的功率开关器件。
二.结构特点Construction Features1.铁心采用优质低损耗冷轧硅钢片,铁心柱由多个气隙分成均匀小段,气隙采用环氧层压玻璃布板作间隔,气隙间及铁饼与铁轭间采用耐高温高强度粘接剂粘接,以保证电抗气隙在运行过程中不发生变化,同时有效减少铁芯饼之间的震动,从而降低噪音。
2.线圈采用F/H级绝缘系统,有良好的绝缘性能和耐温性能。
3.电抗器采用整体真空压力浸漆工艺,经高温热烘固化后产品整体机械强度高,防潮性能好;产品在运行中大大降低了噪声和振动,有效提高了产品长期运行的可靠性。
4. 温升低,损耗小。
三.性能参数Performance Parameters1. 额定工作电压:380V/50Hz或660V/50Hz2. 额定工作电流:5A至1600A@40℃3. 抗电强度:铁芯-绕组 3500VAC/50Hz/10mA/10s无飞弧击穿4. 绝缘电阻:>100MΩ5. 电抗器噪音:<65dB6. 防护等级: IP007. 绝缘等级: F/H级8. 产品执行标准:GB10229-88电抗器/JB9644-1999半导体电气传动用电抗器四.接线方式Connection mode五. 型号含义Model Description六.产品型号及技术参数Model and technical parameters电抗器型号图适配额定压电感重量外型尺寸安装尺寸号功率KW 电流A降VmH KgL W H A B 安装孔SDK-5-1.4A 1.5 5 2.2 1.4 2.5 120 90 130 80 60 8×12SDK-10-0.7 2.2 10 2.2 0.7 2.8 120 90 130 80 60 8×12 SDK-15-0.467 5.5 15 2.2 0.467 3.5 150 100 155 80 60 8×12 SDK-15-0.467 5.5 15 2.2 0.467 3.5 150 100 155 80 60 8×12 SDK-20-0.35 7.5 20 2.2 0.35 3.8 150 105 160 80 65 8×12SDK-30-0.233B 11 30 2.2 0.233 4.2 150 135 155 80 70 8×12SDK-40-0.175 15 40 2.2 0.175 4.3 180 125 155 95 70 8×12 SDK-50-0.14 18.5 50 2.2 0.14 6.6 180 130 155 95 70 8×12 SDK-60-0.117 22 60 2.2 0.117 7.2 180 130 155 95 70 8×12 SDK-80-0.0875 30 80 2.2 0.0875 9 180 140 155 95 80 8×12 SDK-110-0.0637 37 110 2.2 0.0584 9.5 180 150 155 95 80 8×12 SDK-125-0.056 45 125 2.2 0.056 10 180 155 155 95 80 8×12SDK-150-0.0467C 55 150 2.2 0.0467 13.6 235 155 180 170 85 7×16SDK-200-0.035 75 200 2.2 0.035 14.5 210 150 215 150 95 7×16 SDK-250-0.028 90 250 2.2 0.028 22 250 160 240 170 110 9×20 SDK-275-0.0255 110 275 2.2 0.0255 23 250 160 240 170 110 9×20 SDK-330-0.021 132 330 2.2 0.021 24 250 160 250 170 110 9×20 SDK-450-0.0175 160 400 2.2 0.0175 25 250 170 290 170 110 9×20 SDK-500-0.014 200 500 2.2 0.014 26.5 250 170 290 170 110 10×20 SDK-540-0.013 220 540 2.2 0.013 32 290 180 300 200 130 10×20 SDK-625-0.0112 250 625 2.2 0.0112 33 290 200 300 200 130 10×20SDK-700-0.01D 280 700 2.2 0.01 43 330 220 300 180 130 12×20SDK-800-0.0088 315 800 2.2 0.0088 45 330 240 320 180 130 12×20 SDK-1000-0.007 380 1000 2.2 0.007 60 330 255 320 280 150 12×20 SDK-1200-0.0058 500 1200 2.2 0.0058 71 360 240 350 310 190 Ф13 SDK-1600-0.0044 630 1600 2.2 0.0044 85 360 260 380 310 190 Ф13 备注:以上为我司标准规格,特殊规格可根据客户要求定制.参数如有变动恕不另行通知!输出交流电抗器型号及技术参数:电抗器基准压降UD=2%电抗器型号图适配额定压电感重外型尺寸安装尺寸号功率KW 电流A降VmH 量KgL W H A B安装孔SDK-5-2.8A 1.5 5 4.4 2.82.5120 90 130 80 608×12SDK-10-1.4 2.2 10 4.4 1.4 2.8120 90 130 80 608×12SDK-15-0.94 3.7 15 4.4 0.94 3.5150 100 155 80 608×12SDK-15-0.94 5.5 15 4.4 0.94 3.5150 100 155 80 608×12SDK-20-0.7 7.5 20 4.4 0.7 3.8150 105 160 80 658×12SDK-30-0.466B 11 30 4.4 0.4664.2150 135 155 80 708×12SDK-40-0.35 15 40 4.4 0.35 4.3180 125 155 95 708×12SDK-50-0.28 18.5 50 4.4 0.28 6.6180 130 155 95 708×12SDK-60-0.234 22 60 4.4 0.234 7.2180 130 155 95 708×12SDK-80-0.176 30 80 4.4 0.176 9 180 140 155 95 80 8×12SDK-110-0.12 7 37 127 4.4 0.1169.5180 150 155 95 808×12SDK-125-0.11 6 45 125 4.4 0.116 10 180 155 155 95 808×12SDK-150-0.094C 55 150 4.4 0.09413.6235 155 18017857×16SDK-200-0.07 75 200 4.4 0.07 14.5210 150 21515957×16SDK-250-0.05 6 90 250 4.4 0.056 22 250 160 240171109×20SDK-275-0.05 1 110 275 4.4 0.051 23 250 160 240171109×20SDK-330-0.04 2 132 330 4.4 0.042 24 250 160 250171109×20SDK-450-0.031160 4504.4 0.031 25 250 170 290 17110 9×20 SDK-500-0.028200 500 4.4 0.02826.5 250 170 290 17110 10×20 SDK-540-0.026220 540 4.4 0.026 32 290 180 300 200 130 10×20 SDK-625-0.0224250 625 4.4 0.0224 33 290 200 300 200 130 10×20 SDK-700-0.02 D280 700 4.4 0.0243 330 220 300180 130 12×20 SDK-800-0.0176315 800 4.4 0.0176 45 330 240 320 180 130 12×20 SDK-1000-0.014360 1000 4.4 0.014 60 330 255 320 280 15012×20SDK-1200-0.0116500 1200 4.4 0.0116 71 360 240 350 310 190 Ф13 SDK-1600-0.0088630 1600 4.4 0.0088 85 360 260 380310190 Ф13备注:以上为我司标准规格,特殊规格可根据客户要求定制.参数如有变动恕不另行通知。
Release Notes FlexPendant SDK6.01Revision: -The information in this manual is subject to change without notice and should not be construed as a commitment by ABB. ABB assumes no responsibility for any errors that may appear in this manual.Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific purpose or the like.In no event shall ABB be liable for incidental or consequential damages arising from use of this manual and products described herein.This manual and parts thereof must not be reproduced or copied without ABB's written permission, and contents thereof must not be imparted to a third party nor be used for any unauthorized purpose. Contravention will be prosecuted.Additional copies of this document may be obtained from ABB at its then current charge.© Copyright 2015 ABB All rights reserved.ABB ABRobotics ProductsSE-721 68 VästeråsSwedenOverview 4 1 Release Information 51.1 General 51.2 Contents 52 Information to all users of FlexPendant SDK 62.1 Limited Support 62.2 Switch to ScreenMaker 63 What’s New in 6.01?74 Corrected Problems 84.1 Corrected problems in FlexPendant SDK 6.01 85 Known Limitations 96 Installation Information 116.1 Prerequisites 116.1 System requirements 116.2 Installing FlexPendant SDK 5.61 126.3 Compatibility 127 Technical Support 13OverviewDescriptionThis document provides information about the new features, problems corrected, andinstallation of FlexPendant SDK 6.01Product OverviewFlexPendant SDK can be used to develop customized operator screens for theFlexPendant using the Microsoft Visual Studio 2008 development environment.Download, get started and learn more at Developer Center:Discuss problems and solutions online on the User Forum:1 Release Information1.1 GeneralRelease NameThe release name is FlexPendant SDK 6.01 and the build number is 6.01.0123Release DateThe release date is April 29th, 2015.1.2 Contents.NET AssembliesABB.Robotics.dllABB.Robotics.Controllers.dllABB.Robotics.DataBinding.dllABB.Robotics.GTPU.dllABB.Robotics.GTPU.Windows.Forms.dllABB.Robotics.Taf.Base.dllABB.Robotics.Tps.Resources.dllABB.Robotics.Tps.SDK.Base.dllABB.Robotics.Tps.Taf.dllABB.Robotics.Tps.Windows.Forms.dllDocumentation∙Reference Manual FlexPendant SDK – Class library API reference in C# syntax. Available online at ∙Application Manual FlexPendant SDK – Available online atToolsabbct.exe– ABB Compliance Tool. Verifies the FlexPendant application syntax andgenerates the *.gtpu.dll.Visual Studio Project TemplatesABB Application – template for a basic FlexPendant application.2 Information to all users of FlexPendant SDK2.1 Limited SupportThe software platform in the ABB FlexPendant device is based on Windows CE 6 and.NET Compact Framework 3.5.Compact Framework is supported by Visual Studio 2008, but unfortunately Microsoftmade the decision not to support it in later versions of Visual Studio.Because of this ABB has had to adapt and will offer FlexPendant SDK under LimitedSupport only, from the 5.60 release onwards.2.2 Switch to ScreenMakerABB recommends all FlexPendant SDK users to switch to using ScreenMaker instead.ScreenMaker is a tool in RobotStudio for designing FlexPendant screens. It lets youuse a visual designer to bind screen control properties and events to RAPID variablesand I/Os in the IRC5 controller. The program logic is implemented in RAPID code.If you for some reason cannot or do not want to port your existing FlexPendant SDKapplications to ScreenMaker, you can continue using FlexPendant SDK under LimitedSupport as long as you have VisualStudio 2008 Professional.3 What’s New in 6.01?OverviewThis section contains information on the new features of FlexPendant SDK 6.01There are no updates in FPSDK 6.014 Corrected ProblemsOverviewThis section describes the corrected problems in FlexPendant SDK 6.01.4.1 Corrected problems in FlexPendant SDK 6.01ID Title5 Known LimitationsOverviewThis section describes known limitations in FlexPendant SDK.File changes to FlexPendant applications does not load the changes until a FlexPendant resetWith RobotWare 6.0 the controller's restart will no longer reset the FlexPendantmemory. This was part of an effort to improve the restart time of the controller.This means that after placing a new FlexPendant application file(s) on the FlexPendantunit, you need to manually reset the FlexPendant for it to reload its assets.To manually reset the FlexPendant you need to use the reset button on theFlexPendant's backside. (See Operating Manual – IRC5 with FlexPendant,3HAC16590)MechanicalUnit.GetPosition() returns external axis values on unexpected position The method JointTarget MechanicalUnit.GetPosition() returns external axis values inJointTarget.RobAx.Rax_1 to JointTarget.RobAx.Rax_6, instead in JointTarget.ExtAx_a- JointTarget.ExtAx_f, when called for an external axis mechanical unit.Workaround:Use MechanicalUnit.GetPosition2() which returns the robot axis values inJointTarget.RobAx when called for a TCP mechanical unit, and external axes values inJointTarget.ExtAx when called for an external axis.Note:The fact that a JointTarget RAPID datatype is used to return information about jointvalues for a particular mechanical unit, and not about all active mechanical units in thesystem is a design flaw and may lead to confusion.Value of RAPID data exceeding 1024 bytes cannot be retrievedIt is not possible to retrieve a value of a RAPID data exceeding 1024 bytes.An instance of a large RECORD may exceed this limitation, as well as an array oflarge records.Exception thrown:ABB.Robotics.GeneralException“SYS_CTRL_E_BUFFER_OVERFLOW: The amount of data is too large to fulfill therequest”Avoid:ArrayData[i] as it retrieves the entire value of the RAPID array from the controller.Use:RapidData.ReadItem(i) as it retrieves the value item by item from the controller.Workaround:Make your data smaller in size, for example by using two smaller records with lesselements in each, instead of one large record with lots of elements.Visual Studio 2008 cannot attach to VirtualFlexPendant.exe 5.15VirtualFlexPendant.exe distributed with RobotStudio 5.15 and later is built with .NET4.0. VisualStudio 2008 is not able attach and debug a .NET 4.0 application.Hence it is not possible to use RobotStudio and the Virtual FlexPendant to debug aFlexPendant SDK application from Visual Studio 2008.Workaround #1: Visual Studio 2010 or Visual Studio 2012 can be used for attachingand debugging VirtualFlexPendant.exe. You can open a code file from your VisualStudio 2008 project, from Visual Studio 2010 and set breakpoints. The debugger will hitthe breakpoints and you can execute step vice etc.Workaround #2: Do not uninstall RobotStudio 5.14.03 when installing RobotStudio5.15.Visual Studio 2008 can attach to and debug the VirtualFlexPendant.exe 5.14.03.Visit for a step-by-step instruction.Error when opening the designer for the first time in a VB projectWhen creating a FPSDK project for VB using an empty form (the default) as thestartup view, an error message may be displayed in the designer the first time theviewer is opened. The problem does not occur when the startup type is Form, or inC#. Work around: Close and re-open the designer.Memory leak in ImageList.DisposeDue to a Microsoft bug the ImageList.Dispose method does not work, causing amemory leak. Microsoft’s advice is to set the ImageList to null instead of callingDispose. This way the memory will correctly be reclaimed by the garbage collector.avoid:imageList.Dispose();use:imageList = null;RapidData.IsLocal returns true for shared dataIn FlexPendant SDK the property IsLocal on the class RapidData, returns true forshared data, even though such data is visible from all modules.The declarations of default zonedata and speeddata has been moved from moduleBASE.SYS in each task, and are now installed as shared data.If an application used to create a RapidData object representing for example"v1000", the IsLocal property returned false in RobotWare 5.12, but will return truein RobotWare 5.13."6 Installation Information6.1 PrerequisitesBefore you install…You need administrator privileges on the computer that you are using.LicensingFlexPendant SDK can be used free of charge to develop applications. In order to allowthe application to run on a specific IRC5 controller, the RobotWare option "FlexPendantInterface" is required on that controller.Visual Studio Project TemplatesVisual Studio project templates and control templates, will be installed and /madeavailable to Visual Studio, by the FlexPendant SDK installation.It is required that Visual Studio 2008 Professional is installed on the computer beforeyou install FlexPendant SDK, in order to get the templates.6.1 System requirementsPC Software requirementsVisual StudioMicrosoft Visual Studio 2008 Professional is required for the development ofFlexPendant SDK applications.Note: The Express edition or better, of Microsoft Visual Studio 2012 or MicrosoftVisual Studio 2013, is required to debug FlexPendant SDK applications runningin the Virtual FlexPendant (VirtualFlexPendant.exe). Please refer to chapter 5 formore information.Note: FlexPendant SDK is developed and tested for the English version of VisualStudio.RobotStudioRobotStudio is needed for building a test system and for debugging and testing inthe virtual environment.RobotWare software requirements-RobotWare option "FlexPendant Interface" for communication with IRC5controller.-RobotWare version 6.01 for running FlexPendant SDK applications.Note: It is recommended that FlexPendant SDK 6.01 applications should beused with RobotWare 5.00IRC5 hardware requirementsThe following FlexPendant device versions are supported:SxTPU-2 (executes with .NET CF 2.0 and WinCE 5.0)SxTPU-3 (executes with .NET CF 3.5 and WinCE6.0)6.2 Installing FlexPendant SDK 5.61Installation instructionsFlexPendant SDK 6.01 will be installed side by side with any previous major version ofFlexPendant SDK 5.xx, while minor versions within a release will update to the latestone.The default installation path is C:\Program Files\ABB Industrial IT\Robotics IT\SDK\PC How to install PC SDK on a PCDefault locationThe default installation path is C:\Program Files <x86>\ABB Industrial IT\RoboticsIT\SDK\FlexPendant SDK 6.016.3 CompatibilityThe APIs in the FlexPendant SDK 6.01 are backwards compatible with the APIsin FlexPendant SDK 6.00. There are no breaking changes.FlexPendant SDK compatibility between RobotWare releases cannot beabsolutely guaranteed. The goal is to be 100% compatible and the developmentteam tries hard to achieve this. Due to necessary upgrades in the Microsoftplatforms or new demands breaking changes sometimes cannot be avoided.Note! Compatibility between a specific version of FlexPendant SDK and earlierversions of RobotWare can only be guaranteed within the same major release.(FP SDK 5.61.01 will be compatible with RW 5.61.02 etc.).7 Technical SupportFor technical support please contact your local ABB office:/contactsFor help, advice and the latest updates visit the User Forum and Developer Center:。
Table of ContentsAbout1 Chapter 1: Getting started with openxml2 Remarks2 Examples2 Installation of OpenXML SDK and productivity tool on your computer2 Create a new Spreadsheet with OpenXML2 Using Open XML SDK 2.5 Productivity Tool4 Chapter 2: Create New Word Document with Open XML7 Introduction7 Examples7 Hello World7 Chapter 3: How to add an image to a Word Document.10 Introduction10 Remarks10 Examples10 Add the image to the OpenXml structure10 Refer to the image in the Word Document10 Chapter 4: Insert image into an inline "inline shape" in word documents13 Introduction13 Examples13 Add the following OpenXML namespaces to your class13 Open the document and add imagePart object to reference the picture you want to insert int13 Get a reference of a Blip object13 Adding reference of the image the shapes in the template document.14 With a collection reference of all the shapes, loop through the collection.14 Credits16AboutYou can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: openxmlIt is an unofficial and free openxml ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official openxml.The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to ********************Chapter 1: Getting started with openxml RemarksThis section provides an overview of what openxml is, and why a developer might want to use it. It should also mention any large subjects within openxml, and link out to the related topics. Sincethe Documentation for openxml is new, you may need to create initial versions of those relatedtopics.ExamplesInstallation of OpenXML SDK and productivity tool on your computerGo to the Microsoft link for the OpenXML SDK download. Click the red download button. On the next screen click the box next to OpenXMLSDKToolV25.msi and click next to begin the download. Once the download is complete, launch the OpenXMLSDKToolV25.msi and follow the instructions on the screen.The installer places the files in the following default directory:"C:\Program Files (x86)\Open XML SDK\V2.5"In this directory is a readme that explains how to use the SDK and a readme for the productivity tool.Create a new Spreadsheet with OpenXMLThis method will create a new Excel Spreadsheet. Pass in the fileName which is a full file path name.using DocumentFormat.OpenXml;using DocumentFormat.OpenXml.Packaging;using DocumentFormat.OpenXml.Spreadsheet;using System;....void Create(string fileName){using (SpreadsheetDocument document = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook)){var relationshipId = "rId1";//build Workbook Partvar workbookPart = document.AddWorkbookPart();var workbook = new Workbook();var sheets = new Sheets();var sheet1 = new Sheet() { Name = "First Sheet", SheetId = 1, Id = relationshipId};sheets.Append(sheet1);workbook.Append(sheets);workbookPart.Workbook = workbook;//build Worksheet Partvar workSheetPart = workbookPart.AddNewPart<WorksheetPart>(relationshipId);var workSheet = new Worksheet();workSheet.Append(new SheetData());workSheetPart.Worksheet = workSheet;//add document propertiesdocument.PackageProperties.Creator = "Your Name";document.PackageProperties.Created = DateTime.UtcNow;}For this project, make sure you include the reference to DocumentFormat.OpenXml. This is located in the path specified in the Installing OpenXML Example.The spreadsheet will be created with Your Name as the Author and the first Worksheet named First Sheet.Using Open XML SDK 2.5 Productivity ToolReading the specification for the document formats in OpenXML can be a time consuming process. Sometimes you just want to see how to produce a certain feature in a word-document. The Open XML SDK 2.5 Productivity Tool for Microsoft Office (OpenXmlSdkTool.exe) does just that. Its main features are:•See the structure of a file - which xml-parts does it contain•Navigate the xml in each of these parts•Generate c#-code for producing the selected part of the document•Link to the file format specification describing more details•Document OpenXML ValidationFor a simple 'Hello world.docx' it looks like this:The pane on the left show the document-structure. The top-right pane displays the xml corresponding to the selection in the tree, and finally the bottom-right pane show some generated code for producing the xml displayed above it.This enables a very hands on way to investigate a certain feature:•Produce an example-document (fx a word-document)•Open the document in Productivity Tool•Use 'Reflect Code' to generate codeThe SDK can be downloaded from https:///en-us/download/details.aspx?id=30425 - download and install both of the msi packages. After installation use OpenXMLSdkTool.exe installed in "C:\Program Files (x86)\Open XMLSDK\V2.5\tool".Read Getting started with openxml online: https:///openxml/topic/6967/getting-started-with-openxmlChapter 2: Create New Word Document with Open XMLIntroductionThe OpenXML document markup standard is an XML based format which enables solutions on many software platforms and operating systems.ExamplesHello WorldFirst, create a new console project using Visual Studio and add the following .dlls to your project:DocumentFormat.OpenXmlWindowsBaseNext, compile and execute the following code:static void Main(string[] args){// Create a Wordprocessing document.using ( WordprocessingDocument package = WordprocessingDocument.Create("HelloWorld.docx", WordprocessingDocumentType.Document)){// Add a new main document part.package.AddMainDocumentPart();// Create the Document DOM.package.MainDocumentPart.Document =new Document(new Body(new Paragraph(new Run(new Text("Hello World!")))));// Save changes to the main document part.package.MainDocumentPart.Document.Save();}}Under your \bin\Debug folder you should have your first WordprocessingML document:The text that we added in the above example is stored under the main document part. Inside the main document part there is the document element which allows a child element body to store the text which makes our document. There are two main groups of content for the document body, block level (paragraphs and tables) and inline content (runs and text). The block level content provides the main structure and contains inline content. To understand the example above, we first need to understand the text hierarchy in WordprocessingML. A paragraph is split into different runs. A run is the lowest level element to which formatting can be applied. The run is split up again into various text elements.Read Create New Word Document with Open XML online:https:///openxml/topic/9833/create-new-word-document-with-open-xmlChapter 3: How to add an image to a Word Document.IntroductionInserting an image in a word document using OpenXml require two actions: add the image inside the openxml and refer to the image in your DocumentRemarksif you only add the image to the openxml structure without refering it in the Word Document, the next time you "open / save" your document, the image file will be deleted.Word delete all orphan references. So make sure to add the image in the Word Document otherwise you will need to redo all the steps.ExamplesAdd the image to the OpenXml structureprivate string AddGraph(WordprocessingDocument wpd, string filepath){ImagePart ip = wpd.MainDocumentPart.AddImagePart(ImagePartType.Jpeg);using (FileStream fs = new FileStream(filepath, FileMode.Open)){if (fs.Length == 0) return string.Empty;ip.FeedData(fs);}return wpd.MainDocumentPart.GetIdOfPart(ip);}In this case we use a FileStream to retrieve the image, but feedData(Stream) is waiting for any kind of Stream.Refer to the image in the Word Documentprivate void InsertImage(WordprocessingDocument wpd, OpenXmlElement parent, string filepath) {string relationId = AddGraph(wpd, filepath);if (!string.IsNullOrEmpty(relationId)){Size size = new Size(800, 600);Int64Value width = size.Width * 9525;Int64Value height = size.Height * 9525;var draw = new Drawing(new DW.Inline(new DW.Extent() { Cx = width, Cy = height },new DW.EffectExtent(){LeftEdge = 0L,TopEdge = 0L,RightEdge = 0L,BottomEdge = 0L},new DW.DocProperties(){Id = (UInt32Value)1U,Name = "my image name"},new DW.NonVisualGraphicFrameDrawingProperties(new A.GraphicFrameLocks() { NoChangeAspect = true }),new A.Graphic(new A.GraphicData(new PIC.Picture(new PIC.NonVisualPictureProperties(new PIC.NonVisualDrawingProperties(){Id = (UInt32Value)0U,Name = relationId},new PIC.NonVisualPictureDrawingProperties()),new PIC.BlipFill(new A.Blip(new A.BlipExtensionList(new A.BlipExtension() { Uri = "{28A0092B-C50C-407E-A947-70E740481C1C}" })){Embed = relationId,CompressionState =A.BlipCompressionValues.Print},new A.Stretch(new A.FillRectangle())),new PIC.ShapeProperties(new A.Transform2D(new A.Offset() { X = 0L, Y = 0L },new A.Extents() { Cx = width, Cy = height }),new A.PresetGeometry(newA.AdjustValueList()) { Preset = A.ShapeTypeValues.Rectangle }))) { Uri ="/drawingml/2006/picture" })){DistanceFromTop = (UInt32Value)0U,DistanceFromBottom = (UInt32Value)0U,DistanceFromLeft = (UInt32Value)0U,DistanceFromRight = (UInt32Value)0U,EditId = "50D07946"});parent.Append(draw);}}In this example I set a static size of 800*600 but you can set any size you need Read How to add an image to a Word Document. online:https:///openxml/topic/9397/how-to-add-an-image-to-a-word-document-Chapter 4: Insert image into an inline "inline shape" in word documentsIntroductionInsert an image into an MS Word document shapes such as Rectangles and ovals.This documentation assumes you know how to insert an image into a word document, open and close a word document using OpenXMLExamplesAdd the following OpenXML namespaces to your classusing System;using System.Collections.Generic;using System.Linq;using DocumentFormat.OpenXml;using A = DocumentFormat.OpenXml.Drawing;using DW = DocumentFormat.OpenXml.Drawing.Wordprocessing;using PIC = DocumentFormat.OpenXml.Drawing.Pictures;using DocumentFormat.OpenXml.Drawing.Wordprocessing;using Wps = DocumentFormat.OpenXml.Office2010.Word.DrawingShape;Open the document and add imagePart object to reference the picture you want to insert into the shapeNow open the document using OpenXML, you must add an imagePart that references the picture object to the MainDocumentPart object by using a file stream, and get the ID of the imagestring temp;MainDocumentPart mainPart = document.MainDocumentPart;ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Bmp);using (FileStream stream = new FileStream(barcodepath,FileMode.Open)){imagePart.FeedData(stream);}temp = mainPart.GetIdOfPart(imagePart);Get a reference of a Blip objectIn office OpenXML, a picture that is inserted into a word document is considered a "Blip" Object or element. The class is derived from the DocumentFormat.OpenXml.Drawing the Blip must have an Embed value that is an imagePart ID. The Blip object then goes inside a BlipFill Object/element,and that also goes inside a graphicData Object/element and that in turn goes into a graphic object element. I'm pretty sure by now you've realized everything works like an XML tree. Sample OpenXML tree below.<a:graphic xmlns:a="/drawingml/2006/main"><a:graphicDatauri="/office/word/2010/wordprocessingShape"><wps:wsp><wps:cNvSpPr><a:spLocks noChangeArrowheads="1" /></wps:cNvSpPr><wps:spPr bwMode="auto"><a:xfrm><a:off x="0" y="0" /><a:ext cx="1234440" cy="1234440" /></a:xfrm><a:prstGeom prst="roundRect"><a:avLst><a:gd name="adj" fmla="val 16667" /></a:avLst></a:prstGeom><a:blipFill dpi="0" rotWithShape="1"><a:blip r:embed="Raade88ffea8d4c1b" /><a:stretch><a:fillRect l="10000" t="10000" r="10000" b="10000" /></a:stretch></a:blipFill></wps:spPr><wps:bodyPr rot="0" vert="horz" wrap="square" lIns="91440"tIns="45720" rIns="91440" bIns="45720" anchor="t" anchorCtr="0" upright="1"><a:noAutofit /></wps:bodyPr></wps:wsp></a:graphicData></a:graphic>Adding reference of the image the shapes in the template document.Now you have a reference of the image. Insert the image into the shapes in the templatedocument. To do this, you will have to use some LINQ to iterate through the document and get a reference to all the shapes in the document. The wps:spPr element you see in the above XMLcode is the xml element for the shapes in a document. The equivalent C# class is WordprocessingShapeIEnumerable<DocumentFormat.OpenXml.Office2010.Word.DrawingShape.WordprocessingShape> shapes2 = document.MainDocumentPart.document.Body.Descendants<DocumentFormat.OpenXml.Office2010.Word.DrawingShapeWith a collection reference of all the shapes, loop through the collection.Now that you have a collection of all the shape references in the document. Loop through thecollection with a foreach, and through each iteration create a Blip object. Set the Blip object embedvalue to the picture ID reference you captured earlier from the image part. Also create a Stretchobject, and FillRectangle object(these are not really necessary, they are just used them for properalignment of the image). And append each to its parent object like the XML tree equivalent.foreach (DocumentFormat.OpenXml.Office2010.Word.DrawingShape.WordprocessingShape sp in shapes2){//Wps.ShapeProperties shapeProperties1 =A.BlipFill blipFill1 = new A.BlipFill() { Dpi =(UInt32Value)0U, RotateWithShape = true };A.Blip blip1 = new A.Blip() { Embed = temp };A.Stretch stretch1 = new A.Stretch();A.FillRectangle fillRectangle1 = new A.FillRectangle() { Left = 10000, Top = 10000, Right = 10000, Bottom = 10000 };Wps.WordprocessingShape wordprocessingShape1 = newWps.WordprocessingShape();stretch1.Append(fillRectangle1);blipFill1.Append(blip1);blipFill1.Append(stretch1);Wps.ShapeProperties shapeProperties1 =sp.Descendants<Wps.ShapeProperties>().First();shapeProperties1.Append(blipFill1);}Read Insert image into an inline "inline shape" in word documents online:https:///openxml/topic/9660/insert-image-into-an-inline--inline--shape--in-word-documentsCredits。
NetSDK 主动注册使用说明书V1.0.0前言概述本文档详细描述了NetSDK主动注册工具的使用。
符号约定表示有高度潜在危险,如果不能避免,会导致人员伤亡或严重伤害。
表示有中度或低度潜在危险,等伤害。
表示有潜在风险,设备性能降低或不可预知的结果。
表示能帮助您解决某个问题或节省您的时间。
表示是正文的附加信息,是对正文的强调和补充。
目录前言 .................................................................................................................................................. I 1 简介 . (1)1.1概述 (1)1.2主界面 (1)2 基本配置 (3)2.1(可选)添加目录 (3)2.2添加设备 (4)2.2.1 通过IP地址添加 (4)2.2.2 通过主动注册添加 (5)3 日常操作 (9)3.1搜索设备 (9)3.2视频预览 (10)3.3云台控制 (11)3.3.1 调整监视区域 (12)3.3.2 调节镜头参数 (12)3.3.3 设定预置点 (12)3.3.4 三维定位 (13)3.4查看或修改设备属性 (13)1简介将NetSDK主动注册工具安装到PC,此时PC可以作为平台使用,用于连接有固定IP地址的设备,或者接收具有主动注册功能设备的注册,操作设备的云台功能。
平台的功能特性如下:●支持连接有固定IP地址的设备。
●支持接收具有主动注册功能设备的注册和连接。
●最大支持添加1000路设备通道(如IPC、球机、NVR等,其中IPC、球机是单通道设备,NVR是多通道设备)。
●最大支持添加1000个目录。
●支持预览设备的视频画面。
●支持操作设备的云台功能,包括调整监视区域,缩放视频画面大小、调节视频画面清晰度和调整视频画面亮度,设定预置点和定位设备到需要的位置。
整理编绎:林牧兴编绎日期:2013年4月13日星期六QQ:9725291 Email:croptree@ FX-9860GII SD 测量程序使用说明书2013.03.13 更新一、程序文件的安装:1.解压文件“Fx9860 Celang Addin.rar”。
2.打开CASIO FA-124 程序,将CL2012.g1a 插件和要素文件上传到计算器的内存中。
关于文件安装及同步的详细步就不讲了,不清楚的请百度一下。
3.打开计算器会发现多了一个项目。
4. 注册是为了收集反馈使用情况和插件的兼容性,方便下次修改。
5.注册是完全免费的。
6.从12.09版开始取消试用的功能。
7.主界面:按F1~F6选择功能。
F1:坐标正算放样功能F2:坐标反算功能F3:隧道断面测量功能F4:边坡放样功能F5:水准测量功能F6:坐标计算工具二.功能介绍:F1坐标正算:K=待求点的桩号D=待求点与中桩的偏距(左负右正)V=待求点与线路方位角的夹角,一般都是90度(斜交除外)。
Ht=结构物的厚度(正减负加)。
Rou:选择路线。
Set:设置参数。
K+:里程加上桩间距。
K-:里程减去桩间距。
K.D:切换显示结果样式按F1进入“选择数据库”(如右图)按上、下键移动选项,按EXE键选定文件,按F1查看平曲线要素;按F2查看竖曲线要素;按F3查看横坡/超高要素;按EXIT键重新选择文件。
整理编绎:林牧兴编绎日期:2013年4月13日星期六QQ:9725291 Email:croptree@ 按EXE 确认并返回(第一行显示打开的文件路径及要素数据文件名)参数设置:Mk=正算时为与下一个桩号的间距。
Mk=反算时为辅助桩号。
Pd=平坡距;即平曲线设计线到高程设计线的距离,一般是1米吧。
Hd=最大横坡距;就是超出这个范围的偏距不算横坡超高。
(不含平坡距的距离。
)设置好按F3或Exit确定并返回。
坐标显示结果:K=待求点的桩号X=待求点的X坐标Y=待求点的Y坐标Z=待求点的(中桩)设计高程F=待求点线路方位角HP=待求点横坡坡度BH=待求点(边桩)高程。
WM_W600_SDK用户手册V1.0北京联盛德微电子有限责任公司 (winner micro)地址:北京市海淀区阜成路67号银都大厦18层电话:+86-10-62161900公司网址:文档修改记录目录文档修改记录 (2)目录 (3)1引言 (5)1.1概述 (5)1.2芯片简介 (5)1.3SDK基本特征 (8)2SDK使用说明 (11)2.1软件架构 (11)2.2目录结构 (11)2.3编译连接 (12)2.3.1KEIL工程编译 (12)2.3.2GCC编译 (12)2.3.3编译结果 (12)2.4烧录固件 (13)2.4.1通过ROM烧录 (13)2.4.2通过SecBoot烧录 (13)2.5程序调试 (14)2.5.1固件调试信息 (14)2.5.2JTAG/SWD调试 (14)2.5.3AT指令调试 (14)3开发工具 (15)3.1编译工具 (15)3.1.1KEIL (15)3.1.2GCC (15)3.2IMG生成工具 (15)3.3下载工具 (16)3.4调试工具 (16)4开发指南 (17)4.1WM_SDK启动方式 (17)4.2用户程序入口 (17)4.3内存使用 (18)4.4FLASH布局 (18)4.5用户参数管理 (18)4.6系统参数管理 (19)1引言1.1概述本文主要描述W600软件开发包(SDK)的功能和使用方法,该SDK集成了600硬件驱动(BSP)、实时操作系统、TCP/IP协议栈、WiFi协议栈以及其它公共模块,能够满足大部分应用软件的需求。
1.2芯片简介Figure 1 W600芯片架构●芯片外观QFN32封装●芯片集成度集成Cortex-M3处理器,80MHz频率集成288KB SRAM集成1MB FLASH集成8通道DMA控制器,支持任意通道分配给硬件使用或是软件使用,支持16个硬件申请,支持软件链表管理片上集成2.4G射频收发器,满足IEEE802.11规范集成PA/LNA/TR-Switch集成32.768KHz时钟振荡器集成电压检测电路集成LDO集成电源控制电路集成上电复位电路●芯片接口集成1个SDIO2.0 Device控制器,支持SDIO 1位/4位/SPI三种操作模式,工作时钟范围0~50MHz集成2个UART接口,支持RTS/CTS,波特率范围1200bps~2Mbps集成1个高速SPI从设备接口,工作时钟范围0~50MHz集成1个SPI主/从接口,主设备工作时钟最高为20MHz,从设备支持最高6Mbps数据传输速率集成一个I2C控制器,支持100/400Kbps速率集成GPIO控制器集成PWM控制器,支持5路PWM单独输出或者2路PWM输入。
一、安装M8SDK
1. 下载最新的软件开发工具包(SDK);
2. 执行M8SDK.msi;
3. 按提示安装完成,完成安装后的文件夹结构如下:
Program Files
Windows CE Tools
wce600
M8SDK
Emulation ---- M8模拟器
Include ---- C/C++ 头文件 Lib ---- 库文件
Samples ---- 文档和例子
二、安装VS2005+SP1
三、如何创建M8应用程序
1. 打开VS2005,选择[文件]-[新建]-[项目]
项目类型选择:智能设备
模板选择:Win32 智能设备
输入项目的名称:M8Sample
点击确定后进入下一步
2. 选择下一步
3. 平台选择:选择M8SDK
4. 下一步后选择Windows 应用程序
5. 点击完成后VS2005自动生成一个程序框架,要想使用Meizu提供的界面库,我们不使用VS2005自动生成的程序框架。
删除M8Sample.cpp的所有内容
从SDK的安装目录中拷贝例子代码: Program Files\Windows CE
Tools\wce600\M8SDK\Samples\MZFC\mzfc_sample_01
拷贝mzfc_sample_01.cpp的所有内容,粘贴到M8Sample.cpp中
6. 配置项目设置
打开[项目] – [属性]
选择[链接器] – [输入] – [附加依赖项]
添加mzfc.lib –界面支持库
添加PlatformApi.lib –使用M8特殊硬件的支持库
添加CallInterface.lib –使用GPRS拨号的支持库
7. 如何使用 MZFC 的静态连接库?
随着固件版本的不断升级,MZFC 中某些函数接口可能会改变,如果使用动态链接mzfc.dll,会造成使用旧版SDK 编译生成的应用程序无法在新版的固件中正确运行,为
了解决这一问题,开发者可以选择静态链接MZFC 库:
步骤 6 中,不要使用mzfc.lib
按照步骤 6,添加mzfcs.lib(Release 版)或mzfcsd.lib(Debug 版)
[项目] – [属性] – [C/C++] – [预处理器] – [预处理定义]中添加:MZFC_STATIC
8. 编译生成应用程序。
9. 使用模拟器调试应用程序
在设备选择列表中选择:M8SDK Emulator
启动调试,模拟器会自动加载
可以和正常调试一样设置断点,查看程序运行状态等功能
10. 使用M8调试应用程序
在设备选择列表中选择:M8SDK ARMV4 Device
M8 设置中USB选择同步模式
连接M8至电脑中,安装ActiveSync驱动
连接至ActiveSync后,这时可以启动调试
应用程序会部署到M8中运行
11. 使用M8调试应用程序时,请把M8的固件升级到V0.8.0.3版本以上
四、发布应用程序
请使用CAB打包工具打包要发布的应用程序
要想应用程序出现在M8的桌面,需要在CAB文件中加入以下注册表信息:
[HKEY_LOCAL_MACHINE\SOFTWARE\Meizu\MiniOneShell\Main\你的应用名称]
"DisplayName"="Calculator" ;显示在桌面的名称
"ExecFileName"="\\windows\\Calculator.exe" ;应用程序可执
行文件路径
"ProgramID"="{52D0E792-4A35-4619-80B0-9204156D6F74}" ;GUID,请使用VS2005工具菜单下的生成GUID工具生成
"DefaultIcon"="\\windows\\calc8080.png" ;桌面图标
"Order"=dword:1 ;在当前桌面页中的位置
"Page"=dword:1 ;出现在桌面的第几页。