123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- //#include "driver_gpio.h"
- //#include "Driver_uart.h"
- //#include "le_gap.h"
- #include "u_main.h"
- #include "u_time.h"
- #include "t_lev_decode.h"
- #include "u_pwm_drive.h"
- #include "u_effect_normal.h"
- #include "u_app_handler.h"
- #include "u_effect_rhythm.h"
- #include "u_light_ctrl.h"
- #include "u_power.h"
- #include "u_rc.h"
- LightPara_t g_light_para = {0x00};
- void ag_timer_glo_task_cb(void)
- {
- //sys_event_sched();
- if (g_ir_recv_done_flag == 1)
- {
- //红外接收
- g_ir_recv_done_flag = 0;
- ir_decode(rc_decode());
- U_UART_PRINTF("ir_code = %02X, %02X, %02X, %02X\n", g_ir_code[0], g_ir_code[1], g_ir_code[2], g_ir_code[3]);
- }
- }
- void ag_timer_sy_event_sched_cb(void)
- {
-
- }
- void ag_timer_test_cb(void)
- {
- static uint8_t s_run_cnt = 0;
- uint8_t tmp=0;
- tmp= ++s_run_cnt;
- s_run_cnt = tmp % 3;
-
- switch (s_run_cnt)
- {
- case 0:
- light_set_color(0x00FF00);
- break;
- case 1:
- light_set_color(0x0000FF);
- break;
- case 2:
- light_set_color(0xFF0000);
- break;
- default:
- break;
- }
-
- }
- /********************* 连接 断开 回调 ***********************/
- #if 1
- //蓝牙连接成功回调
- void u_gapc_connection_cd(void)
- {
- U_UART_PRINTF("gapc_connect\n");
- if (g_light_para.app_seting & 0xF0)
- {
- light_power_set(GLO_EN);
- }
- u_ag_timer_stop(AG_TIMER_ID_FLASH_SAVE);
- }
- //蓝牙连接断开回调
- void u_gapc_disconnect_cd(uint8_t reason)
- {
-
- U_UART_PRINTF("gapc_disconnect = %d\n", reason);
- if (g_light_para.app_seting & 0x0F)
- {
- light_power_set(GLO_DIS);
- }
- light_info_save();
- u_ag_timer_start(AG_TIMER_ID_FLASH_SAVE, TIMER_TIME_FLASH_SAVE, light_flash_save_cb);
- }
- #endif
- void u_rhythm_timer_ctrl(uint8_t timer_en)
- {
- if (timer_en)
- {
- u_ag_timer_start(AG_TIMER_ID_RHYTHM, TIMER_TIME_RHYTHM, rhythm_timer_cd);
- }
- else
- {
- u_ag_timer_stop(AG_TIMER_ID_RHYTHM);
- }
- }
- void light_time_timer_start(void)
- {
- u_ag_timer_start(AG_TIMER_ID_LIGHT_TIME, TIMER_TIME_LIGHT_TIME, alarm_time_task);
- }
- static void light_effect_timer_cb(void)
- {
- switch (g_light_para.effect)
- {
- case LIGHT_EFFECT_JUMP:
- {
- light_mode_jump_timer_cb(&g_light_info);
- }
- break;
- case LIGHT_EFFECT_GRADUAL:
- {
- light_mode_gradual_timer_cb(&g_light_info);
- }
- break;
- case LIGHT_EFFECT_BREATH:
- {
- light_mode_breath_timer_cb(&g_light_info);
- }
- break;
- case LIGHT_EFFECT_BLINK:
- {
- light_mode_blink_timer_cb(&g_light_info);
- }
- break;
-
- default:
- {
- light_effect_timer_stop();
- }
- break;
- }
- // if (g_light_para.app_mode == LIGHT_APP_MODE_RC_AUOT)
- // {
- // rc_mode_auot_ctrl(0);
- // }
- }
- static uint16_t m_light_timeing = 0;
- void light_effect_timer_start(uint16_t timing)
- {
- if (timing != NULL)
- {
- m_light_timeing = timing;
- }
- u_ag_timer_start(AG_TIMER_ID_LIGHT_EFFECT, m_light_timeing, light_effect_timer_cb);
- }
- void light_effect_timer_stop(void)
- {
- u_ag_timer_stop(AG_TIMER_ID_LIGHT_EFFECT);
- }
- void alarm_time_reach_cb(uint8_t execute_st)
- {
- uint8_t reply_len = 0, alarm_st[24] = {0x00};
-
- U_UART_PRINTF("alarm_time_reach_cb\n");
- light_power_set(execute_st);
- light_state_upload();
-
- time_alarm_state_query(alarm_st, &reply_len);
- reply_app_encode(0x35, alarm_st, reply_len);
- }
- //void uart_recv_handle(uint8_t *uart_data, uint8_t recv_len);
- //void u_while(void)
- //{
- // if (uart_rx_buff_header >= 3)
- // {
- // uart_recv_handle(uart_rx_buff, uart_rx_buff_header);
- // uart_rx_buff_header = 0;
- // }
- //}
- void u_init(void)
- {
- sys_param_init();//软件定时器任务列表初始化
- //Timer_Initial();//定时器初始化
- rc_init();//红外解码相关初始化
- power_check_init();//电源检测初始化
- light_info_init();//灯控信息初始化
- light_time_init();//灯控倒计时和闹钟1秒钟任务初始化
-
- u_ag_timer_start(AG_TIMER_ID_GLO_TASK, TIMER_TIME_GLO_TASK, ag_timer_glo_task_cb);//启动红外接收任务 20ms
- u_ag_timer_start(AG_TIMER_ID_FLASH_SAVE, TIMER_TIME_FLASH_SAVE, light_flash_save_cb);//启动保存flash任务 2000ms
- //u_ag_timer_start(AG_TIMER_ID_TEST, TIMER_TIME_LIGHT_TEST, ag_timer_test_cb);
- }
- uint8_t g_speed = 0;
- void uart_recv_handle(uint8_t *uart_data, uint8_t recv_len)
- {
- if (uart_data[0] == 0x55 && uart_data[1] == 0xAA)
- {
-
- if (uart_data[2] == 0x01)
- {
- light_rhythm_enter(uart_data[3]);
- }
- else if (uart_data[2] == 0x02)
- {
- //rhythm_sensit_ctrl(NULL, uart_data[3]);
- g_speed = uart_data[3];
- }
- else if (uart_data[2] == 0x03)
- {
- app_rhythm_val_up(uart_data[3]);
- }
- }
-
- U_UART_PRINTF("uart_recv %x\n", uart_data[2]);
- }
|