public static Payload GetPayload(byte[] serverPayload) { /*string bin_strng = "1100110001"; * int number = 0; * * number = Convert.ToInt32(bin_strng, 2); * Console.WriteLine("Number value of binary \"{0}\" is = {1}", * bin_strng, number); * * bin_strng = "1111100000110001"; * number = Convert.ToInt32(bin_strng, 2); * Console.WriteLine("Number value of binary \"{0}\" is = {1}", * bin_strng, number); */ var payload = new Payload(); var bitArray = new BitArray(serverPayload); payload.Maneuver = (Maneuver)Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 0, 3), 2); payload.PlatoonGap = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 3, 11), 2); payload.PlatoonOverrideStatus = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 11, 12), 2) != 0; payload.VehicleRank = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 12, 16), 2); payload.BreakPedal = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 16, 23), 2); payload.PlatoonDissolveStatus = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 23, 24), 2) != 0; payload.StationId = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 24, 56), 2); payload.StreamingRequests = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 56, 58), 2); payload.V2HealthStatus = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 58, 59), 2) != 0; payload.TruckRoutingStaus = Convert.ToInt32(FunctionHelpers.ToBitString(bitArray, 59, 61), 2); payload.RealPayload = Encoding.ASCII.GetString(serverPayload); return(payload); }
private static void MqttConsumer_DataReceived(object sender, byte[] e) { var bitarry = new BitArray(e); Console.WriteLine("Data received ===>" + FunctionHelpers.ToBitString(bitarry, 0, bitarry.Length)); }