华为云用户手册

  • 前提条件 给用户组授权之前,请您了解用户组可以添加的系统权限,如表1所示。并结合实际需求进行选择。 表1 ESM系统策略 策略名称 描述 策略类型 策略使用建议 ESM FullAccess 拥有ESM管理权限,可以使用ESM所有功能。 系统策略 建议对进行开销户的管理员用户分配该策略。 ESM ReadOnlyAccess 拥有ESM只读权限,不可进行修改操作。 系统策略 建议对使用大屏可视的管理员用户分配该策略。
  • 示例流程 图1 给用户授权ESM服务权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予ESM服务的权限“ESM FullAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,验证ESM服务的权限: 在主菜单中选择 “组织”,进入“租户管理”页面。单击“创建租户”,若能正常创建租户,表示“ESM FullAccess”已生效。
  • 支持审计的关键操作列表 表1 支持审计的关键操作列表 操作名称 事件名称 更新局点信息 updateHcso 创建租户账号 createHcsoTenantAccount 修改租户账号 updateHcsoTenantAccount 删除租户账号 deleteHcsoTenantAccount 冻结租户账号 suspendHcsoTenantAccount 取消冻结租户账号 unsuspendHcsoTenantAccount 设置租户配额 updateHcsoTenantQuota 还原预注销租户 restoreHcsoDomain 创建HCSO租户 createHcsoDomain 修改HCSO租户 updateHcsoDomain 删除HCSO租户 deleteHcsoDomain 冻结/解除冻结租户 suspendHcsoDomain 预注销租户 deregisterHcsoDomain 创建HCSO租户用户 createOwnerUser 重置密码 updateOwnerUser 修改冷冻期时间 updateHcsoFreezingPeriod 创建HCSO局点 esm:CreateCustomerInfo 修改HCSO局点 updateHcso 删除HCSO esm:DeleteCustomerInfo 回退HCSO esm:RollbackCustomerInfo 修改hcso对接账号 updateHcsoAccount 导出HCSO局点ROS对接服务列表 esm:ListRosService 将HCSO局点服务添加到ROS对接例外 exceptHcsoRosService 新增配额配置 esm:CreateQuotaMetaInfo 删除配额配置 esm:DeleteQuotaMetaInfo 回退配额配置 esm:RollbackQuotaMetaInfo 导出租户列表 exportHcsoDomain 导出项目列表 exportHcsoProject 更新基线ros对接配置信息 updateRosConfiguration 更新基线ros对接云服务列表 updateRosServices 添加或取消添加ros对接云服务例外 exceptRosService 导入基线ros对接云服务列表 importRosServices 导出基线ros对接云服务列表 exportRosServices 开通ESM服务 openService 删除租户任务 createCleanupDomainJob 添加话单配置 createMeterApp 修改话单配置 updateMeterApp 删除话单配置 deleteMeterApp 重试任务 retrySdr 创建查询任务 createQueryJob 局点版本接入 createHcsoEdition 修改局点版本信息 UpdateHcsoEdition 虚拟局点接入 createVirtualHcso 修改虚拟局点详情 UpdateVirtualHcso 删除虚拟局点详情 DeleteVirtualHcso 回退虚拟局点 RollebackVirtualHcso 导出大屏数据 DlvDataExport
  • 操作步骤 单击主菜单的“组织”。默认进入“租户管理”页面。 单击“预注销管理”页签。 根据表1执行以下操作。 表1 预注销管理操作 任务 说明 步骤 开启或关闭设置冷冻期 根据需要设置是否开启冷冻期。 单击开启设置冷冻期。 单击关闭设置冷冻期。 设置冷冻期时长 该设置对全局生效,但对已进入冷冻期的预注销租户不生效。 单击打开“设置冷冻期”。 设置销户冷冻期时间。 单击“确定”。 还原租户 根据需要对预注销的租户进行还原操作。 说明: 只有状态为“已冻结”的租户支持还原操作。 在租户所在行,单击“操作 > 还原”。 也可选中需要还原的租户,单击左上方“还原”进行批量操作。 删除租户 对不需要使用的租户进行彻底删除操作。 说明: 局点已经对接ROS服务。 租户冷冻期已解除的租户才可执行删除操作。 彻底删除后,租户下的所有资源数据及配置都无法恢复,请谨慎操作。 在租户所在行,单击“彻底删除”。 在弹框中输入“租户名+DELETE”后,单击“确定”。
  • 操作步骤 单击界面右上方用户名,选择“消息通知设置”。 选择“消息模板”菜单,单击“创建模板”。 请参考表 模板参数创建进行。 表1 模板参数 参数 说明 模板名称 新建模板的名称。 描述 其他描述。 邮件或短信 主题 邮件主题内容,该参数仅当选择邮件方式时存在。 正文 支持以邮件或短信进行告警消息通知。 说明: 消息通知模板中支持的变量及取值范围如下所示: 告警名称:${alarm_name} 告警id:${alarm_id} 告警Region:${region_code} 告警类别:${event_category},取值:硬件告警(HARDWARE)/云服务告警(SERVICE_ALARM) 告警级别:${event_severity},取值:Critical/Major/Minor/Warning 告警对象:${event_object} 清除类型:${clear_category},取值:发生(Occur)/清理(Clear) 时间:${time},取值:告警发生时间/告警清理时间(UTC时间) 单击“确定”,完成创建。
  • 操作步骤 单击界面右上方用户名,选择“消息通知设置”。 执行表 其他任务中的操作。 表1 其他任务 任务 说明 步骤 查看通知规则与消息模板 查看通知规则与消息模板的列表详情信息。 选择“通知规则”或“消息模板”菜单。 查看列表详情。 编辑通知规则与消息模板 当需要对通知规则与消息模板修改时,执行此任务。 说明: 默认模板不支持修改。 选择“通知规则”或“消息模板”菜单。 选择操作对象的所在行,单击“编辑”。 修改参数。 单击“确定”。 删除通知规则与消息模板 当通知规则与消息模板不再使用时,执行此任务进行删除。 说明: 默认模板不支持删除。 选择“通知规则”或“消息模板”菜单。 选择操作对象的所在行,单击“删除”。 单击“确定”。
  • 授权 单击界面右上方用户名,选择“消息通知设置”。 在授权提示页面,阅读并确认授权信息。 使用消息通知服务(SMN)服务发送通知时,会根据实际用量进行费用收取。确认授权前请您务必了解SMN计费说明。 “确认授权”即ESM将会代理使用用户身份进行消息通知服务(SMN)服务调用,通过统一身份认证服务(IAM)创建委托授权进行资源运维。详情请参见委托其他账号管理资源。在创建委托前,请确保已有统一身份认证服务(IAM)的“创建委托”权限。详细授权操作请参见创建用户组并授权。 请勾选“我已理解并认可上述说明”,单击“确认授权”。 授权成功后默认进入“消息通知设置”页面。
  • 操作步骤 单击主菜单的“组织”。默认进入“租户管理”页面。 可执行表中表1的操作。 表1 相关操作 任务 说明 步骤 查看租户列表 当需要查看租户名称、状态及描述时,可以直接在列表中查看。 查看租户内的各项基础信息。 导出租户 将租户的基本信息导出并保存到本地,仅用于信息备份和统计。 单击“导出 > 导出租户”,默认导出所有租户。 导出项目 将租户下所有的项目信息进行导出。 单击“导出 > 导出项目”,默认导出所有项目。
  • 操作步骤 单击界面右上方用户名,选择“消息通知设置”。 若未授权,请阅读页面提示信息确认授权后进行使用。授权相关内容请参见委托授权说明。 单击“创建规则”,请参考表 规则参数填写相关信息。 表1 规则参数 参数 说明 通知名称 新建告警通知的名称。 Region 选择对应的局点,支持多选。 消息类型 选择告警消息的类型,支持多选。 消息模板 选择告警消息的消息模板。 告警级别 告警通知的级别,可以设置为紧急、重要、次要或提示。 主题 选择消息通知的特定事件类型,详情请参见SMN主题管理。 描述 其他描述。 单击“确定”,完成创建。
  • 操作步骤 单击主菜单的“可视化”,默认进入“运营大屏”页面。 大屏详细说明可参见表1。 选择进入需要查看的大屏。 单击“导出”按钮可将大屏的数据导出至本地查看。 表1 可视化运营大屏 大屏名称 说明 资源总览 大屏展示了硬件资源和常用云资源的数量、云资源总览、物理资源使用率、云资源配额统计、云资源使用趋势、虚拟资源分配率、虚拟资源分配额统计和虚拟资源使用率等内容,帮助用户更加清晰直观的了解资源的使用情况。 单击大屏右上角下拉框选择时间范围,用于指定物理资源使用率、云资源使用趋势、虚拟资源使用率展示的时间范围。 计算节点资源明细大屏和存储节点资源明细大屏属于资源总览的下钻大屏,相关数据内容可参见资源总览的数据内容,各展示项说明见表 资源总览。 硬件资源 大屏展示了硬件资源数量、运行状态、告警状态等,帮助用户实时掌握资源的运行情况,及时调整资源的分配,提高资源使用率以及避免可能的风险。 各展示项说明见表 硬件资源。 硬件告警 大屏展示了硬件资源近一个月的告警总量、告警总体状态、硬件告警统计、近一个月告警增长趋势和未清除的告警列表,帮助用户了解告警的整体现状,提高告警运营质量。 各展示项说明见表 硬件告警总览。 云服务状态 大屏展示云服务总体状态及各区域所有云服务的告警状态大盘,帮助用户掌握云服务的整体状态,快速识别出处于高危、隐患等状态的云服务分布,提高运营效率。 各展示项说明见表 云服务状态。 说明: 云服务状态说明如下: 高危:已部署的云服务存在未处理的紧急告警,则状态为高危。 隐患:已部署的云服务没有未处理的紧急告警,但存在未处理的重要告警,则状态为隐患。 健康:已部署的云服务即没有未处理的紧急告警,也没有未处理的重要告警,则状态为健康。 未部署:云服务未部署。 租户维度资源大屏 大屏展示各个云资源数量总计,从租户维度统计租户云列表、云资源变化趋势,并展示租户维度资源使用列表,帮助用户从租户维度全面掌握资源的分配和使用情况。 各展示项说明见表 租户维度资源大屏。 审计日志 大屏按风险级别对操作动作进行统计,并详细展示了操作人员在具体时间点对服务器、存储、网络设备等资源进行的操作,以审计日志报告的形式展现,方便用户查看。可在大屏右上角选择需要统计的时间范围。 各展示项说明见表 审计日志。 HCSO云服务资源容量明细 大屏展示HCSO云服务中各服务资源类型统计,并将分别以物理和逻辑维度展示总量、分配量、可用量的资源使用趋势。自助按虚拟机规格查询资源池的分配量、使用量等并支持导出。 各展示项说明见表 HCSO云服务资源容量明细。 表2 资源总览 展示项 说明 硬件资源 统计硬件资源数量。 常用云资源 统计ECS统计发放的虚拟机个数,EVS发放的磁盘个数,及其他常用云服务统计管理区和租户区已发放的资源。 单击EVS右侧的“详情”链接,可查看租户区和管理区存储节点资源容量明细。 云资源总览 统计ECS统计发放的虚拟机个数,EVS发放的磁盘个数,及其他云服务统计管理区和租户区已发放的资源。 物理资源使用率 展示所选时间范围内每日CPU和内存的平均使用率。 单击物理资源使用率右侧的“详情”链接,可查看租户区和管理区计算节点资源容量明细。 云资源配额统计 统计云资源的分配量与总量(只统计租户区)。 云资源使用趋势 展示所选时间范围内每日云资源分配率的变化趋势(只统计租户区)。 虚拟资源分配率 统计虚拟资源(vCPU、内存、磁盘)的分配率(租户区和管理区均统计在内)。 虚拟资源分配额统计 统计虚拟资源(vCPU、内存、磁盘)的分配量与总量(租户区和管理区均统计在内)。 虚拟资源使用率 展示所选时间范围内每日虚拟资源(vCPU、内存、磁盘)的使用率(租户区和管理区均统计在内)。 计算节点资源明细大屏 展示ECS资源各维度(AZ、Cluster、资源类型)的资源容量明细,包括vCPU、内存、vGPU等指标(租户区和管理区均统计在内)。 存储节点资源明细大屏 展示EVS资源各维度(AZ、资源类型)的资源容量明细,包括普通IO、高IO、超高IO等磁盘类型(租户区和管理区均统计在内)。 表3 硬件资源 展示项 说明 服务器 展示服务器数量和服务器名称、告警状态、运行状态、管理IP等信息。 交换机 展示交换机数量和交换机名称、告警状态、运行状态、管理IP等信息。 路由器 展示路由器数量和路由器名称、告警状态、运行状态、管理IP等信息。 防火墙 展示防火墙数量和防火墙名称、告警状态、运行状态、管理IP等信息。 安全设备 展示安全设备数量和安全设备名称、告警状态、运行状态、管理IP等信息。 表4 租户维度资源大屏 展示项 说明 租户云资源TOP10 按租户维度统计各个云资源的资源数,以资源数TOP10排序。 租户云资源使用趋势统计 按云资源维度统计每天资源数量变化趋势。 清单详情 各个云资源数量统计。 详情列表 云资源的详情列表,展示资源的常见信息。 表5 硬件告警总览 展示项 说明 告警总量 统计近一个月的历史告警(即已清除告警)和活动告警(即未清除告警),及各个级别的告警数量(包括已清除告警和未清除告警)。 告警总体状态 统计近一个月已清除告警的数量及占告警总数的比例,未清除告警的数量及占告警总数的比例。 硬件告警统计 分别统计近一个月网络设备(包含交换机、路由器、防火墙等)和物理主机的告警数量(包括已清除告警和未清除告警)。 近一个月告警增长趋势 统计近一个月各级别告警数量(包括已清除告警和未清除告警)的趋势。 当前告警 展示近一个月未清除告警的告警名称、级别、设备ID、开始发生时间、最后一次发生时间等信息。单击告警名称可查看告警详细信息。 历史告警 展示近一个月的历史告警(即已清除告警)和活动告警(即未清除告警)的告警名称、级别、设备ID、开始发生时间、最后一次发生时间等信息。单击告警名称可查看告警详细信息。 表6 审计日志 展示项 说明 风险级别统计 根据风险级别(紧急、重要、次要、提示)对操作动作进行汇总统计。 操作日志列表 轮播展示操作日志列表,显示操作名称、风险级别、操作人等信息。支持通过日志列表的操作名称、region匹配关键字搜索。 表7 云服务状态 展示项 说明 状态分布 统计处于高危、隐患、健康、未部署状态的云服务数量。 告警状态大盘 展示各区域内各云服务的状态及告警数量。 区域数量少于5个时,横向显示所有区域,区域下方一个方格代表该区域的一个云服务,已部署的云服务方格内显示当前未处理的紧急和重要告警数量。 区域数量是5个或5个以上时,告警状态大盘显示成一个二维表格,表头横向是各区域,纵向是各云服务。已部署的云服务,鼠标悬停到单元格上时显示对应区域对应云服务当前未处理的紧急和重要告警数量。 表8 HCSO云服务资源容量明细 展示项 说明 资源类型统计列表 展示常用基础云服务的容量视图情况。包含以下云服务:OBS、BMS、SFS、RDS、DeH、EIP、VPN。 资源使用趋势 展示不同云服务下的资源变化趋势。可在右上方选择时间维度,支持以“最近一周”、“最近一月”、“最近三月”进行查询。
  • 授权项说明 ESM当前所支持的系统策略操作与API相对应,授权项内容请参见表2。授权项列表说明如下: 权限:允许或拒绝对指定资源在特定条件下进行某项操作。 授权项:系统策略中支持的Action。 表2 授权项说明 所属策略 权限 授权项(Action) ESM FullAccess HCSO局点管理 esm:hcso:get esm:hcso:list esm:hcso:update HCSO租户管理 esm:hcsoTenant:create esm:hcsoTenant:delete esm:hcsoTenant:get esm:hcsoTenant:list esm:hcsoTenant:update esm:hcsoTenantOwnerUser:create esm:hcsoTenantOwnerUser:update HCSO project查询 esm:hcsoProject:list 配额管理权限 esm:hcsoQuota:get esm:hcsoQuota:update 可视化查看 esm:hcsoDashboard:use 告警通知管理 esm:hcsoDashboard:create esm:hcsoDashboard:get esm:hcsoDashboard:delete esm:hcsoDashboard:update esm:hcsoDashboard:list ESM ReadOnlyAccess HCSO局点只读 esm:hcso:get esm:hcso:list HCSO租户只读 esm:hcsoTenant:get esm:hcsoTenant:list HCSO project查询 esm:hcsoProject:list 配额只读 esm:hcsoQuota:get 可视化查看 esm:hcsoDashboard:use 告警通知只读 esm:hcsoDashboard:get esm:hcsoDashboard:list
  • ESM权限 默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。多数细粒度策略以API接口为粒度进行权限拆分,ESM支持的API授权项请参见ESM策略及授权项说明。 如表1所示为ESM的所有系统策略。 表1 ESM系统权限 策略名称 描述 策略类型 策略使用建议 ESM FullAccess 拥有ESM管理权限,可以使用ESM所有功能。 系统策略 建议对进行开销户的管理员用户分配该策略。 ESM ReadOnlyAccess 拥有ESM只读权限,不可进行修改操作。 系统策略 建议对使用大屏可视的管理员用户分配该策略。
  • 使用场景 场景挑战 设备采集的数据信息量庞大但只需部分有效数据。部署在节点下的设备需要在本地判断情况以及时进行控制。 设备使用的协议不能接入边缘计算。 节点下的IT子系统众多,接入时不便于管理,配置繁琐。子系统采集的数据需要传输到用户的北向应用。 解决方案 通过开发集成ModuleSDK的应用,您可以: 使用ModuleSDK提供的AppClient开发OT应用对需要上传到云端的信息进行过滤上传。OT应用可以在本地对设备进行命令的下发。 使用ModuleSDK提供的DriverClient开发驱动应用进行协议转换。 使用ModuleSDK提供的ItClient开发IT应用实现子系统与云端配置的自动同步,也可以实现云端对子系统的配置管理。云端可以通过IT应用实现对子系统数据的采集。
  • 简介 为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。IoT边缘平台应用功能有自定义处理设备数据(即数据处理),自定义协议设备快速接入(即协议解析),IT子系统接入(即IT应用),并且支持容器化部署和安装包部署的方式。 集成ModuleSDK开发的应用被称为插件应用,其最终将被通过云部署到边缘节点。 集成ModuleSDK的应用分为: OT应用:数据处理类型的应用,实现了总线回调接口,IoT边缘云服务为OT应用提供总线对接能力、设备反向控制(命令)能力。 驱动应用:协议转换类型的应用,可将使用自定义协议的设备接入边缘计算。 IT应用:实现工业子系统接入的应用,实现了对子系统配置同步、反向调用接口、以及数据采集能力。 集成了SDK的应用称为插件,华为云市场提供了插件上架功能。您可以将你开发的集成了SDK的应用上传到华为云市场来获取收益,也可以在华为云市场下载使用第三方插件。
  • 证书文件 在设备和对接边缘节点场景中,需要在设备侧集成相应证书。 资源包名 描述 下载路径 ModuleSDK(java) 利用ModuleSDK开发插件在边侧进行协议转换、设备上传的数据处理、接入IT子系统。 ModuleSDK(Java版) ModuleSDK(C) Module SDK是开发边缘运行应用(插件)所必须的工具包,提供数据处理、协议转换、IT子系统接入等功能,开发完成后,通过选择打包方式来决定是容器化部署还是进程化部署。 ModuleSDK_C_latest(包括x86_64, arm32, arm64版本,下载后解压选择对应版本) ModuleSDK(C#) 利用ModuleSDK开发插件在边侧进行数据采集等功能。 ModuleSDK_CSharp MQTT.fx MQTT.fx是MQTT设备模拟软件。 MQTT.fx下载地址 plt-device-ca 设备通过mqtts协议与边缘节点建立连接时,该证书用于校验边缘节点的身份。 证书文件 Modbus Slave Modbus Slave是Modbus Slave设备模拟软件。 Modbus Slave下载地址
  • 下载Demo 首先参考创建工程的步骤创建新的工程。 复制Demo,解压并覆盖新建项目中的 main.c 文件。 最终的文件树应如下图所示。 MyCApp │ ├─main.c // 主程序 │ ├─lib // sdk库文件 │ │ ├─libmodule.so │ │ └─*** │ ├─include // 头文件 │ │ ├─edge_error.h │ │ ├─edge_daemon.h │ │ └─edge.h └───conf // 配置文件 │ │ ├─sdk_log.conf //sdk日志配置 │ │ ├─module.dat //sdk需要的密钥 │ │ └─rootcert.pem //证书 └───start.sh // 启动脚本(编写启动脚本可参考制作镜像包或插件包) 详细目录树如下图 更多Demo参见ModuleSDK-C Demo展示。 父主题: 集成ModuleSDK(C)
  • 镜像包打包 构建需要打包的项目 构建项目,此处示例,构建好的文件存放在目录 /home/ModuleSDK-Demo 下 安装docker 请确认您使用的系统已经安装Docker(Docker版本需要高于17.06,推荐18.06),安装方法可参照docker 安装教程。 制作镜像 搜索基础镜像。 docker search dotnet 根据您的工程配置,选择合适的镜像。 镜像需要集成与您的工程配置兼容的.Net运行环境,下文使用的.Net版本仅作演示。 拉取镜像。 docker pull mcr.microsoft.com/dotnet/runtime:2.1 mcr.microsoft.com/dotnet/runtime:2.1 镜像是微软提供的镜像,非华为公司发布,且华为公司未提供任何官方镜像。该镜像在此仅做示例,华为对该镜像的安全性不作保证,强烈建议用户自己封装镜像! 编写 Dockerfile 制作镜像。 创建 Dockerfile,内容示例如下(具体可参考编写高效的Dockerfile )。 下面提供了ModuleSDK-Demo镜像构建样例,仅作示例展示,请按需修改。 # 基础镜像来源 FROM mcr.microsoft.com/dotnet/runtime:2.1 # 指定工作目录 WORKDIR /app # 复制工程二进制文件和相关文件(即项目构建发布的产物) COPY ModuleSDK-Demo/ /app ENTRYPOINT ["dotnet", "ModuleSDK-Demo.dll"] 构建镜像 docker build -t modulesdk-demo:1.0.0 -f Dockerfile . 查看打包完成的镜像 docker images 可以看到modulesdk-demo这个镜像已经制作完成。 REPOSITORY TAG IMAGE ID CREATED SIZE modulesdk-demo 1.0.0 85ed3c3dc738 8 minutes ago 182MB 上述步骤演示的是直接复制已编译好的工程文件来构建镜像,您也可以采取在构建镜像时编译的方式,具体可参照.Net 官方文档的指引。 镜像上传 上传镜像 镜像上传需要使用镜像容器服务(SWR),首先需要开通容器镜像服务(SWR)。开通及使用请参照容器镜像服务(SWR)。 获取 SWR 登录指令 获取登录指令请参照获取指令。 访问密钥即AK/SK(Access Key ID/Secret Access Key),获取的AK/SK将用于登录。 登录 SWR 仓库 docker login -u [区域项目名]@[AK] -p [登录密钥] [镜像仓库地址] 可以直接从控制台获取登录命令,如下图。 镜像仓库地址 = swr.区域项目名称.myhuaweicloud.com 例如,华北-北京一对应的镜像仓库地址为:swr.cn-north-1.myhuaweicloud.com 修改镜像所属组织 修改镜像的组织名,以便推送到个人组织内。 docker tag [OPTIONS] [镜像名:版本号] [镜像仓库地址/所属组织/镜像名:版本号] 例如: docker tag modulesdk-demo:1.0.0 swr.cn-north-4.myhuaweicloud.com/iotedge/modulesdk-demo:1.0.0 上传镜像 docker push [镜像仓库地址/所属组织/镜像名:版本号] 例如: docker push swr.cn-north-4.myhuaweicloud.com/iotedge/modulesdk-demo:1.0.0 在我的镜像查看上传结果 上传镜像后请在 SWR 将镜像设置为公开。 查看镜像详情: 编辑镜像: 设置为公开: 这一步很重要,关系到后面能否正常部署应用。
  • 镜像包打包 上传需要打包的项目。将项目上传到网络能访问到的Linux机器上,放到目录下(比如 /home/MyCApp)。 安装docker。 请确认你使用的系统已经安装docker(docker版本需要高于17.06,推荐18.06),安装方法可参照docker 安装教程。 制作镜像。 搜索基础镜像。 对基础镜像没有要求,可自行选择合适的基础镜像,以下选用带cmake的镜像作为示例 docker search cmake 选择合适的镜像(镜像需要集成了cmake且版本不低于3.9.5) NAME DESCRIPTION STARS OFFICIAL AUTOMATED lycantropos/cmake CMake Docker image 3 [OK] 拉取镜像 lycantropos/cmake镜像是docker hub第三方提供的镜像,非华为公司发布,且华为公司未提供任何官方镜像。该镜像在此仅做示例,华为对该镜像的安全性不作保证。强烈建议用户自己封装镜像! docker pull lycantropos/cmake 添加启动脚本start.sh,放到项目文件下(和main.c在一个目录下)。 function log(){ echo `date "+%Y-%m-%d %T"`: $1 } log "[INFO] start execute process." # 这里的路径取决于项目保存的位置 cd /opt/iot/edge/MyCApp ./MyCApp MyCApp为可执行文件,生成步骤可参考生成可执行文件 编写 Dockerfile 制作镜像 创建 Dockerfile,命名为 myapp-dockerfile 内容参照如下(具体可参考编写高效的Dockerfile )。 下面提供myapp-dockerfile 样例,请根据具体需要修改。 注意myapp-dockerfile需要和项目放到一个目录下。 #Version 1.0.0 # 基础镜像来源 # 如果不采用在镜像中编译源文件的方式,可以任意选择基础镜像 FROM lycantropos/cmake # 创建镜像文件目录,并且授权 RUN mkdir -p /opt/iot/edge/MyCApp/conf && chmod -R 777 /opt ENV docker_path=/opt/iot/edge/MyCApp ENV LD_LIBRARY_PATH=${docker_path}:$LD_LIBRARY_PATH WORKDIR ${docker_path} # 复制工程或文件到指定目录 COPY MyCApp/MyCApp $docker_path # 将依赖库和配置文件放到对应目录下,确保编译的时候不会出错 COPY MyCApp/lib /usr/lib COPY MyCApp/conf $docker_path/conf COPY MyCApp/start.sh $docker_path # 指定容器将要监听的端口 USER root EXPOSE 8082 ENTRYPOINT ["/bin/bash", "/opt/iot/edge/MyCApp/start.sh"] 构建镜像 docker build -f ./myapp-dockerfile -t my_app_docker:v1.0.0 ./ 查看打包完成的镜像 docker images 可以看到my_app_docker这个镜像已经制作完成。 REPOSITORY TAG IMAGE ID CREATED SIZE my_app_docker v1.0.0 983b4e5aa72a 10 minutes ago 1.51GB 镜像上传 以上步骤可以通过体验馆熟悉流程。 上传镜像 镜像上传需要使用镜像容器服务(SWR),首先需要开通容器镜像服务(SWR)。开通及使用请参照容器镜像服务(SWR)。 获取 SWR 登录指令 获取登录指令请参照获取指令。 访问密钥即AK/SK(Access Key ID/Secret Access Key),获取的密钥和AK将用于登录。 登录 SWR 仓库 docker login -u [区域项目名]@[AK] -p [登录密钥] [镜像仓库地址] 可以直接从控制台获取登录命令,如下图。 镜像仓库地址 = swr.区域项目名称.myhuaweicloud.com 例如,华北-北京一对应的镜像仓库地址为:swr.cn-north-1.myhuaweicloud.com 修改镜像所属组织 修改镜像的组织名,以便推送到个人组织内。 docker tag [OPTIONS] [镜像名:版本号] [镜像仓库地址/所属组织/镜像名:版本号] 例如, docker tag my_app_docker:v1.0.0 swr.cn-north-4.myhuaweicloud.com/iotedge/my_app_docker:v1.0.0 上传镜像 docker push [镜像仓库地址/所属组织/镜像名:版本号] 例如, docker push swr.cn-north-4.myhuaweicloud.com/iotedge/my_app_docker:v1.0.0 在我的镜像查看上传结果 上传镜像后请在 SWR 将镜像设置为公开。 步骤一: 步骤二: 步骤三: 这一步很重要,关系到后面能否正常部署应用。
  • 安装包部署 软件部署配置 部署方式选择安装包部署,"安装包地址"为{桶名/对象名}。如桶名为:“Demo”,对象名为:“ModuleSDK-Demo.zip”, 则安装包为obs://Demo/ModuleSDK-Demo.zip。 容器规格与高级配置请根据您的需要进行配置。 运行配置 输入端点、输出端点与demo中代码定义的端点一一对应,由于本例演示的是数采模块,因此不对端点进行配置。 部署配置请根据您的需要进行选择。 输入输出端点是非必需配置的,当有数据流转时需要配置,如OT应用(数据处理)。 驱动类应用和IT应用一般不需要配置。 配置确认 建议直接单击“立即发布”,方便后面直接部署应用的时候,能够获取到最新版本。
  • edge.h的接口函数介绍 所有接口函数定义的数据结构均呈现在edge_struct.h头文件中。 1. 初始化 接口描述: int edge_init(const char* workdir) 接口功能: 初始化sdk的工作环境,加载证书、读取配置等 表13 参数说明 参数名称 类型 参数描述 示例 workdir workdir 初始化文件所在目录,conf目录所在的目录,conf是存放证书文件以及日志配置的目录 conf在/code/api_test/workdir目录下,就填写/code/api_test/workdir 2. 注册回调接口 接口描述: int edge_set_callbacks(ST_MODULE_CBS* module_cbs, ST_DEVICE_CBS* device_cbs) 接口功能: 注册回调接口,登录、子设备添加、删除、设备消息、设备命令等都是异步通知的,故需要注册对应的处理函数。 表14 参数说明 参数名称 类型 参数描述 module_cbs ST_MODULE_CBS 模块回调函数结构体 device_cbs ST_DEVICE_CBS 设备回调函数结构体 表15 ST_MODULE_CBS模块相关的回调函数说明 参数名称 类型 参数描述 pfn_shadow_cb FN_SHADOW_ARRIVED* 模块影子回调函数类型,模块的配置可以使该接口接收 pfn_command_cb FN_COMMAND_ARRIVED* 发送到模块的命令的接收函数声明, pfn_connected FN_SDK_CONNECTED SDK连接到边缘hub的回调函数声明 pfn_disconnected FN_SDK_DISCONNECTED SDK和边缘hub断链的回调函数声明 表16 ST_DEVICE_CBS子设备相关的回调函数 参数名称 类型 参数描述 pfn_device_message_cb FN_MESSAGE_ARRIVED* 子设备消息回调 pfn_device_command_cb FN_COMMAND_ARRIVED* 子设备命令回调 pfn_device_event_cb FN_DEVICE_EVENT_ARRIVED* 子设备事件回调 pfn_sub_device_add_cb FN_SUB_DEVICE_ADD_ARRIVED* 子设备添加通知回调 pfn_sub_device_deleted_cb FN_SUB_DEVICE_DELETED_ARRIVED* 子设备删除通知回调 pfn_on_start_scan_cb FN_START_SCAN_ARRIVED* 收到子设备扫描通知回调 pfn_device_properties_set_cb FN_DEVICE_PROPERTIES_SET_ARRIVED* 收到子设备属性设置通知回调 pfn_device_properties_get_cb FN_DEVICE_PROPERTIES_GET_ARRIVED* 收到子设备属性获取通知回调 pfn_device_shadow_cb FN_DEVICE_SHADOW_ARRIVED* 收到子设备影子
  • edge.h回调函数说明 模块影子数据回调 函数描述: typedef EDGE_RETCODE (FN_SHADOW_ARRIVED)(const char* shadow, unsigned int shadow_len); 函数功能: 当下发模块配置时,通过此函数通知到用户,用户应用的配置也通过此函数通知。 表2 参数说明 参数名称 类型 参数描述 示例 shadow char* 模块影子数据(json字符串),第三方应用下发用户的配置数据 { “config”:”test” } shadow_len unsigned int 影子数据的长度 - 命令下发回调 函数描述: typedef EDGE_RETCODE (FN_COMMAND_ARRIVED)(const char* command_name, const char* device_id, const char* service_id, const char* request_id, const char* body, unsigned int body_len); 函数功能: 此函数声明用户命令下发通知,设备命令下发即使用此函数声明。 表3 参数说明 参数名称 类型 参数描述 command_name char* 设备命令名称,在设备关联的产品模型中定义。 device_id char* 命令对应的目标设备ID,命令下发对应的最终目标设备 service_id char* 设备的服务ID,在设备关联的产品模型中定义 request_id char* {request_id}用于唯一标识这次请求,响应该命令时需要带上。 body char* json字符串,设备命令的执行参数,具体字段在设备关联的产品模型中定义 body_len unsigned int - 消息下发回调 函数描述: typedef EDGE_RETCODE (FN_MESSAGE_ARRIVED)(const char* message_id, const char* message_name, const char* device_id, const char* body, unsigned int body_len); 函数功能: 此函数声明用于消息下发通知,平台使用此接口承接平台下发给设备的自定义格式的数据。 表4 参数说明 参数名称 类型 参数描述 message_id char* 消息名称 message_name char* 消息的唯一标识 device_id char* 命令对应的目标设备ID,命令下发对应的最终目标设备 body char* 消息内容。 body_len unsigned int 消息长度 事件下发回调 函数描述: typedef EDGE_RETCODE (FN_DEVICE_EVENT_ARRIVED)(const char* device_id, const char* body, unsigned int body_len); 函数功能: 此函数声明用于事件下发通知,平台使用此接口承接平台下发给设备的自定义格式的数据。 表5 参数说明 参数名称 类型 参数描述 示例 device_id char* 命令对应的目标设备ID,命令下发对应的最终目标设备 - body char* 事件内容。 { "object_device_id":"deviceId", "services":[ { "service_id":"serviceTest", "event_id":"eventTest", "event_type":"eventTypeTest", "event_time":"time", "paras":{ "test":"test" } } ] } body_len unsigned int 消息长度 - 子设备添加回调 函数描述: typedef EDGE_RETCODE (FN_SUB_DEVICE_ADD_ARRIVED)(const char* addSubDeviceInfo, unsigned int body_len); 函数功能: 此函数声明用于通知子设备添加,使用此接口承接平台添加成功子设备的通知。 表6 参数说明 参数名称 类型 参数描述 示例 addSubDeviceInfo char* 添加成功的子设备信息,具体格式见示例 {"devices": [{"parent_device_id":"c6b39067b03421a48", "node_id": "subdevice11", "device_id":"2bb77-063ad2f5a6cc", "name": "subDevice11", "description": null, "product_id":"c6b3b34663d3ea42f6", "fw_version": null, "sw_version": null, "status": "ONLINE" }],"version":1} body_len unsigned int 长度 - 子设备删除回调 函数描述: typedef EDGE_RETCODE (FN_SUB_DEVICE_DELETED_ARRIVED)(const char* deleteSubDeviceInfo, unsigned int body_len); 函数功能: 此函数声明用于通知子设备删除,使用此接口承接平台删除成功子设备的通知。 表7 参数说明 参数名称 类型 参数描述 示例 deleteSubDeviceInfo char* 删除成功的子设备信息,具体格式见示例 {"devices": [{"parent_device_id":"c6b39067b03421a48", "node_id": "subdevice11", "device_id":"2bb77-063ad2f5a6cc", "name": "subDevice11", "description": null, "product_id":"c6b3b34663d3ea42f6", "fw_version": null, "sw_version": null, "status": "ONLINE" }],"version":1} body_len unsigned int 长度 - 子设备扫描回调 函数描述: typedef EDGE_RETCODE (FN_START_SCAN_ARRIVED)(const char* protocol, const char* channel, const char* parentDeviceId,const char* scan_setting, unsigned int body_len); 函数功能: 此函数声明用于通知网关扫描子设备。 表8 参数说明 参数名称 类型 参数描述 protocol char* 协议 channel char* 通道信息 parentDeviceId char* 父设备ID scan_setting char* 扫描设备 body_len unsigned int 配置长度 子设备属性设置回调 函数描述: typedef EDGE_RETCODE (FN_DEVICE_PROPERTIES_SET_ARRIVED)(ST_PROPERTY_SET* sub_device_property_set); 函数功能: 此函数声明用于接收平台对子设备的属性设置。 表9 参数说明 参数名称 类型 参数描述 示例 sub_device_property_set ST_PROPERTY_SET* 属性设置 参见edge.h 子设备属性获取回调 函数描述: typedef EDGE_RETCODE (FN_DEVICE_PROPERTIES_GET_ARRIVED)(ST_PROPERTY_GET* sub_device_property_get); 函数功能: 此函数声明用于接收平台获取子设备的属性。 表10 参数说明 参数名称 类型 参数描述 示例 sub_device_property_get ST_PROPERTY_GET* 属性设置 参见edge.h 子设备影子回调 函数描述: typedef EDGE_RETCODE (FN_DEVICE_SHADOW_ARRIVED)(ST_DEVICE_SHADOW* sub_device_shadow); 函数功能: 此函数声明用于接收平台设置子设备的影子。 表11 参数说明 参数名称 类型 参数描述 示例 sub_device_property_get ST_DEVICE_SHADOW* 属性设置 参见edge.h 自定义topic消息通知回调 函数描述: typedef EDGE_RETCODE (FN_CUSTOMIZED_MESSAGE_ARRIVED)(const char* topic, const char* payload, unsigned int len); 函数功能: 此函数声明用于接收平台设置子设备的影子。 表12 参数说明 参数名称 类型 参数描述 topic char* 自定义topic payload char* 消息内容 len unsigned int 消息长度
  • SDK概述 华为云会议服务为开发者提供Windows、Android、iOS、Mac、Electron、Web的客户端SDK,方便开发者将华为云会议的音频会议、视频会议、桌面共享能力快速集成到自己的应用中。 华为云会议的客户端SDK已经实现了会议中UI界面,包括会场画面显示,会议控制功能,桌面共享等,开发者只需要调用少量接口即可完成华为云会议能力的集成。客户端SDK已经提供的主要UI如下(以Windows SDK为例,其他平台的SDK能力相同,只是界面布局有差异。Web客户端SDK的能力差异较大,详细功能点对比请参考“Android/iOS/Windows/Mac/Web SDK功能对比”)。 会议中的主界面 图1 会中主界面 桌面共享界面 图2 桌面共享界面 会议来电界面 图3 会议来电界面 来电通知界面只有在应用进程没有被系统终止的情况下才能收到来电通知,移动端SDK并不提供VoIP Push能力。 Web端只能主动加入会议,不能被邀请加入会议。 Android/iOS/Windows/Mac/Web SDK功能对比如下: 表1 Android/iOS/Windows/Mac/Web SDK功能对比 分类 功能项 Windows Mac Android iOS Web桌面版 备注 会议管理 会议预约 √ √ √ √ x 接口 创建立即会议 √ √ √ √ x 接口 编辑会议 √ √ √ √ x 接口 取消会议 √ √ √ √ x 接口 会议列表 √ √ √ √ x 接口 查询会议详情 √ √ √ √ x 接口 查询云会议室 √ √ √ √ x 接口 修改云会议室信息 √ √ √ √ x 接口 加入会议 通过会议ID加入会议 √ √ √ √ √ 接口 通过会议链接(Random码)加入会议 √ √ √ √ √ 接口 被邀加入会议 √ √ √ √ x UI 与会者会控 自己麦克风静音 √ √ √ √ √ UI 自己扬声器闭音 √ √ √ √ √ UI 音频设备切换 √ √ √ √ √ UI 摄像头切换 √ √ √ √ √ UI 修改会场名称 √ √ √ √ √ UI 举手 √ √ √ √ √ UI 选看 √ √ √ √ √ UI 离开会议 √ √ √ √ √ UI 主持人会控 全场静音 √ √ √ √ √ UI 静音其他与会者 √ √ √ √ √ UI 移除与会者 √ √ √ √ √ UI 转移主持人 √ √ √ √ √ UI 结束会议 √ √ √ √ √ UI 启动录制 √ √ √ √ √ UI 锁定会议 √ √ √ √ √ UI 锁定共享 √ √ √ √ √ UI 广播单画面 √ √ √ √ √ UI 广播多画面 √ x x x x UI 设置联席主持人 √ √ √ √ x UI 画面布局 桌面:演讲者模式 √ √ - - √ UI 桌面:画廊模式 25画面 25画面 - - 6画面 UI 桌面:画中画模式 √ √ - - x UI 移动:大画面 - - √ √ - UI 移动:均分画面 - - √ √ - UI 语音激励 √ √ √ √ √ UI 视频分辨率 发送最高分辨率 1080P(默认720P) 720P(默认360P) 720P 720P 360P UI 接收最高分辨率 1080P(默认720P) 720P(默认360P) 720P 720P 720P UI 桌面共享分辨率 发送最高分辨率 4K 1080P 4K 4K 1080P UI 接收最高分辨率 4K 1080P 4K 4K 1080P UI 会议共享 发起屏幕共享 √ √ √ √ √ UI 观看屏幕共享 √ √ √ √ √ UI 发起白板共享 √ √ x x x UI 观看白板共享 √ √ √ √ √ UI 发起程序共享 √ √ x x √ UI 观看程序共享 √ √ √ √ √ UI 标注 √ √ √ √ x UI 远程控制 √ √ x x x UI 聊天 聊天窗口 √ √ √ √ √ UI 弹幕 √ √ √ √ √ UI 点对点通话 视频通话 √ √ √ √ x UI 音频通话 √ x √ √ x UI 其他 美颜 √ x √ √ x UI 虚拟背景 √ √ x √ x UI 说明: Windows、Mac、iOS SDK支持虚拟背景 其他端Android SDK需要集成虚拟背景功能,请联系华为销售人员。 语音会议 √ √ √ √ x UI AI字幕 √ √ x x x UI 投票 √ √ √ √ x UI Web SDK仅支持桌面版(Windows和Mac的Chrome浏览器和Safari浏览器),不支持手机版(Android和iOS)。 集成Web SDK时如果需要使用“会议管理”功能,请在服务后台调用服务端API的“会议管理”接口。 Electron SDK的功能与Windows和Mac SDK功能相同。
  • Config 接口描述 Windows SDK中已经提供了会议中的界面,界面上的部分元素是可以自定义的。可以自定义的界面元素如下: 会议窗口名称 会议开始后,在Windows任务栏上会生成一个会议的图标,鼠标指向该图标时会显示会议的缩略窗口,该窗口的名称可以自定义。 图1 会议窗口名称 会议窗口的图标,可以替换HwmSdk\sdkResources\nativeimg目录下的video.ico图标文件。 会议信息及会议链接前缀 会议链接的域名前缀默认是https://bmeeting.huaweicloud.com/(如https://bmeeting.huaweicloud.com/#/j/982989574),如果入会Portal是第三方自己开发的,这个前缀需要自定义。 整个会议信息也可以自定义显示或者隐藏。 图2 会议信息 来电窗口 会议来电窗口默认在收到来电时弹出,可配置成隐藏,在收到来电通知时调用会议来电应答接口来应答: 图3 来电窗口 会控按钮 删除或者修改SDK中自带的会控按。具体可以删除和修改的按钮见按钮ID定义表。 自定义新增按钮。具体用例见自定义会控按钮。 图4 底部工具栏和更多菜单 图5 共享工具栏和更多菜单 图6 自定义子菜单项: 自定义会议信息窗口 图7 自定义会议信息框 图8 状态工具栏 图9 与会者详情头像点击 自定义会议信息窗口请参考“显示会议信息框”和“销毁会议信息框”。 注意事项 只有需要更改会议界面默认显示样式时,才需要调用该接口,若默认样式已满足要求,可以不调用该接口。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode Config(char uiConfig[HWM_MAX_CONFIG_LEN]);
  • 开发环境准备 在开发的过程中请满足如下环境要求。 表1 环境要求 环境和工具名称 版本要求 说明 操作系统 Windows 10/11专业版 硬件要求: CPU:i5-2400四核 3.1GHz及以上。 内存:4GB及以上。 Microsoft Visual Studio Visual Studio 2017 安装时需要勾选“使用 C++ 的桌面开发”,“用于 x86 和 x64 的 Visual C++ MFC”,“Windows 10 SDK (10.0.15063.0)” 测试资源及App ID申请 - 请参见“开发前准备”。
  • 自定义会控按钮 自定义新增按钮。底部工具栏按钮、共享工具栏和更多菜单中的按钮支持第三方开发者自定义添加。目前底部工具栏和共享工具栏限制自定义按钮个数为1,超出的自定义按钮会移入更多菜单,自定义底部/共享工具栏按钮的顺序固定在“更多”按钮前;自定义更多菜单按钮会在底部和共享工具栏更多按钮中同时生效,底部工具栏的更多菜单中自定按钮添加在菜单栏最后,共享工具栏的更多菜单中自定按钮添加在“离开”按钮前。 删除自定义按钮。通过Config接口删除customButton中的按钮配置,关于清空自定义按钮操作,若赋值customButton:[],则清空全量自定义按钮;若customButton下未配置某位置下的自定义按钮,则清空该位置下的自定义按钮。 自定义按钮子菜单功能说明: 当 subMenu 为空时,点击按钮通知对应按钮 id 被点击; 当 subMenu 不为空时,点击按钮显示 subMenu 二级菜单,并且不通知; 通过Config接口增删改自定义按钮时,需要传对应位置的全量自定义按钮,支持动态刷新底部/共享工具栏,更多菜单不支持,而是在重新生成时刷新。刷新单个自定义按钮请参考刷新自定义按钮配置。 增加自定义按钮 以添加自定义带子菜单的底部工具栏按钮、共享工具栏按钮和更多菜单按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMenu", "title": "自定义按钮", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 1, "subMenu":[ { "id": "customSecondMenu", "title": "二级菜单", "buttonImg": "D:/demoResource/icon-whiteboard.svg" } ] }, { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 } ] } } } } 更新自定义按钮 注意确保id和buttonPos正确,修改按钮的其他信息。以重命名底部工具栏按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMenu", "title": "重命名按钮", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 1, "subMenu":[ { "id": "customSecondMenu", "title": "二级菜单", "buttonImg": "D:/demoResource/icon-whiteboard.svg" } ] }, { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 } ] } } } } 删除部分自定义按钮 customButton删除对应按钮,同时需要保留其他自定义按钮。以删除底部工具栏自定义按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 } ] } } } } 清空某个位置下的自定义按钮 customButton中删除该位置下的所有自定义按钮即可,若customButton下未配置某位置下的自定义按钮,则会清空该位置下的自定义按钮。以清空底部工具栏自定义按钮为例: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ { "id": "customMore", "title": "自定义更多", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 0 }, { "id": "customShare", "title": "自定义共享", "buttonImg": "D:/demoResource/icon-whiteboard.svg", "buttonPos": 2 }, ] } } } } 清空全量自定义按钮 customButton传入空数组,会清空所有位置下自定义按钮。清空示例如下: { "frame":{ "confMenu":{ "toolBar":{ "customButton": [ ] } } } } 父主题: 界面定制
  • enableFeature 接口描述 用于开启特性支持。 注意事项 默认是开启分组会议,若不需要分组会议功能,再调用此接口。 先创建初始化对象(HWMOpenSDKConfig),再调用该接口,最后初始化。 方法定义 void enableFeature(HWMEnableFeatureType confCapabilityType, boolean enable) 参数描述 表1 枚举HWMEnableFeatureType说明 值 描述 HWM_FEATURE_TYPE_BREAKOUT_CONF 分组会议能力 HWM_FEATURE_TYPE_CONFIRM_RECORD 是否显示录制安全提示窗,默认不显示 HWM_FEATURE_TYPE_SAVE_NICK_NAME_WHEN_ANONYMOUS_JOIN 匿名入会时保存会中名字 HWM_ENABLE_FEATURE_TYPE_VIRTUAL_BACKGROUND 是否支持虚拟背景 返回值 无 示例代码 // 自定义功能开启或屏蔽 openSDKConfig.enableFeature(HWMEnableFeatureType.HWM_FEATURE_TYPE_CONFIRM_RECORD, true);
  • 80.10.5更新内容 1. 获取VMR列表接口和修改云会议室信息接口新增参数confAllowJoinUser、isOpenWaitingRoom,具体详见 获取VMR列表和修改云会议室信息。 2. 新增设置共享权限接口SetShareScreenPermission,具体详见设置共享权限。 3. 加入会议接口新增参数isStopConflictConf,具体详见加入会议。 4. 获取会议详情新增参数vmrConfIdType,具体详见获取会议详情。 5. AppId登录接口新增参数deptCode,具体详见AppId登录。 父主题: 版本更新内容
  • 修订记录 表1 修订记录 日期 版本 修订内容 2024-6-13 100.5.5 1. 新增音频码流帧数据通知onAudioFrameNotify。 2. 新增音频码流开关接口setAudioRawDataOutputConfig。 3. 与会者基础信息新增userUUID字段。 具体使用请见100.5.5更新内容 2024-5-9 100.3.7 1. Mac平台修复会中不显示自定义头像问题,体验更稳定。 具体使用请见100.3.7更新内容 2024-4-23 100.3.6 1. 功能配置开关接口enableCapability新增是否支持与会者邀请枚举值HWM_CAPABILITY_SUPPORT_GUEST_INVITE。 2. 问题修复,体验更稳定。 具体使用请见100.3.6更新内容 2024-2-17 90.12.7 1. 问题修复,体验更稳定。 具体使用请见90.12.7更新内容 2024-1-5 90.12.5 1. 新增显示提示信息接口showToast。 2. 新增获取主窗口信息接口getMainWindowInfo。 3. 创建会议、预约会议新增参数会议资源类型confResType。 4. 新增共享vmr信息通知onShareVmrInfoNotify。 5. 新增获取错误提示接口getErrorMessage,文案可用于提示。 6. 新增设置(会控)保底ip地址接口setGuaranteedIpAddresses,支持下沉企业数据不上云或断网逃生。 7. config接口新增配置字段copy_audience_conf_info,支持网络研讨会种观众链接的复制按钮可注入。 具体使用请见90.12.5更新内容 2023-12-13 90.10.8 1. 问题修复,体验更稳定。 具体使用请见90.10.8更新内容 2023-11-23 90.10.5 1. 新增MMR立即会议记录回调onP2PConfRecordNotify。 2. ElectronSDK支持node文件与Electron版本解耦,集成方不用再重新编译node文件。 3. ElectronSDK工程包删除编译node文件的相关脚本。 具体使用请见90.10.5更新内容 2023-10-9 90.9.5 1. concurrentParticipants 会议方数,会议最大与会人数限制。 2. 新增日志路径设置接口setLogPath。 3. 新增会议来电通知onConfIncomingNotify。 具体使用请见90.9.5更新内容 2023-8-24 90.7.5 windows平台问题修复,体验更稳定。 2023-8-10 90.7.5 1. 新增发起立即会议接口startP2pConf。 2. 新增获取用户保存路径接口getUserSavePath。 3. Random入会新增参数域名domain,离线入会场景使用。 具体使用请见90.7.5更新内容 2023-6-1 90.6.5 1. 发起呼叫接口StartCall废弃 2. 预约会议、编辑会议、创建会议、获取会议详情、会议信息通知新增用户自定义信息字段customInfo。 3. Init接口新增是否支持同终端多应用登录字段isSupportMultiAppLogin。 4. 新增弱网信息通知OnPoorNetworkQualityInfoNotify。 5. 新增错误码412100044(服务器降级),接入方收到该错误码时,可以继续调用入会接口离线入会(该错误码的适配方式请参考Demo)。 具体使用请见90.6.5更新内容 2023-5-11 80.15.21 1. 问题修复,体验更稳定。 具体使用请见80.15.21更新内容 2023-3-29 80.15.5 1. 设置网络模式接口setNetworkMode新增参数isForcedVpn。 具体使用请见80.15.5更新内容 2023-2-23 80.13.6 1. 问题修复,体验更稳定。 具体使用请见80.13.6更新内容 2023-2-7 80.13.5 1. 设置语言接口setLanguage新增自定义语言功能。 具体使用请见80.13.5更新内容 2023-1-17 80.12.7 1. 问题修复,体验更稳定。 具体使用请见80.12.7更新内容 2023-1-9 80.12.6 1. 功能配置开关接口enableCapability新增是否显示录制安全提示窗枚举值HWM_CAPABILITY_CONFIRM_RECORD。 2. 问题修复,体验更稳定。 具体使用请见80.12.6更新内容 2022-12-24 80.12.5 1.上传头像接口上传条件变更(增加类型和大小判断),win支持上传头像接口。 2. 问题修复,体验更稳定。 具体使用请见80.12.5更新内容 2022-11-16 80.10.5 1. 获取VMR列表接口和修改云会议室信息接口新增参数confAllowJoinUser、isOpenWaitingRoom。 2. 新增设置共享权限接口SetShareScreenPermission。 3. 加入会议接口新增参数isStopConflictConf。 4. 获取会议详情新增参数vmrConfIdType。 5. AppId登录接口新增参数deptCode。 具体使用请见80.10.5更新内容 2022-10-8 80.9.5 1. Mac补充获取会议详情、编辑会议接口新增参数allowLive。 2. 新增周期会议相关接口。 3. 功能配置开关接口新增分组讨论功能开关枚举值HWM_CAPABILITY_BREAKOUT_CONF。 4. 会议信息通知新增参数isInBreakoutSubConf。 5. Electron SDK补充常见错误码。 具体使用请见80.9.5更新内容 2022-9-2 80.8.5 1. 获取会议详情、编辑会议接口新增参数allowLive。 2. 会议信息通知新增参数isCreator。 3. 预约会议、编辑会议支持设置“来宾在主持人之前加入会议”,并可设置提前入会时间(allowGuestStartConf、allowGuestStartConfTime)。 具体使用请见80.8.5更新内容 2022-7-30 80.7.5 1. 新增显示设置界面接口showSettingWindow。 2. 会议信息通知OnConfInfoNotify新增参数isOtherCorpConf。 3. 与会者列表子项注入点击通知OnClickInjectParticipantItemBtnNotify新增与会者详情按钮类型HWM_CLICK_INJECT_PARTICIPANT_ITEM_BTN_PARTICIPANT_DETAIL,新增华为云会议账号参数accountId。 4. Config接口新增字段participant_detail,支持与会者头像点击注入。 具体使用请见80.7.5更新内容 2022-6-17 80.5.11 1.config接口新增字段statusBar,支持录制状态栏按钮可隐藏。 2.新增禁用提示音接口disableVoicePrompts。 具体使用请见80.5.11更新内容 2022-5-18 80.5.5 1. Mac补充exit接口。 2. Mac创建会议、预约会议、编辑会议、获取会议详情接口补充等候室开关功能。 3. 功能配置开关接口新增隐藏非视频与会者配置。 4. 会议结束通知新增服务器异常错误码。 具体使用请见80.5.5 更新内容 2022-04-16 70.16.5 首次发布 父主题: Electron SDK
  • 接口功能 该接口用于预约周期会议。注意事项:1、该接口在已登录状态下才能调用。2、该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 3、会议开始时间必须晚于当前时间,会议时长应大于15分钟。4、携带与会者入会的时候需要传入attendees。5、周期会议最大跨度一年,会议数量不超过50,超过则只预约前50个会议。 6、回调函数中会返回预约成功后的会议详情,详见HwmConfDetail结构体表。如果参数内只有会议id有值则获取会议详情失败。
  • Demo安装包下载 Demo下载后可参考Demo 包完整性校验进行包完整性校验。 Android Demo安装包下载 图1 Android Demo安装包下载二维码 使用手机浏览器扫一扫下载 Windows Demo安装包下载 图2 Windows Demo安装包下载链接 32位Windows Demo下载链接:hmwsdk-win-demo-win32.zip 完整性校验 hwmsdk-win-demo-win32-sha256 64位Windows Demo下载链接:hmwsdk-win-demo-x64.zip 完整性校验 hwmsdk-win-demo-x64-sha256 Mac Demo安装包下载 图3 Mac Demo安装包下载链接 Mac Demo下载链接:hwmsdk-mac-demo.dmg 完整性校验hwmsdk-mac-demo-sha256 Electron Demo安装包下载 图4 Electron Demo安装包下载链接 32位Windows Electron Demo下载链接:hwmsdk-electron-demo-win-ia32.zip 完整性校验 hwmsdk-electron-demo-win-ia32-sha256 64位Windows Electron Demo下载链接:hwmsdk-electron-demo-win-x64.zip 完整性校验 hwmsdk-electron-demo-win-x64-sha256 Mac Electron Demo下载链接:hwmsdk-electron-demo-mac.dmg 完整性校验 hwmsdk-electron-demo-mac-sha256 父主题: Demo体验
共100000条