1. 使用设计器,开发、编辑HAR工程包

HAR工程包处于系统体系结构如下:

  • 黄色区域是HAR工程包。
  • 相关智能设备的jar驱动程序库(smart device jar lib)大多由设备供应商提供,不包含在HomeCenter服务器中。
  • 工程包内的菜单项将在手机联机后展示到手机上。
  • 工程包内的事件脚本,将在相应事件发生时被JRuby引擎执行,而不论手机联机与否。
  • 同时存在多个活动状态的HAR工程包,是允许且合适的。

  1. 右键操作系统托盘上的HomeCenter图标,系统显示如下菜单:

  2. 点击"设计器"

  3. 系统弹出如下(本示例已加载Demo工程包,右侧13个列表项为将在手机上展示的13个菜单项。):

    Demo
    Demo工程包是了解HomeCenter智能设备物联网平台编程最佳入口,内附所能用到的各型实例和编程API。在Demo工程包上稍加改动便可快速实现所需功能。

    New
    新建一个空白工程

    Add
    添加一个菜单项到当前菜单中。如遥控器(Controller)、对智能设备(含电脑)的控制面板(Mlet)、批处理脚本等等

    Save
    保存工程包

    Activate
    激活、应用本工程包。当本工程是唯一活动工程时,手机连接后,本菜单将为首菜单。如果没有一个HAR工程处于活动状态,手机将进入桌面访问模式。

    Deactivate
    休眠、停用本工程包。Activate的反操作。

    Save as
    将本工程以har文件方式,另存到硬盘指定目录。
    • 如果该工程配置了升级网址,保存过程同时生成had描述文件,请将har(工程文件),had(描述文件)两文件上传到供应商服务器,以便升级。
    • 如果是共享给好友,仅需将har文件在好友电脑上加载即可。

    Load
    加载共享过来的har文件,并进入编辑状态。

    Shift Project
    切换到其它HAR工程。点击后,进入多HAR工程包管理界面。选定其它工程包,并点击"设计器"按钮,系统返回本界面,进入该工程包的编辑状态

    Help
    介绍本设计器的关键功能

  4. 左侧Menu Tree : 主要含有如下结点类型:
    • 工程结点:如下图[Sample Project, ver:1.0]
      • Name : 工程名称
      • ID : 工程唯一标识符。安装和升级时,用于区别其它工程包
      • ver : 工程包版本号
      • URL : 升级包网址。如果不提供升级,请置空。例如"http://example.com/dir_or_virtual/tv.had",注意:是tv.had描述文件,不是tv.har工程文件。两文件一并上传到供应商服务器目录dir_or_virtual下。两文件在点击Save as后生成。
    • 菜单结点:如下图[Sample Menu]
      • Name : 菜单标题
      • Column Number : 限定列数。如果为0表示系统采用适合屏幕宽度的列数
      • up : 上移指定的菜单项
      • down : 下移指定的菜单项
    • 事件结点:如下图[SYS_PROJ_STARTUP]
      • Event : 事件名称
      • Test Script : 测试并运行脚本区(JRuby script)内的脚本。如果有语法错误,系统将高亮
      • JRuby script : 当此事件发生时,系统运行此脚本代码

      四种事件类型:
      • SYS_PROJ_STARTUP:启动或加载时,调用本事件脚本
      • SYS_MOBILE_LOGIN:用户手机联线时,调用本事件脚本
      • SYS_MOBILE_LOGOUT:用户手机下线/断线时,调用本事件脚本
      • SYS_PROJ_SHUTDOWN:系统关闭或工程卸载时,调用本事件脚本。如果此前手机联线,先触发事件SYS_MOBILE_LOGOUT
    • 菜单项结点:如下图[Air Ctrler [controller://myctrl1]]
      • Display Name : 菜单项展示名称
      • Change Icon [64 X 64] : 更改菜单项的展示图标,须为64X64
      • target locator : 标识名。部分菜单项(如跳转到电脑屏幕,退出)的target locator名称为专用,不能且无需修改
      • 其它 : 根据不同的菜单项类型而有差别

      例如本结点是一个空调遥控器,它在左侧Menu Tree表示为Air Ctrler [controller://myctrl1]Air CtrlerDisplay Namecontroller是新建本菜单项时,选定的类型是CONTROLLERmyctrl1是功能标识名,即target locator

      删除菜单项结点步骤:
      1. 在菜单项结点上,右击
      2. 点击快捷菜单中的del menu item
    • 共用脚本(Share JRuby Files)结点:如下图[sharefunc.rb]
      • Script File Name : 脚本库名称
      • Test Script : 测试并运行该脚本,多用于发现语法问题
      • JRuby script : 脚本内容

      共用脚本(Share JRuby Files)结点提供共用的方法或实例。

      添加一个新共用脚本(Share JRuby Files)结点的步骤:
      1. 右击Share JRuby Files结点,显示如下:
      2. 点击add JRuby share file即可。

      删除共用脚本(Share JRuby Files)结点的步骤:
      1. 右击要删除的结点,例如sharefunc.rb结点,
      2. 点击快捷菜单的del JRuby file即可。
    • 共用库(Share Jar Files)结点:如下图[testlib.jar, version:1.0]
      • Name : Jar库名称
      • ver : Jar库备注版本

      共用库(Share Jar Files)结点提供共用的类、方法或底层设备驱动。

      添加一个新共用库(Share Jar Files)结点步骤:
      1. 右击Share Jar Files结点,显示如下:
      2. 点击add jar file,系统弹出选择文件对话框,选定文件即可

      删除共用库(Share Jar Files)结点步骤:
      1. 右击要删除的结点,例如testlib.jar, version:1.0结点,
      2. 点击del jar file即可。

      另存、导出共用库(Share Jar Files)结点步骤:
      1. 右击要另存的Jar结点,例如testlib.jar, version:1.0结点,
      2. 点击save as ...,系统弹出选择文件对话框,输入文件名即可。

  5. 添加一个菜单项步骤:
    1. 点击工具条的add按钮,系统弹出如下对话框:

      有三种可选类型:
      • CONTROLLER:遥控器或控制器,自定义遥控器按钮布局,并对遥控器按钮进行应答编程
      • CMD:执行一个动作或脚本。例如:退出配置画面、或在电脑端执行JRuby脚本
        1. 点击CMD图标,系统显示如下:

          OK按钮变成Next
        2. 点击Next按钮,系统弹出子类型窗口如下:

          CMD有三种子类型:
          • my-command:如果用户在手机上点击此菜单项,服务器端将执行JRuby批处理脚本
          • exit:退出或返回上级菜单项
          • config:如果用户在手机上点击此菜单项,将进入手机端的配置对话介面
      • SCREEN:显示电脑桌面或图形界面控制面板(Mlet,对智能设备、电脑进行状态监控或交互操作)
        1. 点击SCREEN图标,系统显示如下:

          OK按钮变成Next
        2. 点击Next按钮,系统弹出子类型窗口如下:

          SCREEN有两种子类型:
          • desktop:如果用户在手机上点击此菜单项,手机将进入电脑控制模式,显示远程桌面内容
          • mlet:如果用户在手机上点击此菜单项,服务器端将生成一个图形界面控制面板(Mlet)实例,并在手机端展示出来,手机操作后,图形界面实例(Mlet)产生相应事件,或驱动智能设备、电脑,或反馈状态。
            (Mlet)遵循Java GUI编程模型且采用JRuby语法