コード例 #1
0
 /// <summary>
 /// 设备连接事件
 /// </summary>
 void FrmMain_OnSetehoscopeConnect()
 {
     if (isConnect() && !isOrder)
     {
         ShowMsg("等待远程听诊");
         //告诉对方
         var code = new RReadyCode();
         SuperSocket.Send(code);
     }
 }
コード例 #2
0
 private void btnPresss_Click(object sender, EventArgs e)
 {
     if ("请求声音" == btnPresss.Text)
     {
         if (isOnline)
         {
             if (isRequest && isConnect())
             {
                 //btnPresss.Enabled = false;
                 var code = new RReadyCode();
                 SuperSocket.Send(code);
                 ShowMsg("本端已发起远程听诊");
                 //btnPresss.Enabled = false;
                 btnPresss.Text = "停止";
             }
         }
         else
         {
             ShowMsg("发起远程听诊失败(对方未启动客户端)");
         }
     }
     else
     {
         this.Close();
         Application.Exit();
         if (isConnect())
         {
             gifBox1.StopAnimate();
             if (isOrder)
             {
                 btnPresss.Enabled = true;
                 Current.StopAudioOutput();
             }
             SuperSocket.Send(new RStopAudioCode());
         }
     }
 }
コード例 #3
0
        public void HandleMessage(RReadyCode message)
        {
            if (isOrder)//发起方
            {
                if (!message.isReady)
                {
                    ShowMsg("发起远程听诊失败(请确认对方已连接听诊器)");
                    Invoke(new MethodInvoker(() =>
                    {
                        btnPresss.Enabled = false;
                    }));
                }
                else
                {
                    ShowMsg("对方设备就绪,可以发起听诊了");

                    //ShowMsg("远程听诊进行中");
                    Invoke(new MethodInvoker(() =>
                    {
                        btnPresss.Enabled = true;
                    }));
                }
            }
            else
            {
                if (isConnect())
                {
                    Thread thread = new Thread(() =>
                    {
                        //Thread.Sleep(200);
                        SuperSocket.Send(new RStartAudioCode());
                        Current.StartAudioInput();
                        timer.Start();
                        Invoke(new MethodInvoker(() =>
                        {
                            gifBox1.StartAnimate();
                            //processBarEx1.Visible = true;
                        }));
                        //Thread.Sleep(200);
                        while (!isStop)
                        {
                            byte[] packet = new byte[128];
                            int bytesRead = Current.AudioInputStream.Read(packet, 0, packet.Length);
                            if (bytesRead <= 0)
                            {
                                Thread.Sleep(100);
                                continue;
                            }
                            var code = new RTransAudioCode();
                            memoryStream.Write(packet, 0, bytesRead);
                            code.Bytes = packet.Take(bytesRead).ToArray();
                            SuperSocket.Send(code);
                            Thread.Sleep(1);
                        }
                        Current.StopAudioInput();
                    });
                    thread.Start();
                }
                else
                {
                    SuperSocket.Send(new RReadyCode()
                    {
                        isReady = false
                    });
                }
            }
        }