static public void LogPageStat(string szSessionID, string szURL, CUseTime useTime) { string cfg_s = System.Web.Configuration.WebConfigurationManager.AppSettings["SysLog"]; if (string.IsNullOrEmpty(cfg_s) || cfg_s.ToLower() != "true") { return; } try { lock (m_lockobj) { int dwDate = DateTime.Now.Year * 10000 + DateTime.Now.Month * 100 + DateTime.Now.Day; int dwTime = DateTime.Now.Hour * 10000 + DateTime.Now.Minute * 100 + DateTime.Now.Second; string szStationSN = GetStationSN(szSessionID); SQLiteConnection conn = GetConn(); DateTime s = useTime.m_UseTime[0]; for (int i = 0; i < useTime.m_UseTime.Count; i++) { int usetime = (useTime.m_UseTime[i] - s).Milliseconds; SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "insert into pagestat values(@szSessionID,@szStationSN,@szURL,@dwDate,@dwTime,@dwIndex,@dwUseTime,@szMemo);"; cmd.Parameters.Add(new SQLiteParameter("szSessionID", szSessionID)); cmd.Parameters.Add(new SQLiteParameter("szStationSN", szStationSN)); cmd.Parameters.Add(new SQLiteParameter("szURL", szURL)); cmd.Parameters.Add(new SQLiteParameter("dwDate", dwDate)); cmd.Parameters.Add(new SQLiteParameter("dwTime", dwTime)); cmd.Parameters.Add(new SQLiteParameter("dwIndex", i)); cmd.Parameters.Add(new SQLiteParameter("dwUseTime", usetime)); cmd.Parameters.Add(new SQLiteParameter("szMemo", useTime.m_UseTimeMemo[i])); int r = cmd.ExecuteNonQuery(); cmd.Dispose(); } } } catch (Exception e) { Logger.Trace(e.Message); } }
//传入二进制数据,返回二进制数据. public uint RequestBin(uint nCommand, byte[] aData, out byte[] vData) { uint nResult = (uint)REQUESTCODE.EXECUTE_FAIL; vData = null; m_dwErrCode = (uint)REQUESTCODE.EXECUTE_SUCCESS; m_strErrMsg = ""; if (aData == null) { aData = new byte[0]; } if (m_bTrace) { Logger.Trace("Request CMD=" + nCommand.ToString("x") + ",Length=" + (aData != null ? aData.Length.ToString() : "0")); } CUseTime stattime = new CUseTime(); try { if (!m_bConnected) { if (m_gateWay == null) { m_gateWay = new GateWay(); } if (!string.IsNullOrEmpty(m_Config.m_szServerIP)) { CUseTime stattime2 = new CUseTime(); if (!m_gateWay.Connect(m_Config.m_szServerIP, m_Config.m_nServerPort)) { stattime2.Add(); m_strErrMsg = "网络连接失败"; nResult = (uint)REQUESTCODE.EXECUTE_FAIL; SysConsole.Log(SessionID.ToString(), nResult, stattime2.GetTotalUseTime(), nCommand, aData, null, m_strErrMsg); return(nResult); } } Logger.Trace("UniCOM IsEncode:" + m_gateWay.IsEncode.ToString()); } byte[] sendData = new byte[12 + aData.Length]; sendData[0] = (byte)m_dwFlag; sendData[1] = (byte)(m_dwFlag >> 8); sendData[2] = (byte)(m_dwFlag >> 16); sendData[3] = (byte)(m_dwFlag >> 24); sendData[4] = (byte)m_dwSessionID; sendData[5] = (byte)(m_dwSessionID >> 8); sendData[6] = (byte)(m_dwSessionID >> 16); sendData[7] = (byte)(m_dwSessionID >> 24); sendData[8] = (byte)m_dwStaSN; sendData[9] = (byte)(m_dwStaSN >> 8); sendData[10] = (byte)(m_dwStaSN >> 16); sendData[11] = (byte)(m_dwStaSN >> 24); Array.Copy(aData, 0, sendData, 12, aData.Length); if (mutex != null) { mutex.WaitOne(); } lock (m_gateWay) { for (int t = 0; t < m_RetryTime; t++) { if (m_dwTimeout == 0) { vData = (byte[])(m_gateWay.Request(nCommand, sendData, out nResult)); } else { vData = (byte[])(m_gateWay.RequestEx(nCommand, sendData, out nResult, 0, MSG_REQUEST, NeedEcho_True, m_dwTimeout, NeedACK_False)); } if (nResult == (uint)REQUESTCODE.EXECUTE_SUCCESS || vData != null) { break; } else { if (!m_gateWay.IsConnect) { Logger.Trace("m_gateWay.Request 失败重连"); m_gateWay.Connect(m_Config.m_szServerIP, m_Config.m_nServerPort); } else { Logger.Trace("m_gateWay.Request 失败重试"); } } } } stattime.Add(); if (m_bTrace) { Logger.Trace("Return CMD=" + nCommand.ToString("x") + ",Return=" + ((REQUESTCODE)nResult).ToString() + ", ResultLength=" + (vData != null ? vData.Length.ToString() : "0")); } if (nResult == (uint)REQUESTCODE.EXECUTE_SUCCESS) { if (mutex != null) { mutex.ReleaseMutex(); } SysConsole.Log(SessionID.ToString(), nResult, stattime.GetTotalUseTime(), nCommand, aData, vData, null); return(nResult); } UNICOMMERR_UT vrErr; UniStructCS.CUniStructCS uccs = new UniStructCS.CUniStructCS(); if (uccs.Import(out vrErr, vData) > 0) { Logger.Trace("Error>>"); Logger.Trace(vrErr); m_dwErrCode = (uint)vrErr.dwErrorCode; m_strErrMsg = vrErr.szErrorInfo; if (m_dwErrCode == 0x2002001) { SessionID = 0; } } vData = null; } catch (System.Runtime.InteropServices.COMException exception) { Close(); nResult = (uint)REQUESTCODE.EXECUTE_FAIL; m_strErrMsg = exception.Message; Logger.Trace("m_strErrMsg=" + m_strErrMsg); } catch (Exception exception) { Close(); nResult = (uint)REQUESTCODE.EXECUTE_FAIL; m_strErrMsg = exception.Message; Logger.Trace("m_strErrMsg=" + m_strErrMsg); } try { if (mutex != null) { mutex.ReleaseMutex(); } } catch (Exception exception) { Logger.Trace("Exception exception)" + exception.Message); } SysConsole.Log(SessionID.ToString(), nResult, stattime.GetTotalUseTime(), nCommand, aData, vData, m_strErrMsg); return(nResult); }