/// <summary> /// Async example using new RequestDataAsync /// </summary> /// <param name="comPort">The COM port.</param> /// <returns></returns> public static async Task MainAsync(string comPort) { using (ELM327 dev = new ELM327(connection, new OBDConsoleLogger(OBDLogLevel.Debug))) { dev.Initialize(); EngineRPM rpmData = await dev.RequestDataAsync <EngineRPM>(); VehicleSpeed speedData = await dev.RequestDataAsync <VehicleSpeed>(); EngineCoolantTemperature engineCoolantTemperatureData = await dev.RequestDataAsync <EngineCoolantTemperature>(); //EngineOilTemperature engineOilTemperatureData = await dev.RequestDataAsync<EngineOilTemperature>(); //FuelTankLevelInput fuelTankLevelInputData = await dev.RequestDataAsync<FuelTankLevelInput>(); RealTimePayload realTimePayLoad = new RealTimePayload() { CarId = "MH12KE2651", Rpm = rpmData?.Rpm, Speed = speedData?.Speed, CoolantTemperature = engineCoolantTemperatureData?.Temperature, EngineOilTemperature = 87, FuelLevel = 90, PayloadTimestamp = DateTime.UtcNow.Ticks }; HttpClient httpClient = new HttpClient(); httpClient.MaxResponseContentBufferSize = 256000; var serviceUri = new Uri(@"http://obdmicroservice20180827101800.azurewebsites.net/api/realtimepayloads"); StringContent realTimePayLoadContent = new StringContent(JsonConvert.SerializeObject(realTimePayLoad), Encoding.UTF8, "application/json"); HttpResponseMessage response = await httpClient.PostAsync(serviceUri, realTimePayLoadContent); } }
private static async Task <RealTimePayload> GetRealTimePayload(ELM327 device) { EngineRPM rpmData = await device.RequestDataAsync <EngineRPM>(); VehicleSpeed speedData = await device.RequestDataAsync <VehicleSpeed>(); EngineCoolantTemperature engineCoolantTemperatureData = await device.RequestDataAsync <EngineCoolantTemperature>(); EngineOilTemperature engineOilTemperatureData = await device.RequestDataAsync <EngineOilTemperature>(); FuelTankLevelInput fuelTankLevelInputData = await device.RequestDataAsync <FuelTankLevelInput>(); ThrottlePosition throttlePossition = await device.RequestDataAsync <ThrottlePosition>(); RealTimePayload realTimePayLoad = new RealTimePayload() { CarId = "MH12KE2651", Rpm = rpmData.Rpm, Speed = speedData.Speed, CoolantTemperature = engineCoolantTemperatureData.Temperature, EngineOilTemperature = 43, FuelLevel = throttlePossition.Position, PayloadTimestamp = DateTime.UtcNow.Ticks }; return(realTimePayLoad); }
/// <summary> /// Async example using new RequestDataAsync /// </summary> /// <param name="comPort">The COM port.</param> /// <returns></returns> public static async Task MainAsync(string comPort) { using SerialConnection connection = new SerialConnection(comPort); using ELM327 dev = new ELM327(connection, new OBDConsoleLogger(OBDLogLevel.Debug)); dev.Initialize(); EngineRPM data = await dev.RequestDataAsync <EngineRPM>(); Console.WriteLine("Data: " + data.Rpm); data = await dev.RequestDataAsync <EngineRPM>(); Console.WriteLine("Data: " + data.Rpm); VehicleSpeed data2 = await dev.RequestDataAsync <VehicleSpeed>(); Console.WriteLine("Data: " + data2.Speed); data = await dev.RequestDataAsync <EngineRPM>(); Console.WriteLine("Data: " + data.Rpm); }