Example #1
0
        /// <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);
            }
        }
Example #2
0
        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);
        }