Ejemplo n.º 1
0
        /// <summary>
        /// Get start time of build.
        /// </summary>
        /// <param name="database"></param>
        /// <returns></returns>
        /// <remarks>
        /// Returns the first occurance of one of the following:
        /// 1. Play is pressed
        /// 2. ProcessManagerState is Running
        /// 3. InternalProcessManagerState is Running
        /// 4. Temperature has a logged value above 600 deg.
        /// </remarks>
        public static DateTime GetBuildStart(IItemDatabase database)
        {
            LogRowData startProcess                = database.GetFirstItem("Process.ProcessManager.StartProcess", x => x.Value == "True");
            LogRowData processmanagerState         = database.GetFirstItem("Process.ProcessManager.ProcessManagerState", x => x.Value == "Running");
            LogRowData internalProcessmanagerState = database.GetFirstItem("Process.ProcessManager.InternalProcessManagerState", x => x.Value == "Running");

            if (startProcess == null && processmanagerState == null && internalProcessmanagerState == null)
            {
                throw new ApplicationException("Start of process not found.");
            }

            List <LogRowData> data = new List <LogRowData>()
            {
                startProcess, processmanagerState, internalProcessmanagerState
            };
            DateTime result = data.Where(t => t != null).Min(p => p.TimeStamp);

            return(result);
        }
Ejemplo n.º 2
0
        private bool IsBooleanItem(string itemName)
        {
            var item = m_ItemDatabase?.GetFirstItem(itemName, x => x.Value != null);

            return(item != null && bool.TryParse(item.Value, out bool value));
        }