# ohpart_gen_code **Repository Path**: meto475/ohpart_gen_code ## Basic Information - **Project Name**: ohpart_gen_code - **Description**: OpenHarmony 组件生成代码 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2023-02-07 - **Last Updated**: 2023-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 配置文件说明: ### attributes: relate_path:组件所在的相对路径 subsys_name:所在的子服务名称 namespace:命名空间,c++ 使用 part_name:组件名称 key_word:关键字,一般就是组件名称,关键字一般会作为文件名称、宏定义、 枚举值等名称的前缀,尽量简短。 description:组件功能描述 service_id:服务ID,需要在ohos代码先添加,也可以暂时随便定义,后面再改 adapted_system:系统类型:轻量(mini)、小型(small)和标准(standard) ### memory: rom: ROM占用 ram: RAM占用 ### typedef: 定义枚举类型、结构体等,结构体内部可以在生成代码之后再补充,枚举值尽量 需要完整,因为在napi,js部分用的较多。 ### property: 部件提供服务的接口函数。 ## 缺陷说明: - 1、 对于 frameworks/napi/xxxx_napi.cpp ,services/zidl/xxxx_proxy.cpp,services/zidl/xxxx_stub.cpp 旁边有fix me: 字样注释需要手动处理。其他代码基本不用修改。 - 2、 服务ID 在utils/native/include/xxxx_common.h 里有个临时定义,需要移到ohos系统定义里去。 - 3、 目前只支持基本的数据类型处理,自定义类型,数组类型,map,vector,list等都没处理,需要自己手动处理。所以定义接口时没有必要就尽量不要使用。 - 4、 初始值使用默认的值,比如整型数据、枚举类型默认是-1,自定义的结构体,类等默认是{},指针默认是NULL,数组默认是{0},等等。这些也要自己检查一下 ## 命令使用: usage: gen_code.py [-h] [--src_temp SRC_TEMP] [--dst_dir DST_DIR] [--config CONFIG] ## 创建模板 optional arguments: -h, --help show this help message and exit --src_temp SRC_TEMP 源模板路径 --dst_dir DST_DIR 创建路径 --gen_target GEN_TARGET 生成目标 ['all','frameworks','sa_profile','interfaces','services','utils','figures'] --config CONFIG 配置文件 ## gen_code 的用法: - 1、配置config.json。 1) 组件的基本信息配置。 包括路径、功能说明、服务ID,子系统,名字空间,适配系统,关键字。 其中关键字是最重要的,尽量使用最能代表组件核心概念的一个简短的单词。 名字空间和路径不要改,因为都是恒银金融项目。 2) 配置数据类型。 主要是枚举类型、数据结构。具体参考"typedef" 部分的定义。 3) 配置接口 根据需求文档,先自己定义外部接口。需要返回类型,函数名,参数列表都要明确。 - 2、生成代码 执行命令: ./gen_code.py --config config.json --dst_dir [目标路径]