Ejemplo n.º 1
0
 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()}");
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 启动运行
 /// </summary>
 public void ThreadStart()
 {
     timer = new Timer(Runtime, null, Timeout.Infinite, Timeout.Infinite);
     timer.Change(0, 500);
     count = 0;
     Info?.Invoke("启动运行!!!");
     StartCode?.Invoke();
 }
Ejemplo n.º 4
0
        public Node ReadTag(StartCode name, long position)
        {
            long positionStart = Position;

            Node result = ReadTags(position, Length - position, name).FirstOrDefault();

            Position = positionStart;

            return(result);
        }
Ejemplo n.º 5
0
 /// <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();
 }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        // 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);
        }
Ejemplo n.º 8
0
 /// <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;
 }
Ejemplo n.º 9
0
 ///<summary>Sets the value of the <c>&lt;Start&gt;</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));
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Sets the value of the <c>&lt;Code&gt;</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);
 }
Ejemplo n.º 11
0
 /// <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);
 }
Ejemplo n.º 12
0
 /// <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;
 }
Ejemplo n.º 13
0
 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;
     }
 }