示例#1
0
文件: FrmServer.cs 项目: Wooyme/HIS-1
        /// <summary>
        /// 语音呼叫
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        private void SpeechCalled_thread(object callstring)
        {
            if (callstring == null || callstring.ToString() == "")
            {
                return;
            }
            #region 语音 呼叫

            try
            {
                //toText(name, deptname);
                int cs = calltimes;//释放资源
                if (cs <= 0)
                {
                    cs = 1;
                }
                string callString = callstring.ToString();
                LED_Operate.toText("操作日志", "SpeechCalled_thread:begin ");
                for (int i = 0; i < cs - 1; i++)
                {
                    callString += "," + callstring.ToString();
                }
                SpeechCalled(callString);
                LED_Operate.toText("操作日志", "SpeechCalled_thread:end ");
            }
            catch (Exception ex)
            {
                LED_Operate.toText("错误日志", "叫号错误:" + ex.Message);
            }
            #endregion
        }
示例#2
0
文件: FrmServer.cs 项目: Wooyme/HIS-1
 /// <summary>
 /// 计时器
 /// </summary>
 /// <param name="source"></param>
 /// <param name="e"></param>
 private void Timer_Tick(object source, System.Timers.ElapsedEventArgs e)
 {
     while (state == 1)
     {
     }
     lock ((object)state)
     {
         state = 1;
         try
         {
             for (int i = 0; i < windows.Count; i++)
             {
                 TimeSpan sp = DateTime.Now - windows[i].CallTime;
                 if (sp.TotalMinutes > _qingpingshijian)
                 {
                     windows[i].CallTime = DateTime.Now;
                     ledOper.Display(sentens, Convert.ToInt32(windows[i].WinCode));
                     break;
                 }
             }
         }
         catch (Exception err)
         {
             LED_Operate.toText("错误日志", "显示报错:" + err.Message);
         }
         state = 0;
     }
 }
示例#3
0
文件: FrmServer.cs 项目: Wooyme/HIS-1
        /// <summary>
        /// 操作
        /// </summary>
        /// <param name="name"></param>
        /// <param name="winname"></param>
        /// <param name="wincode"></param>
        /// <param name="deptid"></param>
        private void LedShowMothed(string name, string winname, string wincode, string deptid)
        {
            LED_Operate.toText("操作日志", "LedShowMothed:while begin ");
            while (state == 1)
            {
            }

            lock ((object)state)
            {
                LED_Operate.toText("操作日志", "lock:begin ");
                state = 1;
                //System.Threading.Thread.Sleep(1000);
                //MessageBox.Show("ddddd");
                string showstring = "请" + name + "取药";
                //string callstring = "请" + name + "到" + winname + "来取药";
                string callstring = "请" + name.Trim() + "" + winname.Trim() + "取药";
                // jianqg 2014-6-11 先显示,再呼叫
                #region 语音 呼叫
                try
                {
                    //改线程
                    LED_Operate.toText("操作日志", "语音:begin ");
                    System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(SpeechCalled_thread));
                    thread.Start(callstring);
                    ////toText(name, deptname);
                    //int cs = calltimes;//释放资源
                    //if (cs <= 0) cs = 1;
                    //for (int i = 0; i < cs - 1; i++)
                    //{
                    //    SpeechCalled(callstring);
                    //}
                }
                catch (Exception ex)
                {
                    LED_Operate.toText("错误日志", "叫号错误:" + ex.Message);
                }
                #endregion
                #region //输出显示
                try
                {
                    //一个窗口叫同一个人姓名,则不再往已叫号队列中插入该人姓名
                    for (int i = 0; i < windows.Count; i++)
                    {
                        //if (windows[i].WinCode == wincode && windows[i].Calling == name)
                        //    return;
                        if (windows[i].WinCode == wincode && windows[i].Calling != name)
                        {
                            //MessageBox.Show(name);
                            windows[i].Calling  = name;
                            windows[i].CallTime = DateTime.Now;//记录叫号时间
                            ledOper.Display(showstring.Trim(), Convert.ToInt32(wincode));
                            //int j = List.IndexOf(name);
                            //if (j == -1)
                            //    List.Add(name);
                            //MessageBox.Show(i.ToString() + windows[i].WinCode + windows[i].Calling + showstring);
                            break;
                        }
                    }
                    //ShowCalled(showstring, winname);
                    //释放资源
                    //ShiFangZiYuan();
                }
                catch (Exception ex)
                {
                    LED_Operate.toText("错误日志", "显示错误:" + ex.Message);
                }
                #endregion
                #region //配置了未发药窗口的编号,就执行叫号未发药的流程
                try
                {
                    //配置了未发药窗口的编号,就执行叫号未发药的流程
                    if (orderwindows != "")
                    {
                        string orderShow = CallOrder(deptid);
                        ledOper.Display(orderShow, Convert.ToInt32(orderwindows));
                    }
                }
                catch (Exception err)
                {
                    LED_Operate.toText("错误日志", "排序错误:" + err.Message);
                }
                #endregion

                LED_Operate.toText("操作日志", "LedShowMothed:end ");
                state = 0;
                //释放资源
                LED_Operate.ShiFangZiYuan();
            }
        }