Пример #1
0
        public static KLogger GetFromDatabase(int id)
        {
            Database db     = DatabaseFactory.CreateDatabase();
            String   strSql =
                "SELECT * " +
                "FROM tblSignals " +
                "WHERE clv_signal = " + id;
            IDataReader dr = db.ExecuteReader(db.GetSqlStringCommand(strSql));

            KLogger k = new KLogger();

            if (dr != null && !dr.IsClosed)
            {
                if (!dr.Read())
                {
                    throw new Exception("This signal does not exist in the database");
                }
                k.stationID = dr.GetInt64(0);
                if (!dr.IsDBNull(1))
                {
                    k.station = dr.GetString(1);
                }
                if (!dr.IsDBNull(2))
                {
                    k.deviceName = dr.GetString(2);
                }
                if (!dr.IsDBNull(3))
                {
                    k.lineName = dr.GetString(3);
                }
                if (!dr.IsDBNull(4))
                {
                    k.bitRate = EnumFromValue.FromBitRate(dr.GetInt32(4));
                }
                if (!dr.IsDBNull(5))
                {
                    k.sampleRate = EnumFromValue.FromSampleRate(dr.GetInt32(5));
                }
                if (!dr.IsDBNull(6))
                {
                    k.volume = (uint)dr.GetInt32(6);
                }
                if (!dr.IsDBNull(7))
                {
                    k.recycleInterval = dr.GetInt32(7);
                }
                if (!dr.IsDBNull(8))
                {
                    k.workingDirectory = dr.GetString(8);
                }
                if (!dr.IsDBNull(9))
                {
                    k.enabled = dr.GetBoolean(9);
                }
            }
            dr.Close();
            return(k);
        }
Пример #2
0
        public static List <KLogger> GetAllFromDatabase()
        {
            Database db     = DatabaseFactory.CreateDatabase();
            String   strSql =
                "SELECT * " +
                "FROM tblSignals ";
            IDataReader dr = db.ExecuteReader(db.GetSqlStringCommand(strSql));

            List <KLogger> loggers = new List <KLogger>();

            if (dr != null && !dr.IsClosed)
            {
                while (dr.Read())
                {
                    KLogger k = new KLogger();
                    k.stationID = dr.GetInt64(0);
                    if (!dr.IsDBNull(1))
                    {
                        k.station = dr.GetString(1);
                    }
                    if (!dr.IsDBNull(2))
                    {
                        k.deviceName = dr.GetString(2);
                    }
                    if (!dr.IsDBNull(3))
                    {
                        k.lineName = dr.GetString(3);
                    }
                    if (!dr.IsDBNull(4))
                    {
                        k.bitRate = EnumFromValue.FromBitRate(dr.GetInt32(4));
                    }
                    if (!dr.IsDBNull(5))
                    {
                        k.sampleRate = EnumFromValue.FromSampleRate(dr.GetInt32(5));
                    }
                    if (!dr.IsDBNull(6))
                    {
                        k.volume = (uint)dr.GetInt32(6);
                    }
                    if (!dr.IsDBNull(7))
                    {
                        k.recycleInterval = dr.GetInt32(7);
                    }
                    if (!dr.IsDBNull(8))
                    {
                        k.workingDirectory = dr.GetString(8);
                    }
                    if (!dr.IsDBNull(9))
                    {
                        k.enabled = dr.GetBoolean(9);
                    }
                    loggers.Add(k);
                }
            }
            dr.Close();
            return(loggers);
        }
Пример #3
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                currentContext = context;
                request        = context.Request;
                response       = context.Response;

                FormsAuthenticationTicket ticket = ((FormsIdentity)context.User.Identity).Ticket;

                if (ticket.Expired || !context.User.Identity.IsAuthenticated)
                {
                    throw new ApplicationException();
                }

                parseRequest();

                KLogger k = Signal.GetFromDatabase(clv_signal);

                response.Clear();
                response.BufferOutput = false;
                response.ContentType  = "audio/mpeg";
                response.AppendHeader("Connection", "close");

                if (attachment)
                {
                    response.AppendHeader("Content-Disposition", "attachment; filename=\"mediastream.mp3\"");
                }

                foreach (TimeLine t in TimeLine.getMediaContent(clv_signal, t0, t1))
                {
                    try
                    {
                        if (response.IsClientConnected)
                        {
                            response.TransmitFile(k.workingDirectory + t.Ticks.ToString() + ".mp3");
                            response.Flush();
                            FlushMemory();
                        }
                    }
                    catch {}
                }
                response.End();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        private KLogger getLogger()
        {
            KLogger k = CurrentLogger;

            k.deviceName       = cmbWaveIn.SelectedItem.ToString();
            k.lineName         = listLines.SelectedItem.ToString();
            k.workingDirectory = txtRuta.Text;
            k.volume           = (uint)trcVolume.Value;
            k.bitRate          = (AdminServices.BitRate)Enum.Parse(typeof(AdminServices.BitRate), (string)cmbBitRates.SelectedValue);
            k.sampleRate       = (AdminServices.SampleRate)Enum.Parse(typeof(AdminServices.SampleRate), (string)cmbSampleRates.SelectedValue);
            k.station          = txtStation.Text;
            k.enabled          = chkEnabled.Checked;
            //k.recycleInterval
            return(k);
        }
Пример #5
0
 private void setLogger(KLogger k)
 {
     cmbLoggers.SelectedItem     = k;
     cmbWaveIn.SelectedItem      = k.deviceName;
     listLines.SelectedItem      = k.lineName;
     txtRuta.Text                = k.workingDirectory;
     trcVolume.Value             = (int)k.volume;
     cmbBitRates.SelectedItem    = k.bitRate.ToString();
     cmbSampleRates.SelectedItem = k.sampleRate.ToString();
     txtStation.Text             = k.station;
     lblStationID.Text           = k.stationID.ToString();
     chkEnabled.Checked          = k.enabled;
     chkRecording.Checked        = k.isRecording;
     //k.recycleInterval
 }
Пример #6
0
 private void OnChunkWritten(KLogger k, String filename)
 {
     try
     {
         TaskInfo t = new TaskInfo(k, filename);
         t.onTaskFinish += new TaskInfoHandler(onTaskFinish);
         ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), t);
         Trace.TraceInformation("INDEXING: Device -> " + k.deviceName + " / Line -> " + k.lineName + " / File -> " + filename);
     }
     catch (Exception ex)
     {
         Trace.TraceError(ex.Message);
         Trace.TraceError(ex.StackTrace);
         Trace.Flush();
     }
 }
Пример #7
0
        public static bool Insert(KLogger k)
        {
            Database  db  = DatabaseFactory.CreateDatabase();
            DbCommand dbc = db.GetStoredProcCommand("F_InsertSignal");

            db.AddOutParameter(dbc, "@clv_signal", DbType.Int64, sizeof(Int64));
            db.AddInParameter(dbc, "@signal", DbType.AnsiString, k.station);
            db.AddInParameter(dbc, "@deviceName", DbType.AnsiString, k.deviceName);
            db.AddInParameter(dbc, "@lineName", DbType.AnsiString, k.lineName);
            db.AddInParameter(dbc, "@bitRate", DbType.Int32, k.bitRate.GetHashCode());
            db.AddInParameter(dbc, "@sampleRate", DbType.Int32, k.sampleRate.GetHashCode());
            db.AddInParameter(dbc, "@volume", DbType.Int32, (int)k.volume);
            db.AddInParameter(dbc, "@recycleInterval", DbType.Int32, k.recycleInterval);
            db.AddInParameter(dbc, "@workingDirectory", DbType.AnsiString, k.workingDirectory);
            db.AddInParameter(dbc, "@enabled", DbType.Boolean, k.enabled);
            return(db.ExecuteNonQuery(dbc) > 0 ? true : false);
        }
Пример #8
0
        public static bool Insert(KLogger k, String filename)
        {
            filename = filename.Substring(filename.LastIndexOf("\\") + 1);
            filename = filename.Substring(0, filename.Length - 4);

            Int64    ticks    = Int64.Parse(filename.Split('.')[0]);
            DateTime timeline = new DateTime(ticks);

            Database  db  = DatabaseFactory.CreateDatabase();
            DbCommand dbc = db.GetStoredProcCommand("F_InsertTimeLine");

            db.AddOutParameter(dbc, "@clv_timeline", DbType.Int64, sizeof(Int64));
            db.AddInParameter(dbc, "@clv_signal", DbType.Int64, k.stationID);
            db.AddInParameter(dbc, "@timeline", DbType.DateTime, timeline);
            db.AddInParameter(dbc, "@ticks", DbType.Int64, ticks);
            return(db.ExecuteNonQuery(dbc) > 0 ? true : false);
        }
Пример #9
0
        public void Execute(KLogger k)
        {
            Signal.RefreshFromDatabase(k);
            switch (command)
            {
            case LoggerCommands.StartLogger:
                k.Start();
                k.enabled = true;
                Signal.Update(k);
                break;

            case LoggerCommands.StopLogger:
                k.Stop();
                k.enabled = false;
                Signal.Update(k);
                break;
            }
        }
 public bool setConfig(KLogger k)
 {
     return(Signal.Update(k));
 }
 public bool newConfig(KLogger k)
 {
     return(Signal.Insert(k));
 }
 public string[] getLines(string deviceName)
 {
     return(KLogger.getLines(deviceName));
 }
 public string[] getDevices()
 {
     return(KLogger.getDevices());
 }
Пример #14
0
        private string GenCodeFromTemplate(Transform tran, string className, string tmplPath)
        {
            string template = File.ReadAllText(tmplPath);


            System.Text.StringBuilder paramsDeclaredStr      = new System.Text.StringBuilder();
            System.Text.StringBuilder paramsAssignmentStr    = new System.Text.StringBuilder();
            System.Text.StringBuilder bindEventStr           = new System.Text.StringBuilder();
            System.Text.StringBuilder eventFunctionDefineStr = new System.Text.StringBuilder();

            var defines = tran.GetComponentsInChildren <KUIPropertyDefine>(true);

            for (int i = 0; i < defines.Length; i++)
            {
                defines[i].enabled = false;

                string typeName   = defines[i].varType;
                string varName    = defines[i].varName;
                string summaryStr = defines[i].varSummary;
                string childPath  = AnimationUtility.CalculateTransformPath(defines[i].transform, tran);

                if (string.IsNullOrEmpty(typeName))
                {
                    //在这里逐步补充相应的类型
                    if (defines[i].GetComponent <Button>())
                    {
                        typeName = typeof(Button).Name;

                        string clickFuncName = "OnClick" + varName.Substring(0, 1).ToUpper() + varName.Substring(1);

                        bindEventStr.Append(varName + ".AddClickListener(" + clickFuncName + ");\r\n			");

                        eventFunctionDefineStr.Append("private void " + clickFuncName + "()\r\n		{\r\n		}\r\n		");
                    }
                    else if (defines[i].GetComponent <Image>())
                    {
                        typeName = typeof(Image).Name;
                    }
                    else if (defines[i].GetComponent <Text>())
                    {
                        typeName = typeof(Text).Name;
                    }
                    else
                    {
                        typeName = typeof(Transform).Name;
                        KLogger.LogError("没有添加要处理的类型,使用默认类型|Transform|", defines[i].gameObject);
                    }
                }

                paramsDeclaredStr.AppendFormat("\r\n		/// <summary>\r\n		/// {2}\r\n		/// </summary>\r\n		private {0} {1};\r\n", typeName, varName, summaryStr);

                if (typeof(Transform).Name.Equals(typeName))
                {
                    paramsAssignmentStr.AppendFormat("			{1} = tran.GetComponent<{0}>();\r\n", typeName, varName);
                }
                else
                {
                    paramsAssignmentStr.AppendFormat("			{1} = tran.GetComponentByName<{0}>(\"{2}\");\r\n", typeName, varName, childPath);
                }
            }

            template = template.Replace("__CLASSNAME__", className);
            template = template.Replace("__PARAMS_DECLARED__", paramsDeclaredStr.ToString());
            template = template.Replace("__PARAMS_ASSIGNMENT__", paramsAssignmentStr.ToString());

            template = template.Replace("//BIND_EVENT_STATEMENT//", bindEventStr.ToString());
            template = template.Replace("//EVENT_FUNCTION_DEFINE//", eventFunctionDefineStr.ToString());

            return(template);
        }
Пример #15
0
        private void GenAllCode(KUIPropertyDefine target)
        {
            //win用于实时的取得各个定义的组件,没有则生成一个文件
            KUIWindow win = target.GetComponentInParent <KUIWindow>();

            if (win != null)
            {
                //读取对应的目录
                string path = AssetDatabase.GetAssetPath(MonoScript.FromMonoBehaviour(win).GetInstanceID());

                //生成Auto目录
                var fileInfo = new FileInfo(path);

                string autoGenPath     = fileInfo.DirectoryName + "/AutoGen";
                string autoGenFileName = win.GetType().Name + ".autogen.cs";

                if (!Directory.Exists(autoGenPath))
                {
                    KLogger.Log("KUI|需要创建目录|path|" + autoGenPath);
                    Directory.CreateDirectory(autoGenPath);
                }

                string outputName = autoGenPath + "/" + autoGenFileName;
                KLogger.Log("KUI|输出目录|outputName|" + outputName);

                string codeContent = GenCodeFromTemplate(win.transform, win.GetType().Name, KCoreEditorUtil.kuiEditorPath + "/AutoGenCodeTemplate.txt");

                File.WriteAllText(outputName, codeContent, System.Text.Encoding.UTF8);
            }
            else
            {
                //生成一个文件
                string theClassName = target.transform.root.name;

                string autoGenPath     = KCoreEditorUtil.kuiDefAutoGenPath + "/AutoGen";
                string autoGenFileName = theClassName + ".autogen.cs";

                if (!Directory.Exists(autoGenPath))
                {
                    KLogger.Log("KUI|需要创建目录|path|" + autoGenPath);
                    Directory.CreateDirectory(autoGenPath);
                }

                string outputName = autoGenPath + "/" + autoGenFileName;
                KLogger.Log("KUI|输出目录|outputName|" + outputName);

                string codeContent = GenCodeFromTemplate(target.transform.root, theClassName, KCoreEditorUtil.kuiEditorPath + "/AutoGenCodeTemplate.txt");

                File.WriteAllText(outputName, codeContent, System.Text.Encoding.UTF8);

                //同时生成主的class
                string mainClassFileName = KCoreEditorUtil.kuiDefAutoGenPath + "/" + theClassName + ".cs";
                if (!File.Exists(mainClassFileName))
                {
                    KLogger.Log("KUI|输出目录|mainClassFileName|" + mainClassFileName);
                    string mainCodeContent = GenCodeFromTemplate(target.transform.root, theClassName, KCoreEditorUtil.kuiEditorPath + "/UIMainCodeTemplate.txt");
                    File.WriteAllText(mainClassFileName, mainCodeContent, System.Text.Encoding.UTF8);
                }
            }

            AssetDatabase.Refresh();
        }
Пример #16
0
 public TaskInfo(KLogger k, String filename)
 {
     this.k        = k;
     this.filename = filename;
 }