コード例 #1
0
        public Game StatusLong()
        {
            Game game = new Game();

            game.Board     = BoggleBoard.ToString();
            game.TimeLimit = TimeLimit;

            game.Player1 = Player1.ActiveLongUser();
            game.Player2 = Player2.ActiveLongUser();

            int left = (int)(StartTime.AddSeconds((double)TimeLimit) - DateTime.Now).TotalSeconds;

            if (GameState == "completed" || left <= 0)
            {
                TimeLeft     = 0;
                GameState    = "completed";
                game.Player1 = Player1.CompletedLongUser();
                game.Player2 = Player2.CompletedLongUser();
            }
            else
            {
                TimeLeft = left;
            }

            game.TimeLeft  = TimeLeft;
            game.GameState = GameState;
            return(game);
        }
コード例 #2
0
        public Hashtable GetSecondsPerHour(int timezoneOffset)
        {
            int       startHour = StartTime.Hour;
            DateTime  endTime   = StartTime.AddSeconds(Seconds);
            int       endHour   = endTime.Hour;
            Hashtable result    = new Hashtable();

            for (int i = startHour; i <= endHour; i++)
            {
                int seconds = 3600;
                if (i == endHour)
                {
                    seconds = endTime.Minute * 60 + endTime.Second;
                }
                if (i == startHour)
                {
                    seconds = seconds - StartTime.Minute * 60 - StartTime.Second;
                }

                int adjustedHour = i + timezoneOffset;
                if (adjustedHour < 0)
                {
                    adjustedHour = 24 - adjustedHour;
                }
                if (adjustedHour > 23)
                {
                    adjustedHour = adjustedHour - 24;
                }

                result.Add(adjustedHour, seconds);
            }
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Gets the time at a certain index
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public DateTime GetTime(int index)
        {
            switch (TimeStepSize)
            {
            case TimeStepUnit.Year:
                return(StartTime.AddYears(TimeStepMultiplier * index));

            case TimeStepUnit.Month:
                return(StartTime.AddMonths(TimeStepMultiplier * index));

            case TimeStepUnit.Day:
                return(StartTime.AddDays(TimeStepMultiplier * index));

            case TimeStepUnit.Hour:
                return(StartTime.AddHours(TimeStepMultiplier * index));

            case TimeStepUnit.Minute:
                return(StartTime.AddMinutes(TimeStepMultiplier * index));

            case TimeStepUnit.Second:
                return(StartTime.AddSeconds(TimeStepMultiplier * index));

            case TimeStepUnit.None:
            default:
                return(DateTime.MinValue);
            }
        }
コード例 #4
0
        public bool CanExcute()
        {
            DateTime nowtime = DateTime.Now;

            if (nowtime < StartTime || nowtime > EndTime)
            {
                return(false);
            }
            if (Type == PlanType.Once)
            {
                if (excuteTimes == 0)
                {
                    return(true);
                }
            }
            else
            {
                DateTime preTime    = StartTime.AddSeconds(excuteTimes * Interval);
                int      totalhours = (int)Math.Floor((nowtime - preTime).TotalSeconds);
                if (totalhours >= 1)
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #5
0
 public IntervalSyncFrequency()
 {
     Name      = "Interval";
     Hours     = 1;
     Minutes   = 0;
     StartTime = DateTime.Now;
     StartTime = StartTime.AddSeconds(-StartTime.Second);
 }
コード例 #6
0
 internal SipAddressBinding(string aor, IPEndPoint host, int cSeq, string callId, int expires)
 {
     AddressOfRecord = aor;
     Host            = host;
     CSeq            = cSeq;
     CallId          = callId;
     StartTime       = DateTime.Now;
     EndTime         = StartTime.AddSeconds(expires);
     Expires         = expires;
 }
コード例 #7
0
ファイル: ReserveDataEx.cs プロジェクト: nekopanda/EDCB
        public bool IsOnRec(int MarginMin = 0)
        {
            int StartMargin = RecSetting.GetTrueMargin(true) + 60 * MarginMin;
            int EndMargin   = RecSetting.GetTrueMargin(false);

            DateTime startTime = StartTime.AddSeconds(StartMargin * -1);
            int      duration  = (int)DurationSecond + StartMargin + EndMargin;

            return(CtrlCmdDefEx.isOnTime(startTime, duration));
        }
コード例 #8
0
        /// <summary>
        /// Сохранить этапы
        /// </summary>
        /// <param name="doc">Докумен в который выполнять сохранение этапов</param>
        /// <returns>Узел в котором сохранены этапы работы</returns>
        public XmlNode Serialize(XmlDocument doc)
        {
            try
            {
                XmlNode root = doc.CreateElement(rootName);

                XmlNode numberNode     = doc.CreateElement(numberName);
                XmlNode data_beginNode = doc.CreateElement(data_beginName);

                XmlNode data_endNode = doc.CreateElement(data_endName);
                XmlNode name_stgNode = doc.CreateElement(name_stgName);

                XmlNode volume_stgNode = doc.CreateElement(volume_stgName);
                XmlNode volume_allNode = doc.CreateElement(volume_allName);

                XmlNode const_volNode = doc.CreateElement(const_volName);
                XmlNode const_sumNode = doc.CreateElement(const_sumName);

                numberNode.InnerText     = number.ToString();
                data_beginNode.InnerText = StartTime.AddSeconds(3).ToString();

                if (State == StageState.Finished)
                {
                    data_endNode.InnerText = FinishedTime.ToString();
                }

                volume_stgNode.InnerText = Volume.ToString();
                volume_allNode.InnerText = ProccessVolume.ToString();

                const_volNode.InnerText = constVolume.ToString();
                const_sumNode.InnerText = TotalVolume.ToString();

                name_stgNode.InnerText = name_stg;

                root.AppendChild(numberNode);
                root.AppendChild(data_beginNode);

                root.AppendChild(data_endNode);
                root.AppendChild(name_stgNode);

                root.AppendChild(volume_stgNode);
                root.AppendChild(volume_allNode);

                root.AppendChild(const_volNode);
                root.AppendChild(const_sumNode);

                return(root);
            }
            catch { }
            return(null);
        }
コード例 #9
0
        /// <summary>
        /// Creates a new instance
        /// </summary>
        public BacktestingResultHandler()
        {
            ResamplePeriod     = TimeSpan.FromMinutes(4);
            NotificationPeriod = TimeSpan.FromSeconds(2);

            _chartSeriesExceededDataPoints = new HashSet <string>();

            // Delay uploading first packet
            _nextS3Update = StartTime.AddSeconds(30);

            //Default charts:
            Charts.AddOrUpdate("Strategy Equity", new Chart("Strategy Equity"));
            Charts["Strategy Equity"].Series.Add("Equity", new Series("Equity", SeriesType.Candle, 0, "$"));
            Charts["Strategy Equity"].Series.Add("Daily Performance", new Series("Daily Performance", SeriesType.Bar, 1, "%"));
        }
コード例 #10
0
 public HackOrder(int from, int to, int endTime, int variable, int conditional, int iterator, int json, int _class, int breakpoint, int type, int knowledge, int ingenyous, int coffe, string newIp)
 {
     From        = from;
     To          = to;
     StartTime   = DateTime.Now;
     EndTime     = StartTime.AddSeconds(endTime);
     ReturnTime  = EndTime.AddSeconds(endTime);
     Variable    = variable;
     Conditional = conditional;
     Iterator    = iterator;
     Json        = json;
     Class       = _class;
     BreakPoint  = breakpoint;
     Type        = type;
     Knowledge   = knowledge;
     Ingenyous   = ingenyous;
     Coffee      = coffe;
     IsReturn    = false;
     NewIp       = newIp;
 }
コード例 #11
0
        /// <summary>
        /// Build video url
        /// </summary>
        /// <returns></returns>
        protected string BuildVideoUrl()
        {
            if (TransBegin.Equals(DBNull.Value) || TransEnd.Equals(DBNull.Value))
            {
                return(string.Empty);
            }
            string urlFormat     = "{0}?t1={1:yyyyMMdd-HHmmss}&t2={2:yyyyMMdd-HHmmss}&speed={3}";
            string NVRSeverIP    = CommonDictionary4Monitor.DataSource.cf_station.FirstOrDefault().VIDEO_SERVER_IP.ToString();
            int    NVRServerPort = CommonDictionary4Monitor.DataSource.cf_station.FirstOrDefault().VIDEO_SERVER_PORT.ConvertToInt();

            // Quân edit 01-10-2015
            // comment đoạn này vì cú pháp rtsp để xem video playback hiện tại là rtsp://nvrip:nvrport/ipcamera?t1=&t2=&speed=1
            //string urlVideo = string.Format("rtsp://{0}{1}/{2}{3}", DBOption.NVRServerID, DBOption.NVRServerPort > 0 ? (":"+ DBOption.NVRServerPort) : string.Empty, IPCamera, PortCamera > 0 ? (":"+ PortCamera) : string.Empty);
            string urlVideo = string.Format("rtsp://{0}{1}/{2}{3}", NVRSeverIP, NVRServerPort > 0 ? (":" + NVRServerPort) : string.Empty, IPCamera, string.Empty);
            // Teardown video hiện tại, streaming video mới với thời gian bằng thời gian bắt đầu và thời gian đã phát
            //return "rtsp://192.168.6.150:8888:8554/192.168.7.61?t1=20140727-103700&t2=20140727-104700&speed=1";
            //rtsp://192.168.6.150:8888:8554/192.168.7.61?t1=20140727-101700&t2=20140727-104700&speed=1
            DateTime EndTime = TransEnd;

            Console.WriteLine(string.Format(urlFormat, urlVideo, StartTime.AddSeconds(-15), EndTime.AddSeconds(15), Speed));
            return(string.Format(urlFormat, urlVideo, StartTime.AddSeconds(-15), EndTime.AddSeconds(15), Speed));
            //return string.Format(urlFormat, urlVideo, StartTime, TransactionRow.TRANS_END, Speed); // tạm thời cho lùi lại 30s cho tất cả các transaction
        }
コード例 #12
0
        public Game BriefGame()
        {
            Game game = new Game();

            int left = (int)(StartTime.AddSeconds((double)TimeLimit) - DateTime.Now).TotalSeconds;

            if (GameState == "completed" || left <= 0)
            {
                TimeLeft  = 0;
                GameState = "completed";
            }
            else
            {
                TimeLeft = left;
            }

            game.Board     = null;
            game.TimeLeft  = TimeLeft;
            game.GameState = GameState;
            game.Player1   = Player1.BriefUser();
            game.Player2   = Player2.BriefUser();
            return(game);
        }
コード例 #13
0
        /// <summary>
        /// Checks an individual site and returns a new HttpRequestData object
        /// </summary>
        /// <param name="reqData"></param>
        /// <returns></returns>
        public HttpRequestData CheckSite(HttpRequestData reqData)
        {
            if (CancelThreads)
            {
                return(null);
            }

            // create a new instance
            var result = HttpRequestData.Copy(reqData);

            result.ErrorMessage = "Request is incomplete"; // assume not going to make it

            result.IsWarmupRequest = StartTime.AddSeconds(Options.WarmupSeconds) > DateTime.UtcNow;

            try
            {
                var client = new HttpClient();


                if (!string.IsNullOrEmpty(Options.ReplaceDomain))
                {
                    result.Url = ReplaceDomain(result.Url);
                }

                if (!string.IsNullOrEmpty(Options.ReplaceQueryStringValuePairs))
                {
                    result.Url = ReplaceQueryStringValuePairs(result.Url, Options.ReplaceQueryStringValuePairs);
                }

                foreach (var plugin in App.Plugins)
                {
                    try
                    {
                        if (!plugin.OnBeforeRequestSent(result))
                        {
                            return(result);
                        }
                    }
                    catch (Exception ex)
                    {
                        App.Log(plugin.GetType().Name + " failed in OnBeforeRequestSent(): " + ex.Message);
                    }
                }

                client.CreateWebRequestObject(result.Url);
                var webRequest = client.WebRequest;

                // TODO: Connection Groups might help with sharing connections more efficiently
                // Initial tests show no improvements - more research required
                //webRequest.ConnectionGroupName = "_WebSurge_" + Thread.CurrentContext.ContextID;

                if (!string.IsNullOrEmpty(Options.Username))
                {
                    client.Username = Options.Username;
                    webRequest.UnsafeAuthenticatedConnectionSharing = true;
                }
                if (!string.IsNullOrEmpty(Options.Password))
                {
                    client.Password = Options.Password;
                }

                webRequest.Method = reqData.HttpVerb;

                client.ContentType = reqData.ContentType;
                client.Timeout     = Options.RequestTimeoutMs / 1000;

                // don't auto-add gzip headers and don't decode by default
                client.UseGZip = false;

                if (Options.NoContentDecompression)
                {
                    webRequest.AutomaticDecompression = DecompressionMethods.None;
                }
                else
                {
                    webRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
                }

                if (!string.IsNullOrEmpty(reqData.RequestContent))
                {
                    var data = reqData.GetRequestContentBytes();
                    client.AddPostKey(data);
                }
                else
                {
                    webRequest.ContentLength = 0;
                }

                foreach (var header in result.Headers)
                {
                    var lheader = header.Name.ToLower();

                    // Header Overrides that fail if you try to set them
                    // directly in HTTP
                    if (lheader == "cookie" && !string.IsNullOrEmpty(Options.ReplaceCookieValue))
                    {
                        string cookie = Options.ReplaceCookieValue;
                        webRequest.Headers.Add("Cookie", cookie);
                        header.Value = cookie;
                        continue;
                    }
                    if (lheader == "authorization" && !string.IsNullOrEmpty(Options.ReplaceAuthorization))
                    {
                        webRequest.Headers.Add("Authorization", Options.ReplaceAuthorization);
                        header.Value = Options.ReplaceAuthorization;
                        continue;
                    }
                    if (lheader == "user-agent")
                    {
                        client.UserAgent = header.Value;
                        continue;
                    }
                    if (lheader == "accept")
                    {
                        webRequest.Accept = header.Value;
                        continue;
                    }
                    if (lheader == "referer")
                    {
                        webRequest.Referer = header.Value;
                        continue;
                    }
                    if (lheader == "connection")
                    {
                        if (header.Value.ToLower() == "keep-alive")
                        {
                            webRequest.KeepAlive = true; // this has no effect
                        }
                        else if (header.Value.ToLower() == "close")
                        {
                            webRequest.KeepAlive = false;
                        }
                        continue;
                    }
                    // set above view property
                    if (lheader == "content-type")
                    {
                        continue;
                    }
                    // not handled at the moment
                    if (lheader == "proxy-connection")
                    {
                        continue; // TODO: Figure out what to do with this one
                    }
                    // set explicitly via properties
                    if (lheader == "transfer-encoding")
                    {
                        webRequest.TransferEncoding = header.Value;
                        continue;
                    }
                    if (lheader == "date")
                    {
                        continue;
                    }
                    if (lheader == "expect")
                    {
                        //webRequest.Expect = header.Value;
                        continue;
                    }
                    if (lheader == "if-modified-since")
                    {
                        continue;
                    }

                    webRequest.Headers.Add(header.Name, header.Value);
                }

                DateTime dt = DateTime.UtcNow;

                if (CancelThreads)
                {
                    return(null);
                }

                // using West Wind HttpClient
                string httpOutput = client.DownloadString(result.Url);

                if (CancelThreads)
                {
                    return(null);
                }

                result.TimeTakenMs = (int)DateTime.UtcNow.Subtract(dt).TotalMilliseconds;
                // result.TimeToFirstByteMs = client.Timings.TimeToFirstByteMs;

                if (client.Error || client.WebResponse == null)
                {
                    result.ErrorMessage = client.ErrorMessage;
                    return(result);
                }

                result.StatusCode        = ((int)client.WebResponse.StatusCode).ToString();
                result.StatusDescription = client.WebResponse.StatusDescription ?? string.Empty;
                result.TimeToFirstByteMs = client.HttpTimings.TimeToFirstByteMs;

                result.ResponseLength = (int)client.WebResponse.ContentLength;
                if (result.ResponseLength < 1 && !string.IsNullOrEmpty(httpOutput))
                {
                    result.ResponseLength = httpOutput.Length;
                }

                result.ResponseContent = httpOutput;

                StringBuilder sb = new StringBuilder();
                foreach (string key in client.WebResponse.Headers.Keys)
                {
                    sb.AppendLine(key + ": " + client.WebResponse.Headers[key]);
                }

                result.ResponseHeaders = sb.ToString();

                // update to actual Http headers sent
                result.Headers.Clear();
                foreach (string key in webRequest.Headers.Keys)
                {
                    result.Headers.Add(new HttpRequestHeader()
                    {
                        Name = key, Value = webRequest.Headers[key]
                    });
                }

                char statusCode = result.StatusCode[0];
                if (statusCode == '4' || statusCode == '5')
                {
                    result.IsError      = true;
                    result.ErrorMessage = client.WebResponse.StatusDescription;
                }
                else
                {
                    result.IsError      = false;
                    result.ErrorMessage = null;

                    if (Options.MaxResponseSize > 0 && result.ResponseContent.Length > Options.MaxResponseSize)
                    {
                        result.ResponseContent = result.ResponseContent.Substring(0, Options.MaxResponseSize);
                    }
                }

                //} // using client
                client.Dispose();

                if (!CancelThreads)
                {
                    OnRequestProcessed(result);
                }

                return(result);
            }

            // these will occur on shutdown - don't log since they will return
            // unstable results - just ignore
            catch (ThreadAbortException)
            {
                return(null);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: " + ex.Message);
                result.IsError      = true;
                result.ErrorMessage = "CheckSite Error: " + ex.GetBaseException().Message;

                if (!CancelThreads)
                {
                    OnRequestProcessed(result);
                }

                return(result);
            }
        }
コード例 #14
0
ファイル: PlanSplitMonitor.cs プロジェクト: gmonk/ATSPM
        public void SetProgrammedSplits(string signalId)
        {
            Splits.Clear();
            var l = new List <int>();

            for (var i = 130; i <= 151; i++)
            {
                l.Add(i);
            }
            var splitsDt = new ControllerEventLogs(signalId, StartTime, StartTime.AddSeconds(2), l);

            foreach (var row in splitsDt.Events)
            {
                if (row.EventCode == 132)
                {
                    CycleLength = row.EventParam;
                }

                if (row.EventCode == 133)
                {
                    OffsetLength = row.EventParam;
                }

                if (row.EventCode == 134 && !Splits.ContainsKey(1))
                {
                    Splits.Add(1, row.EventParam);
                }
                else if (row.EventCode == 134 && row.EventParam > 0)
                {
                    Splits[1] = row.EventParam;
                }

                if (row.EventCode == 135 && !Splits.ContainsKey(2))
                {
                    Splits.Add(2, row.EventParam);
                }
                else if (row.EventCode == 135 && row.EventParam > 0)
                {
                    Splits[2] = row.EventParam;
                }

                if (row.EventCode == 136 && !Splits.ContainsKey(3))
                {
                    Splits.Add(3, row.EventParam);
                }
                else if (row.EventCode == 136 && row.EventParam > 0)
                {
                    Splits[3] = row.EventParam;
                }

                if (row.EventCode == 137 && !Splits.ContainsKey(4))
                {
                    Splits.Add(4, row.EventParam);
                }
                else if (row.EventCode == 137 && row.EventParam > 0)
                {
                    Splits[4] = row.EventParam;
                }

                if (row.EventCode == 138 && !Splits.ContainsKey(5))
                {
                    Splits.Add(5, row.EventParam);
                }
                else if (row.EventCode == 138 && row.EventParam > 0)
                {
                    Splits[5] = row.EventParam;
                }

                if (row.EventCode == 139 && !Splits.ContainsKey(6))
                {
                    Splits.Add(6, row.EventParam);
                }
                else if (row.EventCode == 139 && row.EventParam > 0)
                {
                    Splits[6] = row.EventParam;
                }

                if (row.EventCode == 140 && !Splits.ContainsKey(7))
                {
                    Splits.Add(7, row.EventParam);
                }
                else if (row.EventCode == 140 && row.EventParam > 0)
                {
                    Splits[7] = row.EventParam;
                }

                if (row.EventCode == 141 && !Splits.ContainsKey(8))
                {
                    Splits.Add(8, row.EventParam);
                }
                else if (row.EventCode == 141 && row.EventParam > 0)
                {
                    Splits[8] = row.EventParam;
                }

                if (row.EventCode == 142 && !Splits.ContainsKey(9))
                {
                    Splits.Add(9, row.EventParam);
                }
                else if (row.EventCode == 142 && row.EventParam > 0)
                {
                    Splits[9] = row.EventParam;
                }

                if (row.EventCode == 143 && !Splits.ContainsKey(10))
                {
                    Splits.Add(10, row.EventParam);
                }
                else if (row.EventCode == 143 && row.EventParam > 0)
                {
                    Splits[10] = row.EventParam;
                }

                if (row.EventCode == 144 && !Splits.ContainsKey(11))
                {
                    Splits.Add(11, row.EventParam);
                }
                else if (row.EventCode == 144 && row.EventParam > 0)
                {
                    Splits[11] = row.EventParam;
                }

                if (row.EventCode == 145 && !Splits.ContainsKey(12))
                {
                    Splits.Add(12, row.EventParam);
                }
                else if (row.EventCode == 145 && row.EventParam > 0)
                {
                    Splits[12] = row.EventParam;
                }

                if (row.EventCode == 146 && !Splits.ContainsKey(13))
                {
                    Splits.Add(13, row.EventParam);
                }
                else if (row.EventCode == 146 && row.EventParam > 0)
                {
                    Splits[13] = row.EventParam;
                }

                if (row.EventCode == 147 && !Splits.ContainsKey(14))
                {
                    Splits.Add(14, row.EventParam);
                }
                else if (row.EventCode == 147 && row.EventParam > 0)
                {
                    Splits[14] = row.EventParam;
                }

                if (row.EventCode == 148 && !Splits.ContainsKey(15))
                {
                    Splits.Add(15, row.EventParam);
                }
                else if (row.EventCode == 148 && row.EventParam > 0)
                {
                    Splits[15] = row.EventParam;
                }

                if (row.EventCode == 149 && !Splits.ContainsKey(16))
                {
                    Splits.Add(16, row.EventParam);
                }
                else if (row.EventCode == 149 && row.EventParam > 0)
                {
                    Splits[16] = row.EventParam;
                }
            }

            if (Splits.Count == 0)
            {
                for (var i = 0; i < 16; i++)
                {
                    Splits.Add(i, 0);
                }
            }
        }
コード例 #15
0
ファイル: ReserveDataEx.cs プロジェクト: nekopanda/EDCB
        public DateTime EndTimeWithMargin()
        {
            int EndMargin = RecSetting.GetTrueMargin(false);

            return(StartTime.AddSeconds((int)DurationSecond + EndMargin));
        }
コード例 #16
0
ファイル: ReserveDataEx.cs プロジェクト: nekopanda/EDCB
        public DateTime StartTimeWithMargin(int MarginMin = 0)
        {
            int StartMargin = RecSetting.GetTrueMargin(true) + 60 * MarginMin;

            return(StartTime.AddSeconds(StartMargin * -1));
        }
        void TagCompletedEvent(object sender, CSLibrary.Events.OnAccessCompletedEventArgs e)
        {
            if (!e.success)
            {
                GetLog();
            }

            // process result
            switch (_ProcessState)
            {
            // run next step pcocess
            case 0:
            case 1:
            case 2:
            case 7:
            case 8:
                System.Threading.Thread.Sleep(500);
                _ProcessState++;
                GetLog();
                break;

            case 3:
            {
                UInt16[] TagData = BleMvxApplication._reader.rfid.Options.TagReadUser.pData.ToUshorts();

                StartTime  = UnixTime(TagData[0] << 16 | TagData[1]);
                Interval   = TagData[2];
                TempOffset = 0.25 * (TagData[3]);
                Total      = TagData[4];
                //label17.Text = "Total : " + Total.ToString();
                if (Total >= 10752)
                {
                    //label17.Text += " (MemoryBank Full)";
                }


                // read first data set
                _ProcessState++;
                GetLog();
            }
            break;

            case 4:
            {
                System.Threading.Thread.Sleep(2500);
                _ProcessState++;
                GetLog();
            }
            break;

            case 5:
            {
                if ((BleMvxApplication._reader.rfid.Options.TagReadUser.pData.ToUshorts()[0] & 0x04) != 0x0000)
                {
                    _ProcessState++;

                    ReadRecord = (UInt16)(Total - ReadOffset);

                    if (ReadRecord > 366)
                    {
                        ReadRecord = 366;
                    }

                    ReadUInt16 = (UInt16)((ReadRecord + 1) / 2);

                    ReadRecordOffset = 0;

                    if (ReadUInt16 > _ReadChunkSize)
                    {
                        ReadRecordSize = _ReadChunkSize;
                    }
                    else
                    {
                        ReadRecordSize = ReadUInt16;
                    }
                }
                else
                {
                    System.Threading.Thread.Sleep(500);
                }
                GetLog();
            }
            break;

            case 6:
                InvokeOnMainThread(() =>
                {
                    UInt16[] DataPtr = BleMvxApplication._reader.rfid.Options.TagReadUser.pData.ToUshorts();

                    for (int cnt = 0; cnt < DataPtr.Length; cnt++)
                    {
                        ColdChainTagTempLogInfoViewModel ins;
                        double temp;

                        temp      = ((DataPtr[cnt] >> 8) * 0.25) - TempOffset;
                        ins       = new ColdChainTagTempLogInfoViewModel();
                        ins.Index = (TagInfoList.Count + 1).ToString();
                        ins.Time  = StartTime.ToString();
                        ins.Temp  = temp.ToString();
                        TagInfoList.Add(ins);

                        StartTime = StartTime.AddSeconds(Interval);

                        if (TagInfoList.Count != Total)
                        {
                            temp      = ((DataPtr[cnt] & 0xff) * 0.25) - TempOffset;
                            ins       = new ColdChainTagTempLogInfoViewModel();
                            ins.Index = (TagInfoList.Count + 1).ToString();
                            ins.Time  = StartTime.ToString();
                            ins.Temp  = temp.ToString();
                            TagInfoList.Add(ins);

                            StartTime = StartTime.AddSeconds(Interval);
                        }
                    }

                    if ((ReadRecordOffset + ReadRecordSize) >= ReadUInt16)
                    {
                        ReadOffset += (UInt16)(ReadUInt16 * 2);
                        if (ReadOffset < Total)
                        {
                            _ProcessState = 4;
                        }
                        else
                        {
                            _ProcessState = 7;
                        }
                    }
                    else
                    {
                        ReadUInt16       -= ReadRecordSize;
                        ReadRecordOffset += ReadRecordSize;

                        if (ReadUInt16 > _ReadChunkSize)
                        {
                            ReadRecordSize = _ReadChunkSize;
                        }
                        else
                        {
                            ReadRecordSize = ReadUInt16;
                        }
                    }
                    GetLog();
                });
                break;
            }
        }
コード例 #18
0
        public string GetDurationRemaining()
        {
            if (Duration == -1)
            {
                return("Permanent");
            }
            if (StartTime.AddSeconds(Duration) <= DateTime.Now)
            {
                return(string.Empty);
            }

            var remainingTime = StartTime.AddSeconds(Duration) - DateTime.Now;

            switch (remainingTime.Days)
            {
            case > 1:
                return($"{remainingTime.Days} Days");

            case 1:
                return($"{remainingTime.Days} Day");

            default:
            {
                var stringBuilder = new StringBuilder();

                switch (remainingTime.Hours)
                {
                case 1:
                    stringBuilder.Append("1 Hour ");
                    break;

                case > 1:
                    stringBuilder.Append(remainingTime.Hours);
                    stringBuilder.Append(" Hour ");
                    break;
                }

                switch (remainingTime.Minutes)
                {
                case > 1:
                    stringBuilder.Append(remainingTime.Minutes);
                    stringBuilder.Append(" Minutes ");
                    break;

                default:
                    stringBuilder.Append(remainingTime.Minutes);
                    stringBuilder.Append(" Minute ");
                    break;
                }

                switch (remainingTime.Seconds)
                {
                case > 1:
                    stringBuilder.Append(remainingTime.Seconds);
                    stringBuilder.Append(" Seconds");
                    break;

                default:
                    stringBuilder.Append(remainingTime.Seconds);
                    stringBuilder.Append(" Second");
                    break;
                }

                return(stringBuilder.ToString());
            }
            }
        }
コード例 #19
0
        /// <summary>
        /// Starts a watcher threads for each PS log file (should be only PokerStars.log.0 and sometimes PokerStars.log.1)
        /// </summary>
        private static void WatchNewLogFiles(object state)
        {
            /// For future reference: FullTilt's log files are AppData\Local\FullTilt.xx\FullTilt.log.x - it's window titles work the same way
            /// The PS.com (and likely FT.com) client's log folder DOES NOT have the .COM extension in it's directory name. (tested & confirmed)
            List <string> newLogFiles = new List <string>();

            // Find PS folder for user's client
            string appDataLocal = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
            var    PSDirs       = Directory.GetDirectories(appDataLocal, "PokerStars*");
            var    FTDirs       = Directory.GetDirectories(appDataLocal, "FullTilt*");


            // PokerStars logs
            foreach (var dir in PSDirs) // foreach in case of multiple locales
            {
                string logFileBase = dir + "\\PokerStars.log.";
                if (File.Exists(logFileBase + 0) && !activeLogFiles.Contains(logFileBase + 0))
                {
                    newLogFiles.Add(logFileBase + 0);
                }
                if (File.Exists(logFileBase + 1) && !activeLogFiles.Contains(logFileBase + 1))
                {
                    newLogFiles.Add(logFileBase + 1);
                }
            }

            // Fulltilt logs
            foreach (var dir in FTDirs) // foreach in case of multiple locales
            {
                string logFileBase = dir + "\\FullTilt.log.";
                if (File.Exists(logFileBase + 0) && !activeLogFiles.Contains(logFileBase + 0))
                {
                    newLogFiles.Add(logFileBase + 0);
                }
                if (File.Exists(logFileBase + 1) && !activeLogFiles.Contains(logFileBase + 1))
                {
                    newLogFiles.Add(logFileBase + 1);
                }
            }

            // In case logs don't work the way I think, let user know
            if (newLogFiles.Count() > 0)
            {
                foreach (string log in newLogFiles)
                {
                    GHelper.SafeThreadStart(() => WatchLog(log));
                }
                newLogFiles.Clear();

                // This should only happen while debugging or on a new PS install
                if (DateTime.Now > StartTime.AddSeconds(9))
                {
                    // Give user some time to catch up on their tables if any
                    lock (Table.KnownTables)
                    {
                        if (Table.KnownTables.Count > 0)
                        {
                            Thread.Sleep(5000);
                        }
                    }

                    Logger.Log("Detected new PS log while running. This should only happen once after (re)installing PokerStars." +
                               "Please contact the developer if this occurs more than once.",
                               Logger.Status.Warning, showMessageBox: true);
                }
            }
        }
コード例 #20
0
ファイル: Plan.cs プロジェクト: gault00/ATSPMlite
        // set programmed splits
        public void SetProgrammedSplits(string signal_id)
        {
            Splits.Clear();

            IEnumerable <SplitsUDOT> SplitsDT;

            // UDOT adds 2 seconds to capture difference between when pattern changes and when split change is recorded
            // SplitsDT = UDOTSplitsData.Where(Function(d) d.Timestamp >= mStartTime And d.Timestamp <= mStartTime.AddSeconds(2))

            // Econolite records new splits at the system zero time, which is the nearest multiple of the cycle length after midnight.
            // For simplicity, just add one cycle length and it should be fine.
            SplitsDT = Globals.UDOTSplitsData.Where(d => d.Timestamp >= StartTime & d.Timestamp <= StartTime.AddSeconds(CycleLength));

            foreach (SplitsUDOT row in SplitsDT)
            {
                if (row.EventCode == 132)
                {
                    CycleLength = row.EventParam;
                }
                if (row.EventCode == 133)
                {
                    OffsetLength = row.EventParam;
                }
                if (row.EventCode == 134 & !Splits.ContainsKey(1))
                {
                    Splits.Add(1, row.EventParam);
                }
                if (row.EventCode == 134 & row.EventParam > 0)
                {
                    Splits[1] = row.EventParam;
                }
                if (row.EventCode == 135 & !Splits.ContainsKey(2))
                {
                    Splits.Add(2, row.EventParam);
                }
                if (row.EventCode == 135 & row.EventParam > 0)
                {
                    Splits[2] = row.EventParam;
                }
                if (row.EventCode == 136 & !Splits.ContainsKey(3))
                {
                    Splits.Add(3, row.EventParam);
                }
                if (row.EventCode == 136 & row.EventParam > 0)
                {
                    Splits[3] = row.EventParam;
                }
                if (row.EventCode == 137 & !Splits.ContainsKey(4))
                {
                    Splits.Add(4, row.EventParam);
                }
                if (row.EventCode == 137 & row.EventParam > 0)
                {
                    Splits[4] = row.EventParam;
                }
                if (row.EventCode == 138 & !Splits.ContainsKey(5))
                {
                    Splits.Add(5, row.EventParam);
                }
                if (row.EventCode == 138 & row.EventParam > 0)
                {
                    Splits[5] = row.EventParam;
                }
                if (row.EventCode == 139 & !Splits.ContainsKey(6))
                {
                    Splits.Add(6, row.EventParam);
                }
                if (row.EventCode == 139 & row.EventParam > 0)
                {
                    Splits[6] = row.EventParam;
                }
                if (row.EventCode == 140 & !Splits.ContainsKey(7))
                {
                    Splits.Add(7, row.EventParam);
                }
                if (row.EventCode == 140 & row.EventParam > 0)
                {
                    Splits[7] = row.EventParam;
                }
                if (row.EventCode == 141 & !Splits.ContainsKey(8))
                {
                    Splits.Add(8, row.EventParam);
                }
                if (row.EventCode == 141 & row.EventParam > 0)
                {
                    Splits[8] = row.EventParam;
                }
                if (row.EventCode == 142 & !Splits.ContainsKey(9))
                {
                    Splits.Add(9, row.EventParam);
                }
                if (row.EventCode == 142 & row.EventParam > 0)
                {
                    Splits[9] = row.EventParam;
                }
                if (row.EventCode == 143 & !Splits.ContainsKey(10))
                {
                    Splits.Add(10, row.EventParam);
                }
                if (row.EventCode == 143 & row.EventParam > 0)
                {
                    Splits[10] = row.EventParam;
                }
                if (row.EventCode == 144 & !Splits.ContainsKey(11))
                {
                    Splits.Add(11, row.EventParam);
                }
                if (row.EventCode == 144 & row.EventParam > 0)
                {
                    Splits[11] = row.EventParam;
                }
                if (row.EventCode == 145 & !Splits.ContainsKey(12))
                {
                    Splits.Add(12, row.EventParam);
                }
                if (row.EventCode == 145 & row.EventParam > 0)
                {
                    Splits[12] = row.EventParam;
                }
                if (row.EventCode == 146 & !Splits.ContainsKey(13))
                {
                    Splits.Add(13, row.EventParam);
                }
                if (row.EventCode == 146 & row.EventParam > 0)
                {
                    Splits[13] = row.EventParam;
                }
                if (row.EventCode == 147 & !Splits.ContainsKey(14))
                {
                    Splits.Add(14, row.EventParam);
                }
                if (row.EventCode == 147 & row.EventParam > 0)
                {
                    Splits[14] = row.EventParam;
                }
                if (row.EventCode == 148 & !Splits.ContainsKey(15))
                {
                    Splits.Add(15, row.EventParam);
                }
                if (row.EventCode == 148 & row.EventParam > 0)
                {
                    Splits[15] = row.EventParam;
                }
                if (row.EventCode == 149 & !Splits.ContainsKey(16))
                {
                    Splits.Add(16, row.EventParam);
                }
                if (row.EventCode == 149 & row.EventParam > 0)
                {
                    Splits[16] = row.EventParam;
                }
            }

            if (Splits.Count == 0)
            {
                for (var i = 0; i <= 15; i++)
                {
                    Splits.Add(i, 0);
                }
            }
        }