Exemple #1
0
    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);
        }
    }
Exemple #2
0
    //传入二进制数据,返回二进制数据.
    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);
    }