# MySwitcher组件
- MySwitch是一个用于控制开头类的控制组件,提供开头状态控制、循环工作、工作结束回调支持。
## 主要特性
- 状态管理
- IDLE:空闲状态
- RUN:运行状态
- PAUSE:暂停状态
- FINISHED:工作完成状态
- 配置参数
- 最大/最小工作时间
- 最大/最小暂停时间
- 最大/最小工作次数
- 工作完成回调:支持注册工作完成事件回调函数
## 快速开始
```
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#include "my_switcher.h"
#define TAG "main"
extern "C" void app_main(void)
{
MySwitcher sw(GPIO_NUM_2, true);
sw.SetWorkParam(1, 1, 3);
sw.SetFinishedCallback([](void*){
ESP_LOGW(TAG, "All work done.");
}, nullptr);
sw.SetRunDoneCallback([](void*){
ESP_LOGW(TAG, "One run done.");
}, nullptr);
sw.SetPauseDoneCallback([](void*){
ESP_LOGW(TAG, "One pause done.");
}, nullptr);
sw.Start();
while(1) {
ESP_LOGI(TAG, "Current state: %s", sw.GetWorkState().c_str());
vTaskDelay(pdMS_TO_TICKS(10 * 1000));
}
}
```
idf.py add-dependency "smallin/my_switcher^1.0.2"