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)) ); }
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)) ); }