提交 9dddff9a 编写于 作者: honorifica's avatar honorifica

编写图传

上级 f391f74e
......@@ -118,10 +118,8 @@ static esp_err_t play_mp3(const char *path)
unsigned char *read_ptr = read_buf;
do {
/* Process audio event sent from other task */
printf("start\n");
if (pdPASS == xQueueReceive(audio_event_queue, &audio_event, 0)) {
if (AUDIO_EVENT_PAUSE == audio_event) {
printf("start_ok\n");
g_player_state = PLAYER_STATE_PAUSE;
i2s_zero_dma_buffer(I2S_NUM_0);
xQueuePeek(audio_event_queue, &audio_event, portMAX_DELAY);
......@@ -150,7 +148,6 @@ static esp_err_t play_mp3(const char *path)
/* Find MP3 sync word from read buffer */
int offset = MP3FindSyncWord(read_buf, MAINBUF_SIZE);
printf("nooooo");
if (offset >= 0) {
read_ptr += offset; /*!< Data start point */
......@@ -160,8 +157,6 @@ static esp_err_t play_mp3(const char *path)
/* Get MP3 frame info and configure I2S clock */
MP3GetLastFrameInfo(mp3_decoder, &frame_info);
printf("not");
/* Configure I2S clock if sample rate changed. Always reconfigure at first frame */
if (sample_rate != frame_info.samprate ||
nChans != frame_info.nChans ||
......@@ -176,7 +171,6 @@ static esp_err_t play_mp3(const char *path)
}
/* Write decoded data to audio decoder */
printf("not ok");
size_t i2s_bytes_written = 0;
size_t output_size = frame_info.outputSamps * nChans;
i2s_write(I2S_NUM_0, output, output_size, &i2s_bytes_written, portMAX_DELAY);
......@@ -190,7 +184,6 @@ static esp_err_t play_mp3(const char *path)
clean_up:
/* This will prevent from sending dumy data to audio decoder */
printf("hhhhhhhhhhhhhh");
i2s_zero_dma_buffer(I2S_NUM_0);
/* Clean up resources */
......
......@@ -25,16 +25,18 @@
#define AED_PORT 153
#define HELP_PORT 120
#define img_PORT 222
#define IMG_PORT 5555
#define REGIST_PORT 100
#define REMOVE_PORT 200
#define dataMaxLength 128
#define deviceID "5621564587648727"
#define SERVER_IP "139.9.142.29"
#define EYE_IP "192.168.2.35"
#define EYE_IP "192.168.0.109"
static const char *TAG = "sr_handler";
static bool b_audio_playing = false;
bool isAed;
typedef enum {
AUDIO_WAKE,
......@@ -217,71 +219,74 @@ void sr_handler_task(void *pvParam)
gpio_set_level(GPIO_NUM_41, 0);//1为高电平,0为低电平
break;
case SR_CMD_HELP:
////sending information of the client////
sr_echo_play(AUDIO_END);
helpSocket=socket(AF_INET,SOCK_STREAM,0);/*建立socket*/
if(helpSocket==-1){
ESP_LOGE(TAG,"socket创建失败");
break;
}
struct sockaddr_in dest_addr;
char buf[dataMaxLength];
for(int i=0;i<dataMaxLength;i++){
buf[i]='\0';
}
dest_addr.sin_family=AF_INET;
dest_addr.sin_port=htons(HELP_PORT);
ESP_LOGE(TAG,"服务器地址:%s",SERVER_IP);
if((dest_addr.sin_addr.s_addr=inet_addr(SERVER_IP))==INADDR_NONE) {
ESP_LOGE(TAG,"地址解析失败");
break;
}
bzero(&(dest_addr.sin_zero),8);
if(connect(helpSocket,(struct sockaddr*)&dest_addr,sizeof(struct sockaddr))==-1){//连接方法,传入句柄,目标地址和大小
ESP_LOGE(TAG,"服务器连接失败");
break;
} else{
ESP_LOGI(TAG,"连接成功,发送求助设备编号 %s\n",deviceID);
if(send(helpSocket,deviceID,17,0)==-1) {
ESP_LOGE(TAG,"sending failed\n");
break;
}
ESP_LOGI(TAG, "发送成功,等待应答\n");
recv(helpSocket,buf,dataMaxLength,0);
ESP_LOGI(TAG,"服务器应答 : %s",buf);
}
close(helpSocket);
// ////sending information of the client////
// sr_echo_play(AUDIO_END);
// helpSocket=socket(AF_INET,SOCK_STREAM,0);/*建立socket*/
// if(helpSocket==-1){
// ESP_LOGE(TAG,"socket创建失败");
// break;
// }
// struct sockaddr_in dest_addr;
// char buf[dataMaxLength];
// for(int i=0;i<dataMaxLength;i++){
// buf[i]='\0';
// }
// dest_addr.sin_family=AF_INET;
// dest_addr.sin_port=htons(HELP_PORT);
// ESP_LOGE(TAG,"服务器地址:%s",SERVER_IP);
// if((dest_addr.sin_addr.s_addr=inet_addr(SERVER_IP))==INADDR_NONE) {
// ESP_LOGE(TAG,"地址解析失败");
// break;
// }
// bzero(&(dest_addr.sin_zero),8);
// if(connect(helpSocket,(struct sockaddr*)&dest_addr,sizeof(struct sockaddr))==-1){//连接方法,传入句柄,目标地址和大小
// ESP_LOGE(TAG,"服务器连接失败");
// break;
// } else{
// ESP_LOGI(TAG,"连接成功,发送求助设备编号 %s\n",deviceID);
// if(send(helpSocket,deviceID,17,0)==-1) {
// ESP_LOGE(TAG,"sending failed\n");
// break;
// }
// ESP_LOGI(TAG, "发送成功,等待应答\n");
// recv(helpSocket,buf,dataMaxLength,0);
// ESP_LOGI(TAG,"服务器应答 : %s",buf);
// }
// close(helpSocket);
////sending command to eye ////
imgSocket=socket(AF_INET,SOCK_STREAM,0);
if(imgSocket==-1){
ESP_LOGE(TAG,"socket创建失败");
break;
}
struct sockaddr_in eye_addr;
char buffer[dataMaxLength];
for(int i=0;i<dataMaxLength;i++){
buffer[i]='\0';
}
eye_addr.sin_family=AF_INET;
eye_addr.sin_port=htons(img_PORT);
if((eye_addr.sin_addr.s_addr=inet_addr(EYE_IP))==INADDR_NONE) {
ESP_LOGE(TAG,"地址解析失败");
break;
}
bzero(&(eye_addr.sin_zero),8);
if(connect(imgSocket,(struct sockaddr*)&eye_addr,sizeof(struct sockaddr))==-1){
ESP_LOGE(TAG,"EYE连接失败");
break;
} else{
if(send(imgSocket,'e',sizeof('e'),0)==-1) {
ESP_LOGE(TAG,"sending failed\n");
break;
}
if(recv(imgSocket,1,sizeof(1),0)){
ESP_LOGI(TAG, "发送成功\n");
}
if(!isAed){
ESP_LOGI(TAG,"告知EYE进行图传");
int imgSocket=socket(AF_INET,SOCK_STREAM,0);
if(imgSocket==-1){
ESP_LOGE(TAG,"socket创建失败");
break;
}
struct sockaddr_in eye_addr;
char flag[1]={0};
eye_addr.sin_family=AF_INET;
eye_addr.sin_port=htons(IMG_PORT);
if((eye_addr.sin_addr.s_addr=inet_addr(EYE_IP))==INADDR_NONE) {
ESP_LOGE(TAG,"地址解析失败");
break;
}
bzero(&(eye_addr.sin_zero),8);
if(connect(imgSocket,(struct sockaddr*)&eye_addr,sizeof(struct sockaddr))==-1){
ESP_LOGE(TAG,"EYE连接失败");
break;
} else{
const char* req="reqImg";
if(send(imgSocket,req,strlen(req)*sizeof(char),0)==-1) {
ESP_LOGE(TAG,"发送失败\n");
break;
}
if(recv(imgSocket,flag,1,0) > 0){
ESP_LOGI(TAG, "告知成功\n");
}
}
close(imgSocket);
}else{
}
close(imgSocket);
break;
default:
ESP_LOGE(TAG, "Unknow cmd");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册