Added Packet decoding functionality
This commit is contained in:
		
							
								
								
									
										38
									
								
								Program.cs
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								Program.cs
									
									
									
									
									
								
							| @@ -17,6 +17,44 @@ using(UdpClient listener = new UdpClient(listenPort)) | |||||||
|         Console.WriteLine("Decoded data is:"); |         Console.WriteLine("Decoded data is:"); | ||||||
|         //Console.WriteLine(Encoding.ASCII.GetString(receivedData)); |         //Console.WriteLine(Encoding.ASCII.GetString(receivedData)); | ||||||
|         Console.WriteLine(BitConverter.ToString(receivedData)); |         Console.WriteLine(BitConverter.ToString(receivedData)); | ||||||
|  |          | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         var pos = 0; | ||||||
|  |         var header = Encoding.UTF8.GetString(receivedData, pos, 4); | ||||||
|  |         pos += 5; // Including tailing 0 | ||||||
|  |  | ||||||
|  |         if (header == "DATA") // Ignore other messages | ||||||
|  |         { | ||||||
|  |             while (pos < receivedData.Length) | ||||||
|  |             { | ||||||
|  |                 var id = BitConverter.ToInt32(receivedData, pos); | ||||||
|  |                 pos += 4; | ||||||
|  |  | ||||||
|  |                 try | ||||||
|  |                 { | ||||||
|  |                     var value = BitConverter.ToSingle(receivedData, pos); | ||||||
|  |                     pos += 4; | ||||||
|  |                     // var localDataRefs = DataRefs.ToArray(); | ||||||
|  |                     // foreach (var dr in localDataRefs) | ||||||
|  |                     //     if (dr.Update(id, value)) | ||||||
|  |                     //         OnDataRefReceived?.Invoke(dr); | ||||||
|  |                     Console.WriteLine($"Header: {header}     Value: {value}"); | ||||||
|  |                 } | ||||||
|  |                 catch (ArgumentException ex) | ||||||
|  |                 { | ||||||
|  |  | ||||||
|  |                 } | ||||||
|  |                 catch (Exception ex) | ||||||
|  |                 { | ||||||
|  |                     var error = ex.Message; | ||||||
|  |                     Console.WriteLine(error); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user