# aithinker_dev_open_sdk
**Repository Path**: robotxx/aithinker_dev_open_sdk
## Basic Information
- **Project Name**: aithinker_dev_open_sdk
- **Description**: 复制
- **Primary Language**: C
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-09-10
- **Last Updated**: 2024-09-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 仓库介绍:
**深圳市安信可科技有限公司应用开发通用接口项目,通过对底层芯片接口进行抽象,实现应用开发接口统一**
## 仓库特点:
**接口统一,代码复用高,模块式开发**
**一次开发,跨平台运行,支持在不同的芯片平台运行同一套接口应用程序**
**一次熟悉,接口一致性,应用开发者/客户,仅需要熟悉一套接口开发,无需熟悉多个芯片平台接口,大大降低重复性工作**
## 仓库架构:
## 仓库说明:
| 编号 | 标题 | 详细用途 |
| ---- | ------------------ | ------------------------------------------------------------ |
| 1 | 业务代码层 | 用于存放业务应用需求代码,例如灯/插座等 ;业务代码层通过调用中间层接口实现,不允许调用第三方接口 |
| 2 | 业务代码仓库管理器 | 用于关联CODING平台仓库,管理业务代码块,包括业务代码块的仓库名称、地址、分支、commit等 |
| 3 | 业务代码块项目仓库 | 每一个业务代码块都对应一个CODING仓库,单独提交和维护 |
| 4 | 中间件接口层 | 中间件负责屏蔽芯片厂商SDK的接口差异 |
| 5 | 中间件仓库管理器 | 用于关联CODING平台仓库,管理中间件代码块,包括业务代码块的仓库名称、地址、分支、commit |
| 6 | 中间件适配层 | 类原子接口,射频、系统、外设、网络等;要求调用厂商接口实现,不允许调用第三方接口;不允许适配层之间接口相互调用 |
| 7 | 中间件核心层 | 核心层必须基于中间件适配层实现,是对适配层更高维度的封装实现,包括通用方法、协议、云平台对接、传感器驱动等 |
| 8 | 厂商原始代码 | 用于存放和长期维护厂商原始SDK |
| 9 | 厂商原始SDK管理器 | 用于关联CODING平台仓库,管理厂商原始SDK |
| 10 | 厂商原始SDK | 存放具体芯片厂商原始SDK与长期维护补丁,不允许应用开发者直接调用其中的变量或函数(安信可内部) |
| 11 | 安信可硬件模组 | 首版已适配的模组型号包括Ai-WB2、Ai-WB3 |
| 12 | 安信可仓库平台 | 安信可内部仓库管理平台,负责仓库的存储、权限管理 |
## 目录结构:
```
.
├── adt //抽象层
│ ├── adt_kconfig
│ ├── adt_os //接口层
│ ├── adt_os_version
│ ├── adt_os_version_ctrl.sh
│ └── adt_tools
├── application //应用开发目录
│ ├── application_init.sh
│ ├── application_version
│ ├── application_version_ctrl.sh
│ ├── demo //例程
│ └── hello_world //例程
├── build //构件规则目录
│ ├── bl602_make
│ ├── ln882h_make
│ ├── README.md
│ └── w800_make
├── build.sh
├── docs //开发文档目录
│ ├── html
│ ├── image
│ ├── 中间件层文件命名规范.md
│ ├── 中间件层目录结构解析.md
│ ├── 代码规范.md
│ ├── 应用开发目录结构解析.md
│ ├── 应用开发者提交接口需求的方法.md
│ ├── 开发评审流程.md
│ ├── 提交代码到仓库.md
│ ├── 新建一个应用开发项目.md
│ └── 语法说明.md
├── LICENSE
├── os //各个厂商软件
│ ├── bl602_sdk_lts
│ ├── esp8266_sdk_lts
│ ├── hi3861_sdk_lts
│ ├── ln882h_sdk_lts
│ ├── os_kconfig
│ ├── os_version
│ ├── os_version_ctrl.sh
│ ├── README.md
│ ├── rtl8720cf_sdk_lts
│ └── w800_sdk_lts
├── out //固件生成目录
│ ├── bl602
│ └── ln882h
├── pre_commit.sh
├── README.md
├── test
│ └── test_report
├── thirds //第三方库引用
├── tmp
│ ├── kconfig
│ ├── kconfig_h
│ └── src
└── tools //开发工具目录
├── af.sh
├── as.sh
├── astyle
├── clean.sh
├── doxygen
├── env_config.sh
├── formatting
├── platform_config
└── update.sh
```
## 基础命令:
帮助命令:
```
$ ./build.sh help //用于打印SDK工具支持的命令行
```
工具版本查询命令:
```
$ ./build.sh version //查询工具版本编号
```
中间件接口文档更新命令:
```
$ ./build.sh docs //更新中间接口文档
```
编译清空命令:
```
$ ./build.sh clean //清空全部编译结果
$ ./build.sh 芯片型号 应用名称 clean //清空具体应用结果
```
仓库恢复出厂命令:
```
$ ./build.sh reset //清空所有改动,将仓库恢复到出厂模式
```
子仓库更新方法:
```
$ ./build.sh update //一般在初始化SDK阶段使用,这个指令会更新/覆盖子仓库内容,如果对子仓库有更新未进行提交,不建议执行该指令
```
仓库环境部署命令:
```
$ ./build.sh environment //自动下载编译依赖包,如发现依赖包不满足,请发送邮件到
```
应用开发配置方法:
```
$ ./build.sh 芯片型号 应用名称 menuconfig 举例:./build.sh ln882h demo menuconfig
```
应用开发编译方法:
```
$ ./build.sh 芯片型号 应用名称 国家编码 调试等级 举例:./build.sh ln882h demo cn debug
```
## 迭代规划:
| 目标内容 | 时间 |
| ------------------------------------------------------------ | ------- |
| 软件部内部适配,移植完成Combo-AT所有接口;适配常用外设接口;仅软件部使用 | 2-4月份 |
| 软件和技术支持,应用于定制项目;对公司外部不开放 | 4-6月份 |
| 提供英文版支持,开源版本; GitHub 和 码云同步开放 | 6-7月份 |
| 适配不带操作系统平台应用; | 7-9月份 |
## 商业价值:
| 开发模型: |
| --------------------------------------------------- |
| [传统软件开发模型](./docs/传统软件开发模型.md). |
| [中间件平台开发模型](./docs/中间件平台开发模型.md). |
## 指导文档:
| 通用参考: |
| ------------------------------------------------------------ |
| [代码规范](./docs/代码规范.md). |
| [语法说明](./docs/语法说明.md). |
| [GIT指令使用方法](./docs/learn_file/GIT指令使用方法.pdf). |
| [开发者提交代码到Coding仓库的方法](./docs/提交代码到仓库.md). |
| 应用开发: |
| ------------------------------------------------------------ |
| [应用开发目录结构解析](./docs/应用开发目录结构解析.md). |
| [新建一个应用开发项目](./docs/新建一个应用开发项目.md). |
| [接口不能完全满足项目需求,应用开发者提交接口需求的方法](./docs/应用开发者提交接口需求的方法). |
| 中间件层: |
| ------------------------------------------------------- |
| [中间件层目录结构解析](./docs/中间件层目录结构解析.md). |
| [中间件层文件命名规范](./docs/中间件层文件命名规范.md). |
| 系统适配: |
| ------------------------------------------------------------ |
| [在OS目录下新增一个平台SDK的方法](./os/在OS目录下新增一个平台SDK的方法.md). |
| 评审规则: |
| --------------------------------------- |
| [开发评审流程](./docs/开发评审流程.md). |