This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] GUI Composer应用程序安装和一般问题

Guru**** 2578945 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/594734/gui-composer-app-install-and-general-issues

您好,

我正在尝试使用GUI设计器构建一些示例应用程序,以便与MSP430连接。 我创建了一个带有Meter组件的简单仪表板,然后运行“文件”->“导出”->“作为独立应用程序”  已安装GUI Composer Runtime。 在大多数情况下,我只能看到"导出"对话框(请参阅下文),这会永远不会有任何结果(这是一般问题)。

单击“确定”之前,请确保已安装GUI Composer Runtime:
  • Windows GUI Composer Runtime安装程序: 下载
  • Linux GUI Composer Runtime安装程序: 下载
  • OSX GUI Composer Runtime安装程序: 下载

单击“确定”后,解压缩下载的应用程序,然后将该应用程序文件夹复制到GUI Composer Runtime文件夹中。  
(有关详细说明,请单击右上角的帮助图标)

正在处理...

几次我得到zip文件,将其安装在guicomposer运行时文件夹中,然后运行Win32_start.bat。 调用win32_splash.bat文件失败,因为闪屏文件夹中没有此名称的文件。

感谢您的任何建议

Fabio

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Fabio,

    我已将此问题转发给GUI Composer专家,我们将尽快回复您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,我回来了,有一个更新。

    我向当地的TI FAE求助。 在他的计算机(Windows 10)上一切正常。 应用程序zip包含两个.bat文件(win32_debug.bat和Win32_splash.bat),这些文件在我使用PC下载的zip文件中缺失。 我更新到了同一个Java运行时SE (我的版本比FAE的版本略旧,现在是版本8更新131内部版本1.8 .0_131-B11),但它没有帮助。

    我还检查了Chrome调试控制台消息,发现当我尝试导出应用程序zip时发生了一些情况:

    --------

    调用ti-guicomposer-quickstart-openProjectHdlr。
    ti-guicomposer-projectupdatewizard.html:279 ti-guicomposer-projectupdatewizarded:Designer project.json的版本为1.0 .6,项目的版本为1.0 .6
    (索引):500 projectFolder已更改为/workspaceserver/GC/default/prova
    designer-element.html:1124正在切换到主题图...主题图
    designer-element.html:1169正在打开的项目...
    WidgetBindingManager.js:407 Get dev.ti.com/.../index.json 404 (未找到)
    (匿名)@ gcFileCache.js:109
    承诺@ Q.js:642
    loadFile @ gcFileCache.js:79
    gc.fileCache.readJsonFile @ gcFileCache.js:119
    GC.DataBinD.WidgetBindingManager.loadBindingFromFile @ WidgetBindingManager.js:407
    (匿名)@ designer-element.html:3221
    _已完成@ Q.js:794
    self.promiseDispatch.done @ Q.js:823
    Promise.promise.promiseDispatch @ Q.js:756
    (匿名)@ Q.js:516
    冲洗@ Q.js:110
    调用ti-core-backbine.html:1434 ti-core-backplane ready function called
    ti-core-model-base-behaviole.html:192 model #undefined的状态更改为disconnected
    ti-service-serialio.html:1092 ti-service-serialio.attached:添加到gc.services!
    ti-service-serialio.html:491 ti-service-serialio:底板事件处理程序已初始化。backplane.currentState.name=disconnected
    TI-SERVICE-programloader.html:508 ti-service-programloader: Backplane event handler initialized. backplane.currentState.name=disconnected
    design-canvas.html:471 design-canvas:触发设计更改事件
    designer-element.html:3943 designer-element.getContent(fals): selectedPage =设计
    ti-core-backplane.html:1525 ti-core-backbackber.domReady:无法找到ti-widget-statusbar! 请将此零部件添加到您的设计中。
    ti-core-backbackplane.html:1512 ti-core-backbackplane:project.json不包含deviceName属性。
    designer-element.html:3943 designer-element.getContent(fals): selectedPage =设计
    designer-element.html:3371 saved:/workspaceserver/GC/default/prova/app/index.gui
    designer-element.html:3943 designer-element.getContent(fals): selectedPage =设计
    designer-element.html:3943 designer-element.getContent(fals): selectedPage =设计
    ti-guicomposer-projectexport.html:318 get dev.ti.com/.../package.json 404 (未找到)
    (匿名)@ gcFileCache.js:109
    承诺@ Q.js:642
    loadFile @ gcFileCache.js:79
    gc.fileCache.readJsonFile @ gcFileCache.js:119
    exportApp @ ti-guicomposer-projectexport.html:318
    exportAppHdr @ ti-guicomposer-projectexport.html:276
    handler @ polymoler.html:569

    --------

    在此阶段,"导出独立应用程序"对话框将永远处于停滞状态。 如上所述,有时我能够得到一个不完整的zip文件。 如果我手动添加从FAE PC下载的完整应用程序zip中获取的缺失文件,则该应用程序也可以在我的PC上运行。 不管怎样,通常我从导出命令中没有任何东西。

    谢谢

    Fabio

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    此问题项目是否指定? 是否可以获得您的项目的副本? 您可以将其导出为项目(非独立),这可能对您有效。 如果导出不可行,我可以从数据库中检索您的项目。

    此致,

    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Patrick:

    不,问题不是特定于项目的,我尝试创建的任何项目都会发生。 我是GUI作曲家的新用户,只是在探索该工具,所以我所做的项目本身并不重要。

    我尝试导出项目(“文件”->“导出”->“项目”),但似乎没有任何反应。

    请查找作为独立应用程序zip导出的附加项目(denova_led _termo.zip)(不包含丢失的闪存批处理文件)。

    另一个项目(provagc.zip)是在仪表板完成并正常工作后开始的,但在最近几周的测试中,这是唯一一次对我有效,但再次导出它,我甚至无法获得zip。

    谢谢

    Fabio

    e2e.ti.com/.../denova_5F00_led_5F00_termo.zip

    e2e.ti.com/.../provagc.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是什么浏览器? 导出为项目时,文件将在没有任何提示的情况下下载。 就像单击链接从互联网下载文件一样。

    我无法重现此问题,我们是否可以通过WebEx会议来演示您遇到的问题?
    在平均时间内,是否可以用chrome打开调试器工具并在控制台中输入此表达式? document.cooki="gclog.all=true",刷新页面并再次导出项目。 您应该能够在控制台中看到与项目导出相关的日志。 请在控制台筛选器文本框中添加[project],以仅显示项目导出日志记录。

    Patrick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,我的浏览器是Chrome版本58.0。3029.110 (64位)

    我可以导出项目,但它导致zip文件丢失闪存文件夹批处理文件。

    我键入了document.cookie...表达式并刷新了页面。
    如果可以帮助,这是刷新期间的控制台日志:

    --------
    iron-shadow-flex-layout.html:12此文件已过时。 请使用`iron-flex-layout/iron-flex-layout-classes.html`,并使用其中一个特定的dom模块
    (匿名)@ iron-shadow-flex-layout.html:12
    iron-flex-layout.html:14此文件已过时。 请使用`iron-flex-layout/iron-flex-layout-classes.html`,并使用其中一个特定的dom模块
    (匿名)@ iron-flex-layout.html:14
    gcDesignerMenuActions.js:543正在切换到主题图... ti-theme.
    ti-widget-propertygrid.html:394 ti-widget-propertygrid:将属性列标题更改为属性
    iron-drop.html:281 [Deprecation]/deep/ combinator已弃用。 如 欲了解更多信息,请访问:www.chromestatus.com/.../6750.4566万38341120。3834.112万。
    _saveScrollPosition @ iron-dropned.html:281
    _openedChanged @ iron-dropage.html:214
    _observerEffect @ polymoler.html:1668
    _effectEffects @ polymoler.html:1513
    _propertySetter @ polyers.html:1497
    __setProperty @ Polymer .html:1506
    _applyConfig @ polyers.html:2128
    _AfterClientsReady @ polymolon.html:2122
    _ready @ polymoler-mini-html:74
    _readyClients @ polymer-mini:html:82
    _ready @ polymoler-mini:70
    _readyClients @ polymer-mini:html:82
    _ready @ polymoler-mini:70
    _readyClients @ polymer-mini:html:82
    _ready @ polymoler-mini:70
    _tryReady @ polymoler-mini-html:60
    _initFeatures @ polymoler.html:4146
    createdCallback @ polacero-micro.html:202
    ti-core-sector.html:232 targetChanged: target=modelSelectionPanel[minWidth]=undefined
    TI-core-splifier.html:221更新:维度=宽度,水平=假
    ti-core-sector.html:232 targetChanged: target=modelSelectionPanel[minWidth]=100px
    TI-core-splifier.html:221更新:维度=宽度,水平=假
    调用ti-core-backbine.html:1434 ti-core-backplane ready function called
    2ti-widget-propertygrid.html:394 ti-widget-propertygrid:将属性列标题更改为属性
    ti-core-spliters.html:232 targetChanged: target=splitterContainerBottomPane[minHeight]=undefined
    TI-core-splifier.html:221更新:维度=高度,水平=真实
    ti-core-spliters.html:232 targetChanged: target=splitterContainerBottomPane[minHeight]=
    TI-core-splifier.html:221更新:维度=高度,水平=真实
    design-palette.html:406 design-palette:number of categories = 0
    pololicon-micro.html:277 [designer-element::_observerEffect]: observer method `maximizedChanged` not defined.(未定义观察方法。
    _logger @ polymoler-micro.html:277
    _warn @ polymer-micro.html:287
    _observerEffect @ polymoler.html:1670
    _effectEffects @ polymoler.html:1513
    _propertySetter @ polyers.html:1497
    setter @ polymoler.html:1576
    isTileTitleInDesignChanged @ designer-element.html:2780
    _observerEffect @ polymoler.html:1668
    _effectEffects @ polymoler.html:1513
    _propertySetter @ polyers.html:1497
    __setProperty @ Polymer .html:1506
    _applyConfig @ polyers.html:2128
    _AfterClientsReady @ polymolon.html:2122
    _ready @ polymoler-mini-html:74
    _tryReady @ polymoler-mini-html:60
    _initFeatures @ polymoler.html:4146
    createdCallback @ polacero-micro.html:202
    designer-element.html:3835 designer-element.loadHtml: HTML或Designer未定义
    designer-element.html:1413--selectedPageChange:所选页面=设计
    designer-element.html:2795 designer-element: getCanvas调用失败! 检查绑定,this.designer.$
    designer-element.html:754 browserMode=true
    18property-Inspector.html:198 property-Inspector:property-editor editor created!(属性-编辑器已创建!)
    2color-editor.html:106 this.value =
    5property-Inspector.html:198 property-Inspector:Property-Editor created!(属性-编辑器已创建!)
    uac.png:1获取 dev.ti.com/.../UAC.png 404 (未找到)
    designer-element.html:758设计窗口已上位
    ti-widget-propertygrid.html:829 ti-widget-propertygrid.configureGrid:使用默认值...
    ti-widget-statusbar.html:683 ti-widget-statusbar.updateBranding:即将读取project.json
    gcDesigner.js:54获取 dev.ti.com/.../templates 404 (未找到)
    doHttpRequest @ gcDesigner.js:54.
    获取@ gcDesigner.js:58
    (匿名)@ gcDesigner.js:190
    承诺@ Q.js:642
    _readDirectoryImpl @ gcDesigner.js:185
    readDirectory @ gcDesigner.js:208
    _getListOfTemplates @ ti-guicomposer-newprojectwizard-page-general.html:328
    _updateProjectProperties @ ti-guicomposer-newprojectwizard-page-general.html:269
    随函附上@ ti-guicomposer-newprojectwizard-page-general.html:86
    _invokeBehavior @ polyers-micro.html:455
    _doBehavior @ polymer-micro.html:445
    (匿名)@ polymoler-micro.html:227
    _Makeready @ polymer-micro.html:115
    (匿名)@ polymoler-micro.html:121
    (匿名)@ timere.js:21
    design-palette.html:341 design-palette:received metada_categories-changed event。num categories =0
    ti-core-backbackplane.html:1512 ti-core-backbackplane:project.json不包含deviceName属性。
    ti-widget-statusbar.html:693 ti-widget-statusbar.updateBranding:_showTiLogo = true
    ti-guicomposer-projectexport.html:570 ti-guicomposer-projectexport: gcRuntimeVersion = 4.0 .........0
    iron-shadow-flex-layout.html:12此文件已过时。 请使用`iron-flex-layout/iron-flex-layout-classes.html`,并使用其中一个特定的dom模块
    (匿名)@ iron-shadow-flex-layout.html:12
    iron-flex-layout.html:14此文件已过时。 请使用`iron-flex-layout/iron-flex-layout-classes.html`,并使用其中一个特定的dom模块
    (匿名)@ iron-flex-layout.html:14
    design-palette.html:406 design-palette:number of categories = 0
    调用ti-guicomposer-quickstart.html:226 ti-guicomposer-quickstart-openProjectHdlr。
    ti-guicomposer-projectupdatewizard.html:279 ti-guicomposer-projectupdatewizarded:Designer project.json的版本为1.0 .6,项目的版本为1.0 .6
    (索引):500 projectFolder已更改为/workspaceserver/gC/default/denova_led_termo
    gcDesignerMenuActions.js:543正在切换到主题图... ti-theme.
    designer-element.html:1169正在打开的项目...
    gcFileCache.js:109获取 dev.ti.com/.../index.json 404 (未找到)
    (匿名)@ gcFileCache.js:109
    承诺@ Q.js:642
    loadFile @ gcFileCache.js:79
    gc.fileCache.readJsonFile @ gcFileCache.js:119
    GC.DataBinD.WidgetBindingManager.loadBindingFromFile @ WidgetBindingManager.js:407
    (匿名)@ designer-element.html:3221
    _已完成@ Q.js:794
    self.promiseDispatch.done @ Q.js:823
    Promise.promise.promiseDispatch @ Q.js:756
    (匿名)@ Q.js:516
    冲洗@ Q.js:110
    调用ti-core-backbine.html:1434 ti-core-backplane ready function called
    ti-core-model-base-behaviole.html:192 model #undefined的状态更改为disconnected
    ti-service-serialio.html:1092 ti-service-serialio.attached:添加到gc.services!
    ti-service-serialio.html:491 ti-service-serialio:底板事件处理程序已初始化。backplane.currentState.name=disconnected
    TI-SERVICE-programloader.html:508 ti-service-programloader: Backplane event handler initialized. backplane.currentState.name=disconnected
    design-canvas.html:471 design-canvas:触发设计更改事件
    designer-element.html:3943 designer-element.getContent(fals): selectedPage =设计
    ti-core-backplane.html:1525 ti-core-backbackber.domReady:无法找到ti-widget-statusbar! 请将此零部件添加到您的设计中。
    ti-core-backbackplane.html:1512 ti-core-backbackplane:project.json不包含deviceName属性。
    design-palette.html:341 design-palette:received metada_categories-changed event。Num categories =15
    ----------------

    与导出相关的日志如下所示:

    --------
    ti-core-assises.html:76 [project]开始导出项目
    ti-core-assets.html:77 [project - callstack
    _trace @ ti-core-assets.html:77
    info @ ti-core-assets.html:85
    exportApp @ ti-guicomposer-projectexport.html:314
    exportAppHdr @ ti-guicomposer-projectexport.html:276
    export @ ti-guicomposer-projectexport.html:266
    (匿名) @ designer-element.html:2666
    (匿名) @ designer-element.html:2757
    _已完成 @ Q.js:794
    self.promiseDispatch.done @ Q.js:823
    Promise.promise.promiseDispatch @ Q.js:756
    (匿名)@ Q.js:564
    冲洗 @ Q.js:110
    TI-core-assets.html:76 [project] finished exporting project
    ti-core-assets.html:77 [project - callstack
    _trace @ ti-core-assets.html:77
    info @ ti-core-assets.html:85
    (匿名) @ ti-guicomposer-projectexport.html:336
    申请 @ Q.js:1107
    Promise.promise.promiseDispatch @ Q.js:748
    (匿名)@ Q.js:1333
    冲洗 @ Q.js:110
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Fabio,

    如果只是缺少splash/*.bat文件,则这不是导出项目问题。 批处理文件在您创建项目时生成。 请问您使用什么用户ID登录dev.ti.com? 您可以将您的用户ID秘密发送到我的电子邮件pchuong@ti.com,也可以通过E2E私下发送,然后可以查询您的项目以查看批处理文件是否位于首位。 您是否还可以创建一个新项目并告诉我该项目的名称? 我将查看这个新项目是否在闪存文件夹中有批处理文件。

    谢谢!
    Patrick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Patrick:

    有两个不同的问题:

    1. 当我尝试将项目导出为独立应用程序时,大多数情况下我甚至无法获得zip文件。 在“导出独立应用程序”对话框(“文件”->“导出”->“作为独立应用程序”)中按“确定”后,不会发生任何问题。
    2. 如果我(有时)得到zip文件,则splash/*.bat文件丢失。

     如dev.ti.com/.../readme.txt 文件中所述:

    您也可以通过运行
    位于应用程序项目文件夹中的win32_start.bat批处理文件来启动应用程序。 它通常位于用户文件夹中的guicomposer文件夹中。
    例如:
    
    	C:\Users\<MyUsername>\guicomposer\runruntime \gcruntime.v4\<project name>\win32_start.bat
    
    如果我在gcruntime的相关文件夹中解压zip文件,则尝试运行win32_start.bat文件,但由于其代码调用的splash bat文件丢失而失败。
    刚收到一个包含闪存文件的zip文件,应用程序就开始运行了。
    由TI FAE创建并复制到gcruntime文件夹的导出应用程序zip文件包含闪存bat文件并有效。

    “创建项目时生成批处理”是什么意思? 我运行应用程序的方式不是预期的方式吗?

    我使用我的帐户创建了几个小项目,名为:

    “MSP430_Temperature_demo”(摘自TI网站)
    "应用程序"
    "破折号"
    "denova_led太多"
    "原型"
    "provagc"->此项目的zip文件在我下载时包含闪存文件。

    我刚刚创建了一个名为"gcnew"的新项目,但我目前无法获得zip。
    我已将我的TI用户ID发送至您的@TI.com电子邮件。

    谢谢
    Fabio



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    感谢您的帮助,我通过电子邮件获得了您的用户ID! 我能够重现该问题,并且修补了GUI Composer。 您是否可以尝试创建新项目并再次导出它? 您创建的旧项目不包括所有必需的文件(即bat/json文件),这会导致导出步骤失败。 请告诉我是否可以导出新项目。

    如果您需要我帮助您修复任何无法导出的中断项目,请告诉我。

    谢谢!
    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Patrick:

    我创建了三个不同的项目,所有项目都可以正确导出并作为独立应用程序运行,因此修补程序应该已经解决了问题。 关于老项目,我不是很在意,它们只是实验,我对恢复它们没有特别的兴趣。

    非常感谢您的支持。 我将继续与GC合作,如果需要,我将开设新的职位。

    我只想问一个关于GUI编写器的一般问题。
    我会有兴趣创建这样的东西:假设我有一个设备(例如MSP430启动板,其中有一些连接到它的东西),并且我创建了一个图形用户界面,其中包含一个量表,温度计等等。 GUI显示从MSP通过串行端口/USB读取的数据(例如温度传感器)。 我希望允许远程用户查看GUI。 远程用户应在其浏览器上看到GUI,而GUI控件由我实验室中的设备更新。 是否可以使用GUI Composer完成此操作?

    谢谢
    Fabio
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    这是可能的,有两种方法我可以想到,它们都需要物联网代理。

    1. 如果您的设备具有WiFi模块,则可以直接将数据从设备发布到物联网代理。 您的GUI应用程序可以从物联网代理读取数据。
    2. 如果您的设备没有WiFi模块,则需要创建两个GC应用程序。 一个服务器应用程序,可从设备读取数据,并使用PC的WiFi连接将数据发布到物联网代理。 和客户端应用程序,从物联网代理检索数据。 我有一个MSP432G2设备的示例演示了此用例。 见 https://dev.ti.com/gallery/4199/。 这种方法需要编写一些JavaScript才能更好地使用。  

    入门页面中有一些教程,介绍了不同的型号(传输),USB/串行,MQTT/IoT等。 这可能有助于您了解各种型号及其工作方式。

    此致,
    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Fabio,

    感谢您对GUI Composer的关注。
    关于允许远程用户按您所述的方式使用您的应用程序的问题,您是否计划将其打开给特定用户/客户,或者是否希望公开向所有人打开?

    我问的原因是我想了解您的要求。

    此致,
    Winnie

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Winnie:

    现在,我只是在探索GUI Composer,以满足我的开发需求,例如,创建一个仪表板,显示来自我正在设计的设备的调试/监控数据,而不是用某种语言(C,C#,Java)编写特殊用途的PC程序,这总是一项复杂而耗时的任务。 除了在我的实验室中将其与我的计算机一起在本地使用之外,还可以监控安装在远程位置的设备,或者向在不同位置工作的另一位设计师展示从我实验室的原型中读取的数据。

    因此,第一个需求是只向特定用户开放数据,但当然,将来我可能也会对向每个人开放感兴趣。

    关于帕特里克的上一个答复,我看了一下,但我需要更深入地学习GC。 据我所知,"物联网代理"(无论它是什么...)应与MQTT相关。 正确吗? 您能否向我介绍一些有关开发应用程序的文档,如客户机/服务器图库温度演示?

    谢谢
    Fabio
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Fabio,

    在此处查看关于MQTT/IOT的教程部分,以了解选项1。
    dev.ti.com/.../index.html

    选项2是一些自定义选项,它基本上结合了服务器应用程序中的两个模型。 使用USB型号和MQTT型号。 USB型号从设备读取数据并使用MQTT发布数据。 因此,它不是按照选项1将数据直接发布到MQTT代理,而是将GC应用程序与您的PC主机Internet一起向代理发布MQTT数据。

    两个选项的客户端或多或少相同。 从MQTT代理读取数据。

    您可以将仪表板从我在上一篇文章中提供的库链接导入到GC设计器中的工作区,并查看将USB数据绑定到服务器应用程序中的MQTT的自定义javascript代码。

    此外,单击GC设计器中的“帮助|用户指南...”菜单以获取帮助和教程。

    此致,
    Patrick