云服务器内容精选

  • 语法格式 兼容PostgreSQL风格的创建自定义函数语法。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 CREATE [ OR REPLACE ] FUNCTION function_name ( [ { argname [ argmode ] argtype [ { DEFAULT | := | = } expression ]} [, ...] ] ) [ RETURNS rettype [ DETERMINISTIC ] | RETURNS TABLE ( { column_name column_type } [, ...] )] LANGUAGE lang_name [ {IMMUTABLE | STABLE | VOLATILE } | {SHIPPABLE | NOT SHIPPABLE} | WINDOW | [ NOT ] LEAKPROOF | {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT } | {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | AUTHID DEFINER | AUTHID CURRENT_USER} | {fenced | not fenced} | {PACKAGE} | COST execution_cost | ROWS result_rows | SET configuration_parameter { {TO | =} value | FROM CURRENT } ][...] { AS 'definition' | AS 'obj_file', 'link_symbol' }; 兼容O风格的创建自定义函数的语法。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CREATE [ OR REPLACE ] FUNCTION function_name ( [ { argname [ argmode ] argtype [ { DEFAULT | := | = } expression ] } [, ...] ] ) RETURN rettype [ DETERMINISTIC ] [ {IMMUTABLE | STABLE | VOLATILE } | {SHIPPABLE | NOT SHIPPABLE} | {PACKAGE} | {FENCED | NOT FENCED} | [ NOT ] LEAKPROOF | {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT } | {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | AUTHID DEFINER | AUTHID CURRENT_USER} | COST execution_cost | ROWS result_rows | SET configuration_parameter { {TO | =} value | FROM CURRENT } | LANGUAGE lang_name ][...] { IS | AS } plsql_body /
  • 注意事项 如果创建函数时参数或返回值带有精度,不进行精度检测。 创建函数时,函数定义中对表对象的操作建议都显式指定模式,否则可能会导致函数执行异常。 在创建函数时,函数内部通过SET语句设置current_schema和search_path无效。执行完函数后的search_path和current_schema与执行函数前的search_path和current_schema保持一致。 如果函数参数中带有出参,想要出参生效,必须打开guc参数 set behavior_compat_options = 'proc_outparam_override';SELECT、CALL调用函数时,必须要在出参位置提供实参进行调用,否则函数调用失败。 兼容PostgreSQL风格的函数或者带有PACKAGE属性的函数支持重载。在指定REPLACE的时候,如果参数个数、类型、返回值有变化,不会替换原有函数,而是会建立新的函数。 不能创建仅形参名字不同(函数名和参数列表类型都一样)的重载函数。 不能创建与存储过程拥有相同名称和参数列表的函数。 不支持形参仅在自定义ref cursor类型和sys_refcursor类型不同的重载。 不支持仅返回的数据类型不同的函数重载。 不支持仅默认值不同的函数重载。 重载的函数在调用时变量需要明确具体的类型。 ORA兼容模式的数据库,建立ORA风格的函数;PG兼容模式的数据库,建立PG风格的函数。不建议混合创建。 函数如果支持重载,需要添加PACKAGE关键字。 在函数内部使用未声明的变量,函数被调用时会报错。 SELECT调用可以指定不同参数来进行同名函数调用。语法CALL不支持调用不带有PACKAGE属性的同名函数。 在创建function时,不能在avg函数外面嵌套其他agg函数,或者其他系统函数。 在普通集群模式下,暂不支持将返回值、参数以及变量设置为建在非系统默认安装Node Group的表,sql function内部语句暂不支持对建在非系统默认安装Node Group的表操作。 新创建的函数默认会给PUBLIC授予执行权限(详见GRANT)。用户默认继承PUBLIC角色权限,因此其他用户也会有函数的执行权限并可以查看函数的定义,另外执行函数时还需要具备函数所在schema的USAGE权限。用户在创建函数时可以选择收回PUBLIC默认执行权限,然后根据需要将执行权限授予其他用户,为了避免出现新函数能被所有人访问的时间窗口,应在一个事务中创建函数并且设置函数执行权限。开启数据库对象隔离属性后,普通用户只能查看有权限执行的函数定义。 函数定义时如果指定为IMMUTABLE和SHIPPABLE类型,应该尽量避免函数中存在INSERT,UPDATE,DELETE,MERGE和DDL操作,因为上述操作应该由CN判断对应的执行节点,否则执行结果可能产生错误。如果在声明为IMMUTABLE和SHIPPABLE类型的函数中下推执行了DDL,可能会导致各节点数据库对象不一致。修复此类问题可以在CN上创建VOLATILE PL/SQL函数,函数定义中使用execute语句动态执行用于修复系统对象的DDL,再使用EXECUTE DIRECT ON语法在指定的DN上执行修复函数调用,从而解决引入的问题。 在函数内部调用其它无参数的函数时,可以省略括号,直接使用函数名进行调用。 不打开参数set behavior_compat_options = 'proc_outparam_override'时,被匿名块或存储过程直接调用的函数的OUT、IN OUT出参不能使用复合类型,并且RETURN值会被当做OUT出参的第一个值导致调用失败,想正确使用OUT、IN OUT出参,需打开参数set behavior_compat_options = 'proc_outparam_override',见示例。 在函数内部调用其他有出参的函数,如果在赋值表达式中调用时,需要打开guc参数 set behavior_compat_options = 'proc_outparam_override' ,并提前定义与出参类型相同的变量,然后将变量作为出参调用带有出参的其他函数,出参才能生效。否则,被调函数的出参会被忽略。 在打开GUC参数proc_outparam_override后,函数返回值为setof类型时,out出参不会生效。 兼容Oracle风格的函数支持参数注释的查看与导出、导入。 兼容Oracle风格的函数支持介于IS/AS与plsql_body之间的注释的查看与导出、导入。 被授予CREATE ANY FUNCTION权限的用户,可以在用户模式下创建/替换函数。 函数默认为SECURITY INVOKER权限,如果想将默认行为改为SECURITY DEFINER权限,需要设置guc参数behavior_compat_options='plsql_security_definer'。
  • 示例 --创建一个无用的外部数据封装器dummy。gaussdb=# CREATE FOREIGN DATA WRAPPER dummy;--创建一个带有处理器函数file_fdw_handler 的外部数据封装器file。gaussdb=# CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;--创建一个带有一些选项的外部数据封装器mywrapper。gaussdb=# CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
  • 参数说明 name 要创建的外部数据封装器的名称。 HADNLER handler_function handler_function是先前已经注册了的函数的名称,用来为外部表检索执行函数。处理器函数必须没有参数,并且它的返回类型必须为fdw_handler。 不用处理器函数创建外部数据封装器是可能的,但是使用这种封装器的外部表只能被声明,不能被访问。 VALIDATOR validator_function validator_function 是先前已经注册了的函数的名字用来检查提供给外部数据封装器的通用选项,还有使用该外部数据封装器的外部服务器、用户映射和外部表的选项。如果没有验证器函数或声明了NO VALIDATOR,那么在创建时将不检查选项(外部数据封装器可能在运行时忽略或拒绝无效的选项说明,取决于实现)。验证器函数必须接受两个参数:一个类型为text[],将包含存储在系统目录中的选项的数组;一个类型为oid,是包含这些选项的系统目录的OID。忽略返回类型;该函数应该使用ereport(ERROR)函数报告无效选项。 OPTIONS ( option 'value' [, ... ] ) 这个子句为新的外部数据封装器声明选项。允许的选项名和值是特定于每个外部数据封装器的,并且是经过外部数据封装器的验证器函数验证了的。选项名必须是唯一的。
  • 常用设置项 排除或包含某些文件夹 Tag 或 Hybrid 模式下: 排除某些目录 设置项中搜索huawei-cpp.wecodeDb.excludePaths,默认值为: **/.mm/****/.git/** **/build/** **/output/** 包含文件夹 设置项中搜索huawei-cpp.wecodeDb.includeFolders,将文件夹绝对路径填入即可。 Compiler 模式下: 排除某些目录: 设置项搜索:huawei-cpp.codebase.generator.pathsExclude,使用 Glob 通配符排除一些路径,然后重新生成 compile_commands.json 才会生效。 开启/关闭问题窗口中的诊断信息 设置项中搜索huawei-cpp.clangd.ignoreDiagnostics: none: 显示所有诊断信息。 all: 隐藏所有诊断信息。 not_indexed:仅当当前文件有编译选项或已经索引时显示诊断信息。 修改系统头文件提供方 Huawei C/C++默认从 compile_commands.json 中的编译器提取系统头文件,如果无法提取则使用自带的 RTOS 头文件,可通过修改设置项改变默认规则: 设置项中搜索huawei-cpp.codebase.systemHeaderProvider: Compiler: 仅根据 compile_commands.json 中提取系统头文件。 None: 从环境变量中获取系统头文件 开启内联提示/高亮不活跃代码,开启/关闭/修改语义高亮颜色 开启或关闭内联提示: huawei-cpp.clangd.enableInlayHints 开启或关闭高亮不活跃代码: huawei-cpp.syntaxColor.enableInactiveCode 开启或关闭语义高亮: huawei-cpp.syntaxColor.enable cmake工程构建工具的路径 CodeArts IDE for C/C++提供了CMake工程构建、调试所需要的相关工具, 用户可以直接构建、调试CMake工程, 不必手动配置相关环境变量。用户目录下.codearts下面内置了cmake、MinGW、ninja工具CMake Build Tool插件默认先读取内置工具路径。 cpp-build-tool.CMakeBuildTool.CMake获取cmake工具的路径。 cpp-build-tool.CMakeBuildTool.debugger获取MinGW工具的路径。 cpp-build-tool.CMakeBuildTool.buildTool获取ninja工具的路径。 父主题: C/C++
  • 代码重构操作 重构是通过改变现有程序结构而不改变其功能和用途来提高代码的可重用性和可维护性。CodeArts IDE 支持重构操作,提供了多种重要的重构类型,来改变编辑器中的代码库。CodeArts IDE for C/C++ 内置了对 C/C++ 重构的支持,在本专题中,我们将展示 C/C++ 语言服务的重构支持。 定义构造函数(Define constructor) 在每次创建类时,可以自动定义类的构造函数,并且初始化成员。当单击或选中类名时,可以单击左侧黄色灯泡选择定义构造函数。 根据声明顺序排序函数(Sort functions to declarations) 根据头文件中的声明顺序,排序当前定义函数/方法的顺序。当单击或选中当前函数/方法定义时,重构选项可用。 将定义添加到实现文件(Add definition to implementation file) 将头文件的定义添加到实现文件中。当单击或选中当前函数/方法时,重构选项可用。 交换 if 分支(Swap if branches) 若当前条件只有if和else分支,选中代码片段后,选择交换 if 分支(Swap if branches),可自动交换if和else分支。 内联变量(Inline variable) 该功能可以用相应的值替换所有引用。假设计算值总是产生相同的结果。选中需要替换的内容,重构选项可用。 内联函数(Inline function) 该功能尝试使用适当的代码内联所有函数用法。它只能处理简单的功能,不支持内联方法、函数模板、主函数和在系统头文件中声明的函数。该功能可以内联所有函数引用。 生成 getter 和 setter(Generate getter and setter) 通过为其生成getter和setter(Generate getter and setter)来封装选定的类属性。同时也可以选择只生成getter(Generate getter)或者生成setter(Generate setter)选项。 声明隐式成员(Declare implicit members) 此选项会将类的隐式成员在类中声明,当选中类名时,重构选项可用。 填充 switch 语句(Populate switch) 该功能可以自动填充switch语句。选中任意switch字段,并且单击黄色灯泡,选择填充switch语句。 移除 namespace(Remove using namespace) 移除namespace功能,会自动移除所有使用到的namespace。当光标单击或选中namesapace关键字时,重构选项可用。 移动函数体到声明处(Move function body to out-of-line) 将函数/方法定义移动到它声明的位置。 在内部添加定义(Add definition in-place) 在当前函数/方法并且在类内部生成函数定义。当光标移动到函数/方法时,单击黄色灯泡,重构选项可用。 在外部添加定义(Add definition out-of-place) 在类外部生成当前函数/方法的函数定义。当光标移动到函数/方法时,单击黄色灯泡,重构选项可用。 展开宏(Expand macro) 在页面上添加展开宏(Expand macro),以便在可扩展/可折叠的部分提供内容。 展开 auto(Expand auto type) 展开 auto type所隐藏的变量类型。 函数定义外移(Move function body to declaration) 该功能会将函数/方法的定义移动到声明的位置。 函数定义内移(Move function body to out-of-line) 该功能会将函数/方法的定义移动到对应的文件中。 转为原始字符串(Convert to raw string) 此方法可以将转义后的字符串转换为原始的字符串。当单击或选择了当前字符串,单击黄色灯泡,重构选项可用。 快速修复(Quick fixes) 快速修复是解决简单编码错误的建议编辑,包括自动补全,实时语法检查等。当光标移动或单击到C/C++的代码错误上时,会显示黄色灯泡,表示可以使用快速修复。单击灯泡或按Ctrl+.会显示可用的快速修复和重构列表。 父主题: C/C++代码编写
  • 精确配置代码跳转 对于复杂工程,如果自动扫描结果不能令人满意,则需要配置一个名为“编译数据库”的文件,配合C/C++插件使用。 “编译数据库”是一个JSON格式、名为“compile_commands.json”的文件。当前可以通过以下三种方式生成“compile_commands.json”。CMake和Clang自带支持生成“compile_commands.json”,对于make和ninja管理的工程,则可以用bear工具,具体操作参考如下: CMake 设置 CMAKE_EXPORT_COMPILE_COMMANDS,可以带参数执行。 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON… 或在“CMakeLists.txt”文件中添加如下信息。 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) Clang (version 5.0 and later) 使用 -Mj 参数 (参考)。 Bear 与 intercept-build 工具 Bear 和 intercept-build(来自 scan-build) 可以帮助生成“compile_commands.json”文件。Ubuntu系统可用“sudo apt-get install bear”命令安装 bear工具。
  • 1. 功能介绍 CodeArts IDE面向开发者提供的智能化可扩展桌面 集成开发环境 (IDE),结合行业和产业开发套件,实现一站式开发体验。 编码新体验,开发更高效:内置自研C/C++语言开发支持,提供全新的工程加载、语法着色、符号解析、编码重构和运行调试等开发体验,提升开发效率。 能力可扩展,生态更开放:支持基于插件的能力扩展,开放的插件标准,开源的插件框架,开放的插件市场,形成更加开放的生态系统。 界面可裁剪,体验更优质:支持基于组件的界面剪裁,在精简模式下形成专用工具的优质体验,又可以在需要时升级为全模式的全量IDE工具。 CodeArts IDE for C/C++:基于C/C++语言开发CMake工程,并通过CodeArts IDE完成从工程创建、代码编写、运行调试到发布测试的全过程。基于插件扩展可以将个人开发者作业流集成其中,实现从需求到提交的全部过程,更可在业务中集成提供的的诸多能力,提升应用交付效率。 本实验将指导开发者通过CodeArts IDE for C/C++平台,在本地桌面快速开发一个基于Qt实现的简单项目。通过本实验您将体验到: 如何在CodeArts IDE for C/C++上进行基于CMake项目的本地编译构建; 在CodeArts IDE上调试和运行; 实现一个简单OpenGL demo。
  • 数据规划 项目 数据 说明 租户内网资产IP地址 区域1地址:192.168.55.0-192.168.55.255 区域2地址:172.16.1.0-172.16.1.255、1.1.1.1-1.1.1.5 请向租户获取,此处为示例。 交换机 GigabitEthernet0/0/2 观察端口。 GigabitEthernet0/0/1 镜像端口。 GigabitEthernet0/0/3:192.168.56.20/24 与天关上漏扫和 云日志 审计业务接口直连的三层端口,IP地址请向租户获取,此处为示例。 天关 GE0/0/1 流量检测端口。 GE0/0/3:172.16.10.10/24 云端管理接口,IP地址请向租户获取,此处为示例。 GE0/0/2:192.168.56.10/24 漏洞扫描 和云日志审计接口,IP地址请向租户获取,此处为示例。 父主题: 企业边界天关旁路镜像流状态检测(USG6502E-C天关、USG6503E-C天关、USG6603F-C天关)
  • 连接以太网线 USG6301E-C(TianGuan310), USG6501E-C(TianGuan510)(VLAN接口上网) 图1 USG6301E-C(TianGuan310), USG6501E-C(TianGuan510)(VLAN接口上网) 表1 USG6301E-C(TianGuan310), USG6501E-C(TianGuan510)(VLAN口上网)接口使用说明 接口丝印 接口编号 说明 6 GE0/0/6 业务下行口,为透明二层接口,连接局域网设备。 使用上下相邻的一对接口连接上下行设备,请选取偶数编号接口连接下行局域网设备,此处以GE0/0/6为例。 7 GE0/0/7 业务上行口,为透明二层接口,连接上行设备(如:出口路由器)。 使用上下相邻的一对接口连接上下行设备,请选取奇数编号接口连接上行设备,此处以GE0/0/7为例。 MGMT MEth0/0/0 设备管理网口,连接管理PC,用于登录设备的配置界面进行业务配置。默认IP地址为192.168.0.1。 USG6301E-C(TianGuan310), USG6501E-C(TianGuan510)(单独物理网口上网) 图2 USG6301E-C(TianGuan310), USG6501E-C(TianGuan510)(单独物理网口上网) 表2 USG6301E-C(TianGuan310), USG6501E-C(TianGuan510)(单独物理网口上网)接口使用说明 接口丝印 接口编号 说明 6 GE0/0/6 业务下行口,为透明二层接口,连接局域网设备。 使用上下相邻的一对接口连接上下行设备,请选取偶数编号接口连接下行局域网设备,此处以GE0/0/6为例。 7 GE0/0/7 业务上行口,为透明二层接口,连接上行设备(如:出口路由器)。 使用上下相邻的一对接口连接上下行设备,请选取奇数编号接口连接上行设备,此处以GE0/0/7为例。 1 GE0/0/1 单独物理上网口,连接上行设备(如:出口路由器)。为此接口配置IP地址并确保可达互联网,天关通过该IP地址完成云端注册。请选取奇数编号接口,此处以GE0/0/1为例。 0 GE0/0/0 只有购买了 漏洞扫描服务 或云日志审计服务时,需要连接此网线。 MGMT MEth0/0/0 设备管理网口,连接管理PC,用于登录设备的配置界面进行业务配置。默认IP地址为192.168.0.1。 USG6302E-C(TianGuan320), USG6303E-C(TianGuan330),USG6502E-C(TianGuan520), USG6503E-C(TianGuan530)(VLAN接口上网) 图3 USG6302E-C(TianGuan320), USG6303E-C(TianGuan330),USG6502E-C(TianGuan520), USG6503E-C(TianGuan530)VLAN接口上网 表3 USG6302E-C(TianGuan320), USG6303E-C(TianGuan330),USG6502E-C(TianGuan520), USG6503E-C(TianGuan530)(VLAN口上网)接口使用说明 接口丝印 接口编号 说明 20 GE0/0/20 业务下行口,为透明二层接口,连接局域网设备。请选取GE0/0/22或GE0/0/20作为业务下行口,此处以GE0/0/20为例。 21 GE0/0/21 业务上行口,为透明二层接口,连接上行设备(如:出口路由器)。请选取GE0/0/23或GE0/0/21作为业务上行口,此处以GE0/0/21为例。 说明: 仅两组固定电接口支持硬件Bypass功能:GE0/0/20和GE0/0/21配对,GE0/0/22和GE0/0/23配对,所以上述两对接口必须严格配对使用。 MGMT MEth0/0/0 设备管理网口,连接管理PC,用于登录设备的配置界面进行业务配置。默认IP地址为192.168.0.1。 USG6302E-C(TianGuan320), USG6303E-C(TianGuan330),USG6502E-C(TianGuan520), USG6503E-C(TianGuan530)(单独物理网口上网) 图4 USG6302E-C(TianGuan320), USG6303E-C(TianGuan330),USG6502E-C(TianGuan520), USG6503E-C(TianGuan530)单独物理网口上网 表4 USG6302E-C(TianGuan320), USG6303E-C(TianGuan330),USG6502E-C(TianGuan520), USG6503E-C(TianGuan530)(单独物理网口上网)接口使用说明 接口丝印 接口编号 说明 20 GE0/0/20 业务下行口,为透明二层接口,连接局域网设备。请选取GE0/0/22或GE0/0/20作为业务下行口,此处以GE0/0/20为例。 21 GE0/0/21 业务上行口,为透明二层接口,连接上行设备(如:出口路由器)。请选取GE0/0/23或GE0/0/21作为业务上行口,此处以GE0/0/21为例。 说明: 仅两组固定电接口支持硬件Bypass功能:GE0/0/20和GE0/0/21配对,GE0/0/22和GE0/0/23配对,所以上述两对接口必须严格配对使用。 1 GE0/0/1 单独物理上网口,连接上行设备(如:出口路由器)。为此接口配置IP地址并确保可达互联网,天关通过该IP地址完成云端注册。请选取奇数编号接口,此处以GE0/0/1为例。 0 GE0/0/0 只有购买了漏洞扫描服务或云日志审计服务时,需要连接此网线。 MGMT MEth0/0/0 设备管理网口,连接管理PC,用于登录设备的配置界面进行业务配置。默认IP地址为192.168.0.1。
  • 异常处理 如果天关上线不成功,请尝试参考以下步骤处理。 在管理PC上登录标准页面:https://192.168.0.1:8443/default.html。 在界面的右上角,单击CLI控制台按钮。 图2 进入CLI控制台 参考如下操作,进入系统视图。 图3 进入系统视图 通过ping检查设备到客户网络内网关是否通畅。 ping 10.1.1.254 //假设网关IP地址为10.1.1.254,检查时请更换为局点实际网关IP地址 如果ping不通,请检查网线连接。 通过ping检查设备在客户网络内DNS解析是否正常。 ping mgt.seccloud.huawei.com 如果ping不通,请再ping DNS的IP地址,检查与DNS的网络是否能正常通信。 通过telnet检查设备注册公网端口连通性是否正常。 telnet mgt.seccloud.huawei.com 10020,有ssh证书交换字样,说明连通性正常。 如果连通性异常,请检查客户侧的安全设备是否做了端口访问限制。
  • 修订记录 表1 修订记录 修改时间 修改说明 2022-06-21 第六次正式发布 本次变更如下: 新增以下接口: addMultiRoomMediaRelay:添加单个跨房 removeMultiRoomMediaRelay:删除单个跨房 stopMultiRoomMediaRelay:停止所有跨房 onMultiRoomMediaRelayStateChanged:跨房状态回调 appendLocalView:设置本地视频另一个窗口显示 appendRemoteView:设置远端视频另一个窗口显示 新增以下事件回调: onRenderExternalVideoFrame:视频自渲染回调 onPlaybackExternalAudioFrame:音频自渲染回调 onMultiRoomMediaRelayStateChanged:跨房状态改变回调 onRemoteMicrophoneStateChanged:麦克风设备状态变更通知 onUserNetworkQualityNotify:加入房间后的网络质量状态回调 新增以下数据类型: HWRtcRemoteMicState:麦克风设备状态 HRTCMultiRoomMediaRelayConfiguration:跨房配置 HR TCS rcMultiRoomMediaInfo:源房间信息 HRTCDstMultiRoomMediaInfo:目标房间信息 HRTCMultiRoomMediaRelayState:跨房状态 HRTCMultiRoomMediaRelayStateCode:跨房状态码 2022-03-24 第五次正式发布 本次变更如下: 修改appid获取方式的相关描述。 2022-03-18 第四次正式发布 本次变更如下: 新增setNetworkBandwidth接口 2022-02-25 第三次正式发布 本次变更如下: 新增以下接口: recordingDeviceTest音频采集设备测试 finishRecordingDeviceTest结束音频采集设备测试 playbackDeviceTest音频播放设备测试 finishPlaybackDeviceTest结束音频播放设备测试 echoTest音频设备回路测试 finishEchoTest结束音频设备回路测试 cameraDeviceTest视频采集设备测试 finishCameraDeviceTest结束视频采集设备测试 onAudioDeviceTestVolumeNotify音频设备测试回调 setVideoWaterMark插入/删除水印 setAccessResourceType设置接入环境 setBackgroungBlur设置本地视频背景虚化 setBackgroundReplace设置本地视频背景替换 修改以下接口: HRTCVideoDisplayMode去掉自适应HRTC_VIDEO_DISPLAY_MODE_ADAPT 2021-12-02 第二次正式发布 本次变更如下: 优化部分文档描述。 2021-11-22 第一次正式发布 父主题: All Platform C++ SDK
  • 内部架构 模块SDK用于开发运行在边缘节点中的应用,包括数据处理应用(简称应用,例如数据清洗)和协议驱动(简称驱动,例如EdgeAccess)。 图1 边缘设备接入和应用开发能力架构图 部署在边缘节点中的第三方应用和第三方驱动使用模块SDK进行开发。 图2 模块SDK调用流程图 基本调用流程如图2所示。 基于ModuleSDK-C开发应用实现数据的云边同步,主要分为开发和使用两个部分。 开发操作 开发说明 SDK应用的开发 按照SDK提供的Demo进行自定义应用开发。 SDK应用的使用 将应用打包上传至华为云,部署到节点。连接子设备查看应用工作情况。 ModuleSDK-C提供了以下头文件,用户可根据需求引用相应的头文件: 头文件 说明 edge.h 实现基本的回调函数和接口函数 edge_daemon.h 实现所有证书、鉴权相关接口 edge_driver.h 驱动模块,用于开发驱动接入设备,驱动需实现网关回调函数 edge_error.h 错误码定义 edge_struct.h 所有可能使用到的头文件定义 edge_dc_driver.h 数采驱动模块,用于开发数采驱动接入点位数据,驱动需实现相关回调函数 父主题: 集成ModuleSDK(C)
  • 内部架构 表1 通用接口 接口 说明 IModuleShadowCallback 模块影子回调,实现对影子通知的处理 IPointsCallback 点位处理回调,实现点位的读写操作 IConnectionStatusChangeCallback 连接状态变化回调接口,用于MQTT连接状态改变时的处理 表2 提供的类 类 说明 DcClient 数采客户端,用于开发数采驱动接入点位数据,驱动需实现相关回调函数 父主题: 集成ModuleSDK(C#)
  • CMake Build Tool插件运行调试时中文乱码的问题 现象: 1. 文件运行在内部终端的乱码 main.cpp文件中有中文文字 构建生成可执行文件,右键单击运行 运行结果出现中文乱码: 2.运行调试使用外部 终端出现乱码 文件里面有输入输出,配置外部terminal, 在terminal中打印出来的中文乱码 解决办法: 方法一 单击编码类型,选择 Reopen with Encoding, 选择 GB 2312编码类型(或选择 gbk 、 GB 18030类型编码) 选择之后,文件里面的中文乱码 将乱码文字改为简体中文,重新构建,生成可执行文件,运行后 方法二 修改cwd的默认编码格式,将其改为utf-8,修改方法如下: 1、在开始菜单中搜索“区域与语言设置” 2.选择管理语言设置 3.在弹出的对话框中的管理选项卡中单击“更改系统区域设置” 4.勾选Unicode UTF_8 并单击确定和应用 重启系统,并验证: 运行结果 父主题: CodeArts IDE for C/C++