添加ignore 描述信息
This commit is contained in:
19
.gitignore
vendored
Normal file
19
.gitignore
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
*.a
|
||||
*.so
|
||||
*.bin
|
||||
output
|
||||
libs_url
|
||||
open_source
|
||||
temp
|
||||
utils
|
||||
ws63-liteos_all
|
||||
tools
|
||||
services
|
||||
ace_engine
|
||||
kernel
|
||||
protocol
|
||||
interim_binary
|
||||
middleware
|
||||
include
|
||||
drivers
|
||||
*.pyc
|
131
readme.md
Normal file
131
readme.md
Normal file
@ -0,0 +1,131 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Build and Development Commands
|
||||
1. **Build the project**: Run `python build.py` from the root directory.
|
||||
2. **Clean build artifacts**: Run `python build.py clean`.
|
||||
3. **Flash the device**: Use the `hfloader` tool with the appropriate firmware file.
|
||||
|
||||
## Key Codebase Structure
|
||||
1. **Entry Point**: `application/ws63/user_main/app_main.c` contains `user_app_main`, the main entry point for the application.
|
||||
2. **Hilink Integration**:
|
||||
- `application/samples/wifi/ohos_connect/hilink_adapt/entry/hilink_ble_main.c` is the Hilink SDK configuration and setup entry.
|
||||
- `application/samples/wifi/ohos_connect/hilink_adapt/product/hilink_device.c` maps physical models to cloud models.
|
||||
3. **Physical Model Control**:
|
||||
- GPIO and LED controls are defined in `application/ws63/hsf`.
|
||||
- Reference implementations are in `refence/LPT26x-HSF-4MB-Hilink_14.2.0.308_20250411`.
|
||||
4. **Device Configuration**:
|
||||
- `build/config/target_config/ws63/config.py` contains build configurations.
|
||||
- `application/samples/wifi/ohos_connect/hilink_adapt/product/device_profile.h` defines device metadata.
|
||||
|
||||
## Important Notes
|
||||
- **Flash Storage**: Device states (switch, LED, etc.) must be saved to flash immediately after modification.
|
||||
- **Cloud Sync**: Implement logic in `HILINK_NotifyDevStatus` for online/offline state handling.
|
||||
- **Physical and APP Control**: Ensure synchronization between physical button presses and APP controls.
|
||||
|
||||
## Reference Code
|
||||
- Review `refence/LPT26x-HSF-4MB-Hilink_14.2.0.308_20250411` for examples of Hilink integration and device control.
|
||||
|
||||
你是一个资深的物联网嵌入式工程师。这里有一个基于完善的一个智能家居的sdk进行开发的需求,其是基于汉枫(hf)模组+鸿蒙系统(ohos)开发的。
|
||||
|
||||
## SDK 相关介绍
|
||||
1. hf模组SDK提供了硬件的控制的相关接口
|
||||
2. ohos SDK 提供了设备和云端交互的一系列接口。
|
||||
整个SDK是比较庞大的,不过我们着重关注以下内容:
|
||||
1. application/samples/wifi/ohos_connect/hilink_adapt/entry/hilink_ble_main.c 包含了一系列hilink 的配置和配网,是hf sdk和ohos之间接洽的入口,
|
||||
其中 hilink_ble_main 是整个hilink sdk相关配置的入口,
|
||||
2. application/samples/wifi/ohos_connect/hilink_adapt/product/hilink_device.c 包括了物理模型和云端模型的映射
|
||||
SVC_INFO 是物理模型和云端模型的映射关系,
|
||||
其中handle_get_xxx是云端模型获取物理模型的数据,handle_put_xxx是云端模型设置物理模型的数据。
|
||||
3. application/ws63/user_main 用户自定义程序代码放置的地方入口
|
||||
4. application/samples/wifi/ohos_connect/hilink_adapt/product/device_profile.h 设备的基本信息,包括设备型号、设备名称、设备ID等
|
||||
5. application/ws63/hsf 所有hf sdk的接口都在这里,包括了flash、gpio、uart、wifi、net、update、crypto、thread、product、net、ntp、debug_print等。
|
||||
6. application/samples/peripheral 里面包含hf模组提供一些外设的控制示例代码,可供参考。
|
||||
7. build/config/target_config/ws63/config.py 是整个工程的编译配置文件
|
||||
8. indie_upg.md 是关于支持hilink独立升级如何修改代码的说明文档,可供参考
|
||||
|
||||
通过以上信息你已经可以基本了解整个SDK的运作的原理
|
||||
|
||||
|
||||
## 参考已有铲平的代码
|
||||
!!这部分非常重要!!!,里面有很多的hilink,配网,和云端交互等的示例,可以帮助你更好的编写代码,请你仔细分析!
|
||||
refence/LPT26x-HSF-4MB-Hilink_14.2.0.308_20250411
|
||||
这是此前的一款射灯产品的源码,里面核心的几个文件夹为:
|
||||
refence/LPT26x-HSF-4MB-Hilink_14.2.0.308_20250411/application/ws63/user_main
|
||||
refence/LPT26x-HSF-4MB-Hilink_14.2.0.308_20250411/application/samples/wifi/ohos_connect/hilink_adapt/product/
|
||||
你可以参考看看里面能够复用的部分!
|
||||
|
||||
## 软件相关的定义如下:
|
||||
1. 其物理模型2Q4G.json,但是里面的netInfo timer update这几个是hilink内部已经实现无需我们关心,我们只需要关心switch3、switch2、switch1、switch4 switch这几个物理模型。
|
||||
1. switch 是整个面板的总开关,其是属于一个软件上的控制,只有当其属于打开状态时其他的开关才允许控制
|
||||
2. switch1->switch4 是对应四个物理开关,每个switch可以控制对应的一个开关。
|
||||
|
||||
## 物理连接相关定义及其中一些信息进行补充:
|
||||
GPOP00 <--> LED1
|
||||
GPOP02 <--> LED2
|
||||
GPOP05 <--> LED3
|
||||
GPOP10 <--> LED4
|
||||
LED1->LED4是控制面板的每个按键的指示灯,其高电平表示指示灯白灯,低电平表示指示灯亮黄灯,所以按键的指示灯无论如何都是有的只是颜色有区别。
|
||||
GPOP12 <--> C1
|
||||
GPOP13 <--> C2
|
||||
GPOP14 <--> C3
|
||||
GPOP07 <--> C4
|
||||
C1->C4 是负责实际的开关的控制,是输出端口,高电平表示开关接通,低电平表示开关断开。
|
||||
GPOP09 <--> KEY1
|
||||
GPOP04 <--> KEY2
|
||||
GPOP11 <--> KEY3
|
||||
GPOP08 <--> KEY4
|
||||
KEY1->KEY4是物理按键,书输入端口,接收用户的物理按下信号。低电平表示按键按下闭合,高电平表示按键松开。
|
||||
GPOP03 <--> LED
|
||||
LED 是整个控制面板的背光灯,高电平亮灯(黄色),低电平灭灯(无背光)
|
||||
|
||||
|
||||
## 需求分析
|
||||
### 设备的一些信息需要存储在flash中
|
||||
1. 设备的每个按键的开关状态
|
||||
2. 设备的背光灯状态
|
||||
3. 设备的总开关状态
|
||||
4. 设备的配网状态
|
||||
|
||||
### 物理按键和APP按键控制要统一
|
||||
设备可以通过APP进行控制,也可以通过物理按键进行控制,通过物理按键进行控制时也需要存储按键的开关状态APP控制时也需要存储按键的开关状态。这样二者的信息能够统一同步
|
||||
|
||||
### 每个按键的的指示灯和开关状态需要同步,当按键按下时,指示灯亮,当按键松开时,指示灯需要保持长亮。
|
||||
### 你需要在HILINK_NotifyDevStatus对应的 HILINK_M2M_CLOUD_ONLINE 和 HILINK_M2M_CLOUD_OFFLINE 中添加对应的逻辑,当设备上线时,需要将按键的开关状态和指示灯状态进行同步,当设备下线时,需要将按键的开关状态和指示灯状态进行同步。
|
||||
|
||||
### 你需要在 HILINK_DEVICE_UNREGISTER 中添加对应的逻辑,当设备被删除时,需要将按键的开关状态和指示灯状态进行同步。
|
||||
### 设备的按键状态的修改请立即进行保存,避免突然断电导致状态丢失。
|
||||
### 设备上线后才能立即进行同步所有物模型信息,避免APP界面异常
|
||||
|
||||
## 软件编写规范
|
||||
1. 实现需求需要在application/ws63/user_main另外新建文件夹(命名你根据产品需求定义)实现相关逻辑
|
||||
|
||||
### SORONTEK智能面板产测:
|
||||
1.由信标发送产测信号
|
||||
=》识别固定的热点名作为进入产测的信号
|
||||
2.开关循环:开1-开2-开3-开4-全关-全开-全关
|
||||
3.每1.5秒执行一个动作
|
||||
4. 需要校验WIFI 信号强度吗?(射灯有此逻辑)
|
||||
|
||||
### SORONTEK智能面板配网:
|
||||
1. 只有设备处于未绑定状态才能进行配网(出厂或者被APP删除)
|
||||
=》 设备处于出厂状态需要立刻进入配网。
|
||||
2. 长按开关左上角第一个按键10秒, 进入配网,面板背光灯快闪1秒,表示开关已进入配网状态
|
||||
3. 配网中途只有被按下的按键的指示灯进行闪烁,固定1HZ闪烁,其他按键指示灯保持长亮
|
||||
4. 配网超时10分钟,超时未配网按键指示灯恢复长亮
|
||||
=》前三分钟指示灯保持闪烁,后七分钟指示灯保持长亮。
|
||||
|
||||
## 其他补充信息
|
||||
### 出厂/复位 SORONTEK智能面板默认状态:
|
||||
1. 所有开关控制其处于断开状态
|
||||
2. 所有按键指示灯处于黄灯常量状态
|
||||
3. 面板背光灯处于常亮(黄灯)状态
|
||||
|
||||
程序入口在 application/ws63/user_main/app_main.c 里面的 user_app_main 里面调用
|
||||
来自云端的控制信号从 application/samples/wifi/ohos_connect/hilink_adapt/product/hilink_device.c 中的 handle_put_xxx中接受,所以需要在这里面call对应的实际控制函数
|
||||
上报使用 fast_report函数,传入对应的svc_id子串即可
|
||||
|
||||
|
||||
现在需要请你帮我实现一个四开关面板程序功能
|
||||
请先分析需求,拆解步骤,然后逐步进行编码。
|
Reference in New Issue
Block a user