20 changed files with 438 additions and 132 deletions
@ -0,0 +1,111 @@ |
|||
////////////////////////////////////////////////////////////////////////////
|
|||
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
|
|||
///-------------------------------------------------------------------------
|
|||
/// @file bsp_drv.c
|
|||
/// @brief bsp @ driver config
|
|||
///-------------------------------------------------------------------------
|
|||
/// @version 1.0
|
|||
/// @author CC
|
|||
/// @date 20180331
|
|||
/// @note cc_AS_stc02
|
|||
//////////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#include "task_appstatus.h" |
|||
#include "../bsp/bsp_led.h" |
|||
#include "../bsp/bsp_key.h" |
|||
#include "../bsp/bsp_WT2605B.h" |
|||
#include "../app/app_config.h" |
|||
#include "../bsp/bsp_config.h" |
|||
|
|||
|
|||
S_TASK_APPSTATUS _s_task_appstatus; |
|||
|
|||
void L3_task_AppStatus_init(void) |
|||
{ |
|||
L1_task_init(&_s_task_appstatus.task); |
|||
_s_task_appstatus.status = R.app_status; |
|||
L3_task_s_go(_s_task_appstatus,D_task_init); |
|||
} |
|||
|
|||
#define D_task_DETECTCHANGE 0x50 |
|||
#define D_task_HANDLECHANGE 0x51 |
|||
|
|||
void L3_task_appstatus_handler(S_TASK_APPSTATUS *s) |
|||
{ |
|||
TTSS_Task_init() |
|||
L2_task_go(D_task_DETECTCHANGE); |
|||
|
|||
TTSS_Task_step(D_task_DETECTCHANGE) |
|||
if(s->status != R.app_status) |
|||
{ |
|||
s->status = R.app_status; |
|||
L2_task_go_Tdelay(D_task_HANDLECHANGE,D_Tdelay_300ms); |
|||
} |
|||
TTSS_Task_step(D_task_HANDLECHANGE) |
|||
if(s->status == POW_OFF) |
|||
{ |
|||
// LED灯灭
|
|||
RED_LED = LED_OFF; |
|||
GREEN_LED = LED_OFF; |
|||
// 音频播放关机语音后断电
|
|||
L2_WT2605B_broadcast(&audio_powerdown); |
|||
Lc_delay_ms(1000); |
|||
L2_WT2605B_PWROFF(); |
|||
// OID和WIFI断电
|
|||
L0_PW_3V3_OFF(); |
|||
|
|||
} |
|||
else if (s->status == POW_ON) |
|||
{ |
|||
// LED红灯常亮,LED绿灯灭
|
|||
RED_LED = LED_ON; |
|||
GREEN_LED = LED_OFF; |
|||
// 音频通电后播放开机语音
|
|||
L2_WT2605B_PWRON(); |
|||
Lc_delay_ms(1000); |
|||
L2_WT2605B_broadcast(&audio_wellcome); |
|||
// OID和WIFI通电
|
|||
L0_PW_3V3_ON(); |
|||
} |
|||
else if (s->status == WIFI_CONNECTED) |
|||
{ |
|||
// LED红绿交替闪烁
|
|||
RED_LED = ~RED_LED; |
|||
GREEN_LED = ~GREEN_LED; |
|||
// 音频播放
|
|||
L2_WT2605B_PWRON(); |
|||
Lc_delay_ms(1000); |
|||
// L2_WT2605B_broadcast(audio_Wifi_Connected);
|
|||
// OID和WIFI通电
|
|||
L0_PW_3V3_ON(); |
|||
|
|||
} |
|||
else if (s->status == TCP_CONNECTED) |
|||
{ |
|||
// LED红灯灭,LED绿灯常亮
|
|||
RED_LED = LED_OFF; |
|||
GREEN_LED = LED_ON; |
|||
// 音频播放
|
|||
L2_WT2605B_PWRON(); |
|||
Lc_delay_ms(1000); |
|||
// L2_WT2605B_broadcast(audio_TCP_Connected);
|
|||
// OID和WIFI通电
|
|||
L0_PW_3V3_ON(); |
|||
|
|||
} |
|||
else if (s->status == WIFI_CONFIG) |
|||
{ |
|||
// LED红灯闪烁,LED绿灯灭
|
|||
RED_LED = ~RED_LED; |
|||
GREEN_LED = LED_OFF; |
|||
// 音频播放
|
|||
L2_WT2605B_PWRON(); |
|||
Lc_delay_ms(1000); |
|||
// L2_WT2605B_broadcast(&audio_Wifi_Config);
|
|||
// OID和WIFI通电
|
|||
L0_PW_3V3_ON(); |
|||
} |
|||
L2_task_go_Tdelay(D_task_DETECTCHANGE,D_Tdelay_300ms); |
|||
|
|||
TTSS_Task_end(); |
|||
} |
@ -0,0 +1,31 @@ |
|||
////////////////////////////////////////////////////////////////////////////
|
|||
///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
|
|||
///-------------------------------------------------------------------------
|
|||
/// @file bsp_drv.h
|
|||
/// @brief bsp @ driver config
|
|||
///-------------------------------------------------------------------------
|
|||
/// @version 1.0
|
|||
/// @author CC
|
|||
/// @date 20180331
|
|||
/// @note cc_AS_stc02
|
|||
|
|||
//////////////////////////////////////////////////////////////////////////////
|
|||
|
|||
#ifndef _APPSTATUS_TASK_APPSTATUS_H |
|||
#define _APPSTATUS_TASK_APPSTATUS_H |
|||
|
|||
#include "../ctask/task.h" |
|||
#include "../clib/clib.h" |
|||
#include "app_config.h" |
|||
|
|||
typedef struct _s_task_appstatus |
|||
{ |
|||
TS_task task; |
|||
APP_STATUS status; |
|||
}S_TASK_APPSTATUS; |
|||
|
|||
extern S_TASK_APPSTATUS _s_task_appstatus; |
|||
extern void L3_task_AppStatus_init(void); |
|||
extern void L3_task_appstatus_handler(S_TASK_APPSTATUS *s); |
|||
|
|||
#endif // #ifndef
|
@ -0,0 +1,65 @@ |
|||
#include "bsp_WT2605B.h" |
|||
#include "../msp/UART3.h" |
|||
|
|||
|
|||
TS_SPEECH_AUDIO audio_wellcome = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x31,0x8F,0xEF}; |
|||
TS_SPEECH_AUDIO audio_up = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x32,0x90,0xEF}; |
|||
TS_SPEECH_AUDIO audio_down = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x33,0x91,0xEF}; |
|||
TS_SPEECH_AUDIO audio_zmg = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x34,0x92,0xEF}; |
|||
TS_SPEECH_AUDIO audio_zbt = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x35,0x93,0xEF}; |
|||
TS_SPEECH_AUDIO audio_SchulteGrid = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x36,0x94,0xEF}; |
|||
TS_SPEECH_AUDIO audio_select = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x37,0x95,0xEF}; |
|||
TS_SPEECH_AUDIO audio_begin = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x38,0x96,0xEF}; |
|||
TS_SPEECH_AUDIO audio_tip = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x39,0x97,0xEF}; |
|||
TS_SPEECH_AUDIO audio_powerdown = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3A,0x98,0xEF}; |
|||
|
|||
TS_SPEECH_AUDIO audio_zmg_again = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3B,0x99,0xEF}; |
|||
TS_SPEECH_AUDIO audio_zmg_success = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3C,0x9A,0xEF}; |
|||
|
|||
TS_SPEECH_VOLUME volume_control = {0x7E,0x04,0xAE,0x1E,0xD0,0xEF}; |
|||
|
|||
|
|||
void L2_WT2605B_init() |
|||
{ |
|||
D_stdIO_P0(BITN0); |
|||
D_stdIO_P0(BITN1); |
|||
// 模块电源控制
|
|||
D_stdIO_P0(BITN5); |
|||
} |
|||
|
|||
void L2_WT2605B_PWRON() |
|||
{ |
|||
D_P05_OFF(); |
|||
} |
|||
void L2_WT2605B_PWROFF() |
|||
{ |
|||
D_P05_ON(); |
|||
} |
|||
|
|||
void L2_WT2605B_Broadcast(TS_SPEECH_AUDIO *music) |
|||
{ |
|||
L0_uart3_sendArray((U8 *)&music,9); |
|||
} |
|||
|
|||
void L2_WT2605B_VioceUp(void) |
|||
{ |
|||
if (volume_control.grade <= 0x1E) |
|||
{ |
|||
volume_control.grade = volume_control.grade + 1; |
|||
} |
|||
volume_control.crc = 0xab; |
|||
|
|||
L0_uart3_sendArray((U8 *)&volume_control,6); |
|||
} |
|||
|
|||
void L2_WT2605B_VioceDown(void) |
|||
{ |
|||
if (volume_control.grade >= 0x01) |
|||
{ |
|||
volume_control.grade = volume_control.grade - 1; |
|||
} |
|||
volume_control.crc == 0xab; |
|||
|
|||
L0_uart3_sendArray((U8 *)&volume_control,6); |
|||
} |
|||
|
@ -0,0 +1,50 @@ |
|||
#ifndef BSP_WT2605B_H |
|||
#define BSP_WT2605B_H |
|||
|
|||
#include "bsp_config.h" |
|||
|
|||
// 播放指定音频
|
|||
typedef struct |
|||
{ |
|||
vU8 start; |
|||
vU8 num; |
|||
vU8 cmd; |
|||
vU8 file[4]; |
|||
vU8 crc; |
|||
vU8 end; |
|||
}TS_SPEECH_AUDIO; |
|||
|
|||
// 音量控制
|
|||
typedef struct |
|||
{ |
|||
vU8 start; |
|||
vU8 num; |
|||
vU8 cmd; |
|||
vU8 grade; |
|||
vU8 crc; |
|||
vU8 end; |
|||
}TS_SPEECH_VOLUME; |
|||
|
|||
extern TS_SPEECH_AUDIO audio_wellcome; |
|||
extern TS_SPEECH_AUDIO audio_up; |
|||
extern TS_SPEECH_AUDIO audio_down; |
|||
extern TS_SPEECH_AUDIO audio_zmg; |
|||
extern TS_SPEECH_AUDIO audio_zbt; |
|||
extern TS_SPEECH_AUDIO audio_SchulteGrid; |
|||
extern TS_SPEECH_AUDIO audio_select; |
|||
extern TS_SPEECH_AUDIO audio_begin; |
|||
extern TS_SPEECH_AUDIO audio_tip; |
|||
extern TS_SPEECH_AUDIO audio_powerdown; |
|||
|
|||
extern TS_SPEECH_AUDIO audio_zmg_again; |
|||
extern TS_SPEECH_AUDIO audio_zmg_success; |
|||
|
|||
extern TS_SPEECH_VOLUME volume_control; |
|||
|
|||
extern void L2_WT2605B_init(); |
|||
extern void L2_WT2605B_PWRON(); |
|||
extern void L2_WT2605B_PWROFF(); |
|||
extern void L2_WT2605B_broadcast(TS_SPEECH_AUDIO *music); |
|||
extern void L2_WT2605B_VioceUp(); |
|||
extern void L2_WT2605B_VioceDown(); |
|||
#endif |
@ -0,0 +1,9 @@ |
|||
#include "bsp_key.h" |
|||
|
|||
void L2_key_init() |
|||
{ |
|||
D_stdIO_P3(BITN2); |
|||
D_stdIO_P3(BITN3); //准双向口
|
|||
D_stdIO_P4(BITN0); |
|||
} |
|||
|
@ -0,0 +1,15 @@ |
|||
#ifndef BSP_KEY_H |
|||
#define BSP_KEY_H |
|||
|
|||
#include "bsp_config.h" |
|||
|
|||
//按键
|
|||
#define key1 P32 //音量增大
|
|||
#define key2 P33 //音量减小
|
|||
#define key3 P40 //开关机
|
|||
#define Key (key1 && key2 && key3) |
|||
|
|||
|
|||
extern void L2_key_init(); |
|||
|
|||
#endif |
@ -0,0 +1,16 @@ |
|||
#include "bsp_led.h" |
|||
|
|||
void L2_led_init() |
|||
{ |
|||
D_HighI_P5(BITN5); |
|||
} |
|||
|
|||
void L2_led_ON(u8 LED) |
|||
{ |
|||
LED = LED_ON; |
|||
} |
|||
|
|||
void L2_led_OFF(u8 LED) |
|||
{ |
|||
LED = LED_OFF; |
|||
} |
@ -0,0 +1,15 @@ |
|||
#ifndef BSP_LED_H |
|||
#define BSP_LED_H |
|||
|
|||
#include "bsp_config.h" |
|||
|
|||
#define RED_LED P55 //单色绿灯
|
|||
#define GREEN_LED P26 //双色红灯
|
|||
|
|||
#define LED_ON 1 |
|||
#define LED_OFF 0 |
|||
|
|||
|
|||
extern void L2_led_init(); |
|||
|
|||
#endif |
Loading…
Reference in new issue