JZ_speaker.c 5.8 KB
/* Includes ------------------------------------------------------------------*/
#include "JZ_speaker.h"
#include "JZ_lamp.h"
//#include "music.h"
#include "JZ_TempControl.h"
#include <unistd.h>
#include <stdio.h>
/* Private constants ---------------------------------------------------------*/

/* Private types -------------------------------------------------------------*/

/* Private values -------------------------------------------------------------*/
// extern int tts_add;
// extern int tts_tone;
// extern int tts_speed;
extern int readyflag;//喊话器准备就绪标志
extern int tempControlFlag;
extern TempControlData *tempData;//温度控制数据
/* Private functions declaration ---------------------------------------------*/

/* Exported functions definition ---------------------------------------------*/
/************************************
*文本喊话语速控制功能
*函数名:JZ_SpeechSpeedControlFeature
*函数参数:
         @speed :  喊话速度  0-3
*返回值:
*函数作者:wzy
*************************************/
void JZ_SpeechSpeedControlFeature(uint8_t speed)
{
    // switch(speed){
    //     case 0:
    //     tts_speed=25;
    //     break;
    //     case 1:
    //     tts_speed=50;
    //     break;
    //     case 2:
    //     tts_speed=75;
    //     break;
    //     case 3:
    //     tts_speed=100;
    //     break;
    //     default:
    //     tts_speed=50;
    //     break;
    // }
}

/************************************
*文本喊话音色控制功能
*函数名:JZ_TtsToneColorFeature
*函数参数:
         @tone:  音色选择列表
              0---中文女生---1
              1---中文男生---2
              2---英文女生---11
              3---英文男生---12
              4---东北话-----31
              5---四川话-----32
              6---河南话-----33
              7---湖南话-----34
              8---陕西话-----35
              9---广东话-----36		
*返回值:
*函数作者:wzy
*************************************/
void JZ_TtsToneColorFeature(uint8_t tone)
{     
    // switch(tone){      
    // case 0:
    //     tts_tone=1; 
    //     break;
    // case 1:
    //     tts_tone=2;
    //     break;
    // case 2:
    //     tts_tone=11;
    //     break;
    // case 3:
    //     tts_tone=12;
    //     break;
    // case 4:
    //     tts_tone=31;
    //     break;
    // case 5:
    //     tts_tone=32;
    //     break;
    // case 6:
    //     tts_tone=33;
    //     break;
    // case 7:
    //     tts_tone=34;
    //     break;
    // case 8:
    //     tts_tone=35;
    //     break;
    // case 9:
    //     tts_tone=36;
    //     break;				
    // default:
    //     tts_tone=1;
    //     break;
    // }
}

/************************************
*文本播放功能
*函数名:JZ_TtsPlayFeature
*函数参数:
          @len:文本长度
          @data:文本数据
*返回值:
*函数作者:wzy
*************************************/
int JZ_TtsPlayFeature(int len,char* data)
{   
    // if(readyflag == 0)
    // {
    //     return -1;
    // }
    // while (GetRecordStatus() == 1 || GetTtsStatus() == 1)
    // {   
    //     usleep(100*1000);
    // }
    // usleep(600*1000);
    // if(GetSpeakerMode() == 2)
    // {
    //     TTS(tts_tone,100,tts_speed,len,data);
    // }       
   	
}

/************************************
*亮度控制功能
*函数名:Jz_LampLumenControlFeature
*函数参数:
          @value1: 左灯亮度(十进制) 0~100
          @value2: 右灯亮度(十进制) 0~100
*返回值:
*函数作者:wzy
*************************************/
void JZ_LampLumenControlFeature(uint8_t value1,uint8_t value2)
{  
   int value = 0;
   
   if(value1 > value2)
   {
      value = value1;
   }
   else
   {
      value = value2;
   }
  // value = value1 > value2 ? value1 : value2;           
   tempData->InputLumen = value;//改变温控输入亮度
   JZ_LightSetInitialLumen(value);//改变设置的亮度初值
   tempControlFlag = TEMP_NOTTRIGGER;//防止温度跳回去
   Jz_LampLumenControl(value1,value2);//控制探照灯亮度
   
}

/************************************
*云台控制功能
*函数名:Jz_LampGimbalControlFeature
*函数参数:
          @value: 从飞机得到的云台角度
*返回值:
*函数作者:wzy
*************************************/
void Jz_LampGimbalControlFeature(int value)
{
   if(value <= 0)
   {
     int angle = -value;
     Jz_Lamp_Gimbal_Control(angle);
   }
   else
   {
     Jz_Lamp_Gimbal_Control(0);//U3S云台角度为0~90  
   }
}

/************************************
*提取 . 之前的字符串
*函数名:JZ_GetBeforeChar
*函数参数:
          @dest: 被截取的字符串
          @src:  截取后的字符串
*返回值:
*函数作者:wzy
*************************************/
void JZ_GetBeforeChar(const char *dest,char *src)
{   
    size_t len;
    len = strrchr(dest, '.') - dest;//计算文件名长度
    memcpy(src, "\0", 256);               
    strncpy(src, dest, len);//取文件名
    src[len] = '\0';

}

/************************************
*延时执行任务线程创建
*函数名: JZ_DelayThreadCreate
*函数参数:
           @delayTime: 延时时间
           @function:  延时执行的任务
*返回值:
*函数作者:wzy
*************************************/
void JZ_DelayThreadCreate(int delayTime)
{  
    pthread_t thread;
    pthread_attr_t task_attr;
    pthread_attr_init(&task_attr);  //初始化线程属性
    pthread_attr_setdetachstate(&task_attr, PTHREAD_CREATE_DETACHED);      //设置线程分离属性 

    pthread_t tid;
    int ret;
   if(delayTime > 0)
   { 
     
       //创建线程,延时执行       
    ret = pthread_create(&tid,&task_attr,JZ_TempControlFlag,(void *)&delayTime);
    if (ret != 0) 
    {
    printf("线程创建失败\n");    
    }      
   }
}