Esempio n. 1
0
        private void HandleRequest(string deviceID, ImageHeader imageHeader, params Value[] parameterArray)
        {
            Log.Write("IMAGE", "SendingRequest");

            PacketData packetData = GeneratePacketData(imageHeader);

            //++ send to system module for ip packaging
            Handoff(deviceID, typeof(UdpHeader), packetData,
                    Controller.OverrideDefaultValueData(parameterArray,
                    Value.Raw("UdpHeader:SourcePort", (ushort)5200),
                    Value.Raw("UdpHeader:DestinationPort", (ushort)5201),
                //TODO: what the heck? UDP should set this
                    Value.Raw("IPHeader:Protocol", (byte)17),
                //Value.Raw<byte>("IPHeader:TypeOfService", 0xc0),
                    Value.Raw("IPHeader:TTL", (byte)128),
                    Value.Raw("IPHeader:SourceAddress", Controller.DeviceConfigurationMap[deviceID].PrimaryIPConfiguration.Address))
                );
        }
Esempio n. 2
0
        private void HandleResponse(string deviceID, ImageHeader imageHeader, params Value[] parameterArray)
        {
            var data = System.Text.UTF8Encoding.UTF8.GetString(imageHeader.Data);
            var lineArray = data.Split('\n');
            var name = string.Empty;
            foreach (var s in lineArray)
            {
                var partArray = s.Split('=');
                if (partArray[0].Equals("Name"))
                {
                    name = partArray[1];
                }
            }
            if (String.IsNullOrEmpty(name))
            {
                return;
            }

            byte[] buffer = null;
            var physical = VirtualPhysicalMap[name];
            if (String.IsNullOrEmpty(physical))
            {
                return;
            }
            if (ImageDatabase.Any(p => p.Key.Equals((physical))))
            {
                buffer = ImageDatabase[physical];
            }
            if (buffer == null)
            {
                return;
            }
            Log.Write("IMAGE", "SendingResponse.", "Size:" + buffer.Length.ToString());
            //++ parsers build the header
            var imageResponse = (ImageHeader)Controller.GetSingletonHandler("Image").Build(
                Value.Raw("ImageHeader:Operation", (byte)1),
                Value.Raw("ImageHeader:Data", (byte[])buffer)
            );

            PacketData packetData = GeneratePacketData(imageResponse);

            //++ send to system module for ip packaging
            Handoff(deviceID, typeof(UdpHeader), packetData,
                    Controller.OverrideDefaultValueData(parameterArray,
                        Value.Raw("UdpHeader:SourcePort", (ushort)5201),
                        Value.Raw("UdpHeader:DestinationPort", (ushort)5200),
                //TODO: what the heck? UDP should set this
                        Value.Raw("IPHeader:Protocol", (byte)17),
                //Value.Raw<byte>("IPHeader:TypeOfService", 0xc0),
                        Value.Raw("IPHeader:TTL", (byte)128),
                        Value.Raw("IPHeader:SourceAddress", Controller.DeviceConfigurationMap[deviceID].PrimaryIPConfiguration.Address))
                );
        }