public virtual void SendMessage(object sender, Messages msgs) { Message msg = new Message(); for (int i = 0; i < msgs.Count(); i++) { if (msgs.Objects(i).Type != MessageType.Data) { msg = msgs.Objects(i); } } IDCTClient client = sender as IDCTClient; if (msg.Body != String.Empty) { string send_msg = MutiLanguages.ParserMessage(msg.Body); if (send_msg.IndexOf("$") < 0) { client.SendMessage(send_msg); } } if (msg.Exception != null) { string send_msg = MutiLanguages.ParserMessage(msg.Exception.Message); if (send_msg.IndexOf("$") < 0) { client.SendMessage(send_msg); } } if (msg != null) { switch (msg.Type) { case MessageType.Succes: { break; } case MessageType.Error: { System.Threading.Thread.Sleep(500); break; } default: { break; } } } }
public virtual void SendMessage(object sender, Messages msgs, string command) { IDCTClient client = sender as IDCTClient; Message msg = new Message(); for (int i = 0; i < msgs.Count(); i++) { if (msgs.Objects(i).Type != MessageType.Data) { msg = msgs.Objects(i); //处理一般的输出信息 if (msg.Body != String.Empty) { string send_msg = MutiLanguages.ParserMessage(msg.Body); if (send_msg.IndexOf("$") < 0) { if (msg.Type == MessageType.DCTClear) { client.SendMessage(empty); } if (msg.Type == MessageType.DCTData) { SendMessageEx(client, send_msg); } else { SendMessageEx(client, send_msg); } } else // 将缺失的Message记录下来 { try { string strFile = @"C:\DCT_EmptyMessage.txt"; System.IO.StreamWriter writer = new System.IO.StreamWriter(strFile, true); writer.WriteLine(msg.Body); writer.Close(); } catch { } } if (msg.Type == MessageType.Normal && msg.Body.Trim().Length > 0) { this._LastPrompt = send_msg.Trim(); } } //处理异常 if (msg.Exception != null) { string send_msg = MutiLanguages.ParserMessage(msg.Exception.Message); if (send_msg.IndexOf("$") < 0) { if (msg.Type == MessageType.DCTClear) { client.SendMessage(empty); } if (msg.Type == MessageType.DCTData) { SendMessageEx(client, send_msg); } else { SendMessageEx(client, send_msg); } } } //发出声音 if (msg != null) { switch (msg.Type) { case MessageType.Success: { //if(CurrentDirect == FlowDirect.WaitingOutPut && BeepSuccess) if (BeepSuccess) { client.SendCommand(DCTCommand.SpeakerOn); } break; } case MessageType.Error: { if (BeepError) { for (int j = 0; j < BeepCount; j++) { client.SendCommand(BeepType); System.Threading.Thread.Sleep(BeepInterval); } } break; } default: { if (BeepSuccess) { client.SendCommand(DCTCommand.SpeakerOn); } break; } } } //记录WorkingError if (msg.Type == MessageType.Error || msg.Exception != null) { try { SQLDomainDataProvider domainProvider = null; if (client.DBConnection != null) { domainProvider = client.DBConnection as BenQGuru.eMES.Common.DomainDataProvider.SQLDomainDataProvider; } else { domainProvider = DomainDataProviderManager.DomainDataProvider() as SQLDomainDataProvider; client.DBConnection = domainProvider; } DataCollectFacade dataCollectFacade = new DataCollectFacade(domainProvider); string userCode = client.LoginedUser; string resCode = client.ResourceCode; string segCode = client.SegmentCode; string ssCode = client.StepSequenceCode; string shiftTypeCode = client.ShiftTypeCode; string errorMessageCode = string.Empty; string errorMessage = string.Empty; if (msg.Type == MessageType.Error) { errorMessageCode = msg.Body; errorMessage = MutiLanguages.ParserMessage(msg.Body); } if (msg.Exception != null) { errorMessageCode = msg.Exception.Message; errorMessage = MutiLanguages.ParserMessage(msg.Exception.Message); } dataCollectFacade.LogWorkingError(userCode, resCode, segCode, ssCode, shiftTypeCode, WorkingErrorFunctionType.DCT, command, this._LastPrompt + ": " + client.ToString(), errorMessageCode, errorMessage); } catch (Exception ex) { //throw ex; } } } } }
//DCT每行的英文字符数 //private int DCTEnLineLen = 30; private void SendMessageEx(IDCTClient client, string send_msg) { client.SendMessage(send_msg); }