//kiem tra sd card qua cong UART public bool excuteUart(Grid grid_container) { bool ret = false; var prop_audioresult = testingInfo.GetType().GetProperty("audioResult"); prop_audioresult.SetValue(testingInfo, "Waiting..."); //get logsytem var prop_logsystem = testingInfo.GetType().GetProperty("logSystem"); string log_value = (string)prop_logsystem.GetValue(testingInfo); try { if (!camera.IsConnected()) { goto END; } //set camera record audio log_value += "...thiết lập camera thu âm thanh từ mic\n"; prop_logsystem.SetValue(testingInfo, log_value); camera.captureAudio(); //play audio log_value += "...phát file âm thanh sound.wav ra loa máy tính.\n"; prop_logsystem.SetValue(testingInfo, log_value); IO.Speaker speaker = new IO.Speaker(string.Format("{0}sound.wav", AppDomain.CurrentDomain.BaseDirectory)); speaker.Play(); RE_WAIT: bool r = speaker.IsPlaying(); if (r) { Thread.Sleep(100); goto RE_WAIT; } //stop record log_value += "...thiết lập camera dừng thu âm.\n"; prop_logsystem.SetValue(testingInfo, log_value); camera.stopCaptureAudio(); //play sound log_value += "...thiết lập camera phát file âm thanh vừa thu ra loa.\n"; prop_logsystem.SetValue(testingInfo, log_value); camera.playBackAudio(); //show form confirm log_value += "...hiển thị giao diện xác nhận trạng thái khối audio.\n"; prop_logsystem.SetValue(testingInfo, log_value); Application.Current.Dispatcher.Invoke(new Action(() => { uc_audio = new UI.ucAudio(); grid_container.Children.Clear(); grid_container.Children.Add(uc_audio); })); RE: if (uc_audio.isPlayBack) { camera.playBackAudio(); uc_audio.isPlayBack = false; } ret = uc_audio.audioResult != -1; if (!ret) { Thread.Sleep(100); goto RE; } if (uc_audio.audioResult != 0) { ret = false; } //phán định log_value += string.Format("...\n"); log_value += string.Format("... ===> \"{0}\" <===\n", uc_audio.audioMessage); log_value += string.Format("...\n"); prop_logsystem.SetValue(testingInfo, log_value); //stop play back log_value += "...thiết lập camera dừng phát âm thanh.\n"; prop_logsystem.SetValue(testingInfo, log_value); camera.stopPlayBack(); goto END; } catch (Exception ex) { log_value += ex.ToString(); prop_logsystem.SetValue(testingInfo, log_value); goto END; } END: prop_audioresult.SetValue(testingInfo, ret ? "Passed" : "Failed"); return(ret); }