public bool stop = false; //停止 /// <summary> /// 启动运行 /// </summary> public void ThreadStart() { thread = new Thread(Runtime); thread.Start(); Info?.Invoke("启动运行!!!"); StartCode?.Invoke(); }
public override string ToString() { return($"{nameof(StartYear)}: {StartYear}, " + $"{nameof(StartCode)}: {StartCode.GetEnumValue()}, " + $"{nameof(EndYear)}: {EndYear}, " + $"{nameof(EndCode)}: {EndCode.GetEnumValue()}"); }
/// <summary> /// 启动运行 /// </summary> public void ThreadStart() { timer = new Timer(Runtime, null, Timeout.Infinite, Timeout.Infinite); timer.Change(0, 500); count = 0; Info?.Invoke("启动运行!!!"); StartCode?.Invoke(); }
public Node ReadTag(StartCode name, long position) { long positionStart = Position; Node result = ReadTags(position, Length - position, name).FirstOrDefault(); Position = positionStart; return(result); }
/// <summary> /// 启动运行 /// </summary> public void ThreadStart() { timer = new System.Timers.Timer(500); timer.Elapsed += Runtime; timer.AutoReset = true; timer.Enabled = true; count = 0; timer.Start(); Info?.Invoke("启动运行!!!"); StartCode?.Invoke(); }
public override string Dump() { var sb = new StringBuilder(); sb.AppendTitleValueLine("Format", Format); sb.AppendTitleValueLine("Length", Length); sb.AppendTitleValueLine("Language", Language); sb.AppendTitleValueLine("SegCountX2", SegCountX2); sb.AppendTitleValueLine("SearchRange", SearchRange); sb.AppendTitleValueLine("EntrySelector", EntrySelector); sb.AppendTitleValueLine("RangeShift", RangeShift); sb.AppendTitleValueLine("EndCode[]", EndCode.CountString()); sb.AppendTitleValueLine("StartCode[]", StartCode.CountString()); sb.AppendTitleValueLine("IdDelta[]", IdDelta.CountString()); sb.AppendTitleValueLine("IdRangeOffset[]", IdRangeOffset.CountString()); sb.AppendTitleValueLine("GlyphIdArray[]", GlyphIdArray.CountString()); return(sb.ToString()); }
// parse a game file and choose a game (which can be changed later) // TODO: refactor back into compiler PolyGame CreateMenuModel() { if (_input == null) { if (!File.Exists(SourcePath)) { throw Error.Fatal("file does not exist: " + SourcePath); } _input = new StreamReader(SourcePath); } var parser = Parser.Create(); var nodes = parser.ParseNodes(_input, Console.Out, SourcePath).ToList(); _input.Close(); if (parser.Error) { throw Error.Fatal("compilation terminated"); } var generator = Generator.Create(); var compiler = Compiler.Create(SourcePath, generator, parser.Symbols); compiler.CompileMenu(nodes); var evaluator = Evaluator.Create(Console.Out, Console.In); var start = StartCode.Create(evaluator, generator.Code); if (Logger.Level >= 4) { generator.Decode(Logger.Out); } var menudef = start.CreateMenu(); _menumodel = MenuModel.Create(menudef); if (_gamedefs.Count == 0) { throw Error.Fatal("no games found"); } //if (Logger.Level >= 3) _menudef.Dump(Logger.Out); return(this); }
/// <summary> /// create a new NutPacket /// </summary> /// <param name="startcode">startcode for this packet</param> /// <param name="underlying">stream to write to</param> public NutPacket(StartCode startcode, Stream underlying) { data = new MemoryStream(); this.startcode = startcode; this.underlying = underlying; }
///<summary>Sets the value of the <c><Start></c> element.</summary> /// <param name="Code">Code representing the year level.</param> ///<remarks> /// <para>This form of <c>setStart</c> is provided as a convenience method /// that is functionally equivalent to the <c>Start</c></para> /// <para>Version: 2.6</para> /// <para>Since: 2.3</para> /// </remarks> public void SetStart(StartCode Code) { RemoveChild(SchoolDTD.ACADEMICYEARRANGE_START); AddChild(SchoolDTD.ACADEMICYEARRANGE_START, new Start(Code)); }
/// <summary> /// Sets the value of the <c><Code></c> element. /// </summary> /// <param name="val">A StartCode object</param> /// <remarks> /// <para>The SIF specification defines the meaning of this element as: "Code representing the year level."</para> /// <para>Version: 2.6</para> /// <para>Since: 2.3</para> /// </remarks> public void SetCode(StartCode val) { SetField(SchoolDTD.START_CODE, val); }
/// <summary> /// Constructor that accepts values for all mandatory fields /// </summary> ///<param name="code">Code representing the year level.</param> /// public Start(StartCode code) : base(SchoolDTD.START) { this.SetCode(code); }
/// <summary> /// create a new NutPacket /// </summary> /// <param name="startCode">startCode for this packet</param> /// <param name="underlying">stream to write to</param> public NutPacket(StartCode startCode, Stream underlying) { _data = new MemoryStream(); _startCode = startCode; _underlying = underlying; }
private void JudgeData(string strData) { if (string.IsNullOrEmpty(StartCode) && string.IsNullOrEmpty(EndCode)) { OnDataReceived?.Invoke(strData); } else if (string.IsNullOrEmpty(StartCode) && EndCode.Equals("CRLF")) { while (true) { if (strData.IndexOf("\r\n") > -1) { try { string str = strData.Substring(0, strData.IndexOf("\r\n")); OnDataReceived?.Invoke(strData); _strRemain = strData.Substring(strData.IndexOf("\r\n") + 2); strData = _strRemain; } catch { return; } } else { break; } } _strRemain = strData; } else if (string.IsNullOrEmpty(StartCode) && EndCode.Equals("CR")) { while (true) { if (strData.IndexOf("\r") > -1) { try { string str = strData.Substring(0, strData.IndexOf("\r")); OnDataReceived?.Invoke(strData); _strRemain = strData.Substring(strData.IndexOf("\r") + 1); strData = _strRemain; } catch { return; } } else { break; } } _strRemain = strData; } else if (string.IsNullOrEmpty(StartCode) && EndCode.Equals("ETX")) { while (true) { char ch = '\x03'; if (strData.IndexOf(ch) > -1) { string str = strData.Substring(0, strData.IndexOf(ch)); OnDataReceived?.Invoke(str); _strRemain = strData.Substring(strData.IndexOf(ch) + 1); strData = _strRemain; } else { break; } } _strRemain = strData; } else if (StartCode.Equals("STX") && EndCode.Equals("ETX")) { while (true) { char ch1 = '\x0002'; char ch2 = '\x0003'; if (strData.IndexOf(ch1) > -1 && strData.IndexOf(ch2) > -1) { string str = strData.Substring(strData.IndexOf(ch1), strData.IndexOf(ch2)); OnDataReceived?.Invoke(str); _strRemain = strData.Substring(strData.IndexOf(ch2) + 1); strData = _strRemain; } else { break; } } _strRemain = strData; } else { while (true) { if (strData.IndexOf(StartCode) > -1 && strData.IndexOf(EndCode) > -1) { string str = strData.Substring(strData.IndexOf(StartCode), strData.IndexOf(EndCode)); OnDataReceived?.Invoke(str); _strRemain = strData.Substring(strData.IndexOf(EndCode) + EndCode.Length); strData = _strRemain; } else { break; } } _strRemain = strData; } }