Beispiel #1
0
        public Package Unpack(IPEndPoint iep, byte[] data)
        {
            BeginWriting();
            mWriter.Write(data);
            EndWriting();

            BinaryReader reader = BeginReading();
            char         cmd    = (char)reader.ReadByte();

            if (_GroundTruthCmdList.Contains(cmd))
            {
                StringPackage pkg = new StringPackage(null, iep, data);
                return(pkg);
            }
            else
            {
                Int16 frame = (Int16)reader.ReadInt16();
                Int16 len   = (Int16)reader.ReadInt16();

                byte[] rdata = null;
                if (len > 0)
                {
                    rdata = reader.ReadBytes(len);
                }


                TerminalPackage pkg = new TerminalPackage(null, iep, cmd, frame, len, rdata);


                return(pkg);
            }
        }
Beispiel #2
0
        void ParseByteFromTerminal(TerminalPackage pkg)
        {
            MainEntry._Logger.Debug("Receive ParseByteFromTerminal:" + pkg._Cmd);
            byte[] data    = pkg._PackageData;
            string ip      = pkg._ReceiveFrom.Address.ToString();
            char   cmd     = pkg._Cmd;
            int    datalen = pkg._Len;

            if (pkg._FullData.Length >= 5)
            {
                BinaryReader reader = null;

                if (datalen > 0)
                {
                    MemoryStream stream = new MemoryStream(data);
                    reader = new BinaryReader(stream);
                }

                QueueNeedRsp.Instance.RemovePackage(cmd);

                if (cmd == 'T')
                {
                    ReceiveCheck(datalen, reader, ip);
                }
                else if (cmd == 'S')
                {
                    ReceiveStartStop(datalen, reader, ip);
                }
                else if (cmd == 'C')
                {
                    ReceiveCollection(datalen, reader, ip);
                }
                else if (cmd == 'U')
                {
                    ReceiveMCU(datalen, reader, ip);
                }
                else if (cmd == 'D')
                {
                    ReceiveMCUData(datalen, reader, ip);
                }
                else if (cmd == 'a')
                {
                    ReceiveSensorData(datalen, reader, ip);
                }
                else if (cmd == 'm')
                {
                    ReceiveMessage(datalen, reader, ip);
                }
                if (pkg._Cmd == 'g')
                {
                    ReceiveGroundTruth(datalen, reader, ip);
                }
            }
            else
            {
                Console.WriteLine("ReceiveData Empty");
            }
        }
Beispiel #3
0
        TerminalPackage SendCmdBase(IPEndPoint iep,char cmd, Int16 framecount, byte[] data = null)
        {
            short len = 0;
            if (data != null)
            {
                len = (short)data.Length;
            }

            TerminalPackage pkg = new TerminalPackage(iep, null, cmd, framecount, len, data);

            return pkg;
        }