예제 #1
0
        public int Resolve(byte[] buffer)
        {
            _callback.test();
            var   messages   = new List <Message>();
            var   offset     = 0;
            Int16 dotsnumber = 640;//可手动更改此处,如需动态适应不同模式,请增加代码和入口

            while (offset < buffer.Length - 10)
            {
                Result res = FindHead(buffer, offset);
                if (res == Result.NotComplete)
                {
                    break;
                }
                if (res == Result.NoHeadFound)
                {
                    offset++;
                }
                if (res == Result.Success)
                {
                    offset += 22;
                    Message message;
                    if (ResolveMessage(buffer, ref offset, dotsnumber, out message))
                    {
                        messages.Add(message);
                    }
                }
            }
            if (messages.Count != 0)
            {
                _callback.AddPoints(messages);
            }
            return(offset);
        }