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();
         }
     }
 }
Example #3
0
        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);
                        }
                    }
                }
            }
        }