public static void Log(LogFormat log, string fileName) { string filePath = string.Format("{0}{1}.csv", _logPath, fileName); bool fileExists = false; lock (lockMe) { if (File.Exists(filePath)) { fileExists = true; } using (StreamWriter sw = new StreamWriter(filePath, true)) { if (!fileExists) { sw.WriteLine("IN DATE TIME,FlawID,FlawName,Flaw Y value(M),Flaw X value(M),JobID,OUT DATA,TYPE,Flaw Y value(mm),Flaw X value(mm),OUT DATA TIME,STATUS"); } string output = string.Format("{0},{1},,{2},{3},{4}", log.InputDateTime, log.InputData, log.OutputData, log.OutputDateTime, log.Status); sw.WriteLine(output); sw.Close(); } } }
public static void Log(LogFormat log, string fileName) { string filePath = string.Format("{0}{1}.csv", _logPath, fileName); bool fileExists = false; lock (lockMe) { if (File.Exists(filePath)) { fileExists = true; } // 2013-01-07: 不指定編碼時遇到中文字會自動將檔案儲存為 UTF-8(Without Bom) // 這樣會導致使用 Excel 開啟時中文字變成亂碼的問題,所以指定編碼為 Big5 using (StreamWriter sw = new StreamWriter(filePath, true, Encoding.GetEncoding("Big5"))) { if (!fileExists) { sw.WriteLine("IN DATE TIME,FlawID,FlawName,Flaw Y value(M),Flaw X value(M),JobID,OUT DATA,TYPE,Flaw Y value(mm),Flaw X value(mm),OUT DATA TIME,STATUS"); } string output = string.Format("{0},{1},,{2},{3},{4}", log.InputDateTime, log.InputData, log.OutputData, log.OutputDateTime, log.Status); sw.WriteLine(output); sw.Close(); } } }
public void AcceptCallback(IAsyncResult ar) { bool flag; Socket asyncSocket = ((Socket)ar.AsyncState).EndAccept(ar); if ((asyncSocket == null) || !asyncSocket.Connected) { return; } asyncSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000); asyncSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000); asyncSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, 512); string str = ""; string responseData = ""; string str3 = ""; while (true) { if (asyncSocket.Connected) { if (_clientConnected) { stulblSoftware.Text = "Software Listening-Sending"; } else { stulblSoftware.Text = "Software Listening"; } stulblSoftware.Image = _imgRun; } _outputLog = new LogFormat(); flag = false; int count = 0; str3 = ""; byte[] bytes = new byte[512]; try { count = asyncSocket.Receive(bytes); } catch (SocketException ex) { if ((ex.ErrorCode == 10060) || (ex.ErrorCode == 10035)) { _isSoftwareError = false; continue; } //else // 判斷 Client 是否斷線 //{ // if (_isSoftwareError != true) // { // if (_fileName == "") // { // _fileName = String.Format("{0}_{1}", _jobId, System.DateTime.Now.ToString("yyyyMMddHHmmss")); // } // stulblSoftware.Text = "Software Error"; // stulblSoftware.Image = _imgStop; // _outputLog.InputDateTime = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"); // _outputLog.InputData = String.Format("Software Error,{0},,,", ex.Message); // _outputLog.OutputData = ",,"; // WriteHelper.Log(_outputLog, _fileName); // _isSoftwareError = true; // } //} this.Listen(); return; } if (count <= 0) { //stulblSoftware.Text = "Software Error"; //stulblSoftware.Image = _imgStop; if (true) { this.Listen(); return; } } else { string str4 = Encoding.Unicode.GetString(bytes, 0, count); if (str.Length > 0) { str4 = str + str4; str = ""; } if (str4.Length > 0) { int num2 = str4.LastIndexOf("\r"); if (num2 == -1) { str = str4; str4 = ""; } else if (num2 < (str4.Length - 1)) { str = str4.Substring(num2 + 1); str4 = str4.Remove(num2 + 1, (str4.Length - num2) - 1); } foreach (string str7 in str4.Split(new char[] { '\r' })) { if (str7.Length >= 1) { _receiveData.Add(str7); } } } while (_receiveData.Count > 0) { string str8 = (string)_receiveData[0]; _receiveData.RemoveAt(0); str3 = String.Format("Receive: {0}", str8); _outputLog.InputDateTime = System.DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"); if (str8.CompareTo("GetStatus") == 0) { responseData = "Device_OK\r"; flag = true; } else if (str8.CompareTo("Rdy4_Xmit?") == 0) { responseData = "Send_New\r"; _clearLog = true; flag = true; } if (flag) { bytes = Encoding.Unicode.GetBytes(responseData); int responseDataLength = 0; try { responseDataLength = asyncSocket.Send(bytes); } catch (SocketException exception2) { if ((exception2.ErrorCode == 10060) || (exception2.ErrorCode == 10035)) { continue; } this.Listen(); break; } if (responseDataLength > 0) { str3 = String.Format("Response: {0}", responseData.Substring(0, responseData.Length - 1)); } } lock (_memLock) { _tmpUILog = str3; } updateLog method = new updateLog(this.UpdateLog); this.txtLog.Invoke(method); if (flag) { break; } string convertedData = ConvertData(str8); if (_clientConnected && flag != true) { TransmitData(convertedData); } if (_createNewLog) { _fileName = String.Format("{0}_{1}", _jobId, System.DateTime.Now.ToString("yyyyMMddHHmmss")); _createNewLog = false; } string[] splitReceiveData = _outputLog.InputData.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); string[] splitConvertedData = convertedData.Split(new char[] { '\r' }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < splitReceiveData.Length; i++) { _outputLog.InputData = splitReceiveData[i]; //if (_clientConnected && flag != true) //{ _outputLog.OutputData = splitConvertedData[i].Replace(";", ","); //} WriteHelper.Log(_outputLog, _fileName); } } } } }