GetDataSize() public static method

public static GetDataSize ( byte packet ) : short
packet byte
return short
Ejemplo n.º 1
0
        public static byte [] GetDataBuffer(byte [] packet)
        {
            byte [] data;
            short   dataSize;

            dataSize = EventHelper.GetDataSize(packet);
            data     = new Byte [dataSize];

            Buffer.BlockCopy(packet, EventMessage.VSCP_POS_DATA,
                             data, 0, dataSize);

            return(data);
        }
Ejemplo n.º 2
0
        public static string GetDataString(byte [] packet)
        {
            short dataSize;

            dataSize = EventHelper.GetDataSize(packet);

            if ((dataSize <= _sizeofLong) || (packet.Length < (EventMessage.VSCP_POS_DATA + dataSize)))
            {
                return(String.Empty);
            }

            return(_encoder.GetString(packet,
                                      EventMessage.VSCP_POS_DATA + _sizeofLong,
                                      dataSize - _sizeofLong));
        }
Ejemplo n.º 3
0
        public static short GetCRC(byte [] packet)
        {
            short crc;
            int   dataSize;
            int   msgLength;

            dataSize = EventHelper.GetDataSize(packet);

            msgLength = dataSize + EventMessage.VSCP_HEADER_SIZE;

            crc = BitConverter.ToInt16(packet, msgLength);
            crc = System.Net.IPAddress.NetworkToHostOrder(crc);

            return(crc);
        }
Ejemplo n.º 4
0
        public EventMessage(byte[] msgPacket)
        {
            short msgCRC;
            short expectedCRC;

            if (msgPacket == null)
            {
                throw new ArgumentNullException("msgPacket");
            }

            byte head = msgPacket[VSCP_POS_HEAD];

            _ignoreCRC = ((head & VSCP_NO_CRC_CALC) == VSCP_NO_CRC_CALC);
            _ignoreCRC = true;

            int   incomming_packet_length = msgPacket.Length;
            short dataSize = EventHelper.GetDataSize(msgPacket);

            int msgLength = msgPacket.Length + VSCP_HEADER_SIZE;

            msgLength += (_ignoreCRC) ? 0 : VSCP_SIZE_CRC;

            if (msgLength > VSCP_MAX_DATA_SIZE)
            {
                throw new ApplicationException(string.Format("Invalid event message length: {0}", msgLength));
            }

            _priority = (EVENT_PRIORITY)(head >> 5);

            if (_ignoreCRC == false)
            {
                msgCRC      = EventHelper.GetCRC(msgPacket);
                expectedCRC = EventHelper.CalcCRC(msgPacket, msgLength - VSCP_SIZE_CRC);

                if (msgCRC != expectedCRC)
                {
                    throw new ApplicationException(string.Format("Invalid event message CRC '{0}' instead of {1}", msgCRC, expectedCRC));
                }
            }

            _event = EventHelper.GetEventCode(msgPacket);

            _address = new byte [EventMessage.VSCP_SIZE_ADDRESS];
            Buffer.BlockCopy(msgPacket, VSCP_POS_ADDRESS, _address, 0, VSCP_SIZE_ADDRESS);

            _data = new Byte [dataSize];
            Buffer.BlockCopy(msgPacket, VSCP_POS_DATA, _data, 0, dataSize);
        }
Ejemplo n.º 5
0
        public static long GetDataCode(byte [] packet)
        {
            int size;

            byte[] buffer;

            size = EventHelper.GetDataSize(packet);

            if (packet.Length < (size + EventMessage.VSCP_POS_DATA))
            {
                return(0);
            }

            size   = (size < _sizeofLong) ? size : _sizeofLong;
            buffer = new byte[_sizeofLong];

            Buffer.BlockCopy(packet, EventMessage.VSCP_POS_DATA, buffer, 0, size);

            return(BitConverter.ToInt64(buffer, 0));
        }