Пример #1
0
        private static void Process(List <OBDMessage> messages, Container[] containers)
        {
            List <MeasurementAttribute> values = new List <MeasurementAttribute>();



            foreach (OBDMessage message in messages)
            {
                values.Add(new MeasurementAttribute()
                {
                    Measurement = message.Value.GetValueOrDefault(), timestamp = message.TimeStamp
                });
            }

            List <DataValues> dataValues = new List <DataValues>();

            for (int i = 0; i < containers.Length; i++)
            {
                dataValues.Add(new DataValues()
                {
                    ContainerId = containers[i].Id, Values = new List <MeasurementAttribute> {
                        values[i]
                    }
                });
            }
            //client.SendValuesAsync(dataValues.ToArray());
            OMFIngressHelper.SendValuesToAllEndPointsAsync(dataValues.ToArray()).Wait();
        }
Пример #2
0
        private static Container[] DefineTypes(List <String> pIDs)
        {
            //client.CreateTypes(new string[] { FleetStaticType.JsonSchema, VehicleStaticType.JsonSchema, ValueStaticType.JsonSchema });
            //client.CreateTypes(new string[] { MeasurementAttribute.JsonSchema });
            OMFIngressHelper.CreateTypesForAllEndPoints(new string[] { FleetStaticType.JsonSchema, VehicleStaticType.JsonSchema, ValueStaticType.JsonSchema });
            OMFIngressHelper.CreateTypesForAllEndPoints(new string[] { MeasurementAttribute.JsonSchema });

            Container[] containers =
            {
                new Container()
                {
                    Id = OBDMessage.Measurements.Speed.ToString(), TypeId = nameof(MeasurementAttribute)
                },
                new Container()
                {
                    Id = OBDMessage.Measurements.CoolantTemp.ToString(), TypeId = nameof(MeasurementAttribute)
                },
                new Container()
                {
                    Id = OBDMessage.Measurements.FuelPressure.ToString(), TypeId = nameof(MeasurementAttribute)
                },
                new Container()
                {
                    Id = OBDMessage.Measurements.FuelTankLevel.ToString(), TypeId = nameof(MeasurementAttribute)
                },
                new Container()
                {
                    Id = OBDMessage.Measurements.IntakeAirTemperature.ToString(), TypeId = nameof(MeasurementAttribute)
                },
                new Container()
                {
                    Id = OBDMessage.Measurements.RPM.ToString(), TypeId = nameof(MeasurementAttribute)
                },
                new Container()
                {
                    Id = OBDMessage.Measurements.ThrottlePosition.ToString(), TypeId = nameof(MeasurementAttribute)
                }
            };
            //client.CreateContainers(containers);
            OMFIngressHelper.CreateContainersForAllEndPoints(containers);

            DefineAssets(pIDs, containers);
            return(containers);
        }
Пример #3
0
        static void Main(string[] args)
        {
            ReadConfig();
            OMFIngressHelper.CreateClients(configuration.OMFEndPoints);
            simulator = new Simulator();
            Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e)
            {
                e.Cancel           = true;
                Driver.keepRunning = false;
            };

            List <string> PIDs = new List <string>()
            {
                OBDPid.SpeedPID,
                OBDPid.RpmPID,
                OBDPid.CoolantTempPID,
                OBDPid.FuelLevelPID,
                OBDPid.ThrottlePositionPID,
                OBDPid.AirIntakeTempPID,
                OBDPid.FuelPressurePID
            };

            // IngressClient client = new IngressClient(configuration.OMFEndPoints[0].URL, configuration.OMFEndPoints[0].ProducerToken);
            //client.UseCompression = true;

            Container[] containers = DefineTypes(PIDs);


            while (Driver.keepRunning)
            {
                List <OBDMessage> messages = GetOBDMessages(PIDs);

                Process(messages, containers);

                Thread.Sleep(5000);
            }
            Console.WriteLine("Collection End");
        }
Пример #4
0
        private static void DefineAssets(List <string> pIDs, Container[] containers)
        {
            //send asset for fleet
            AssetLinkValues <FleetStaticType> assetFleet = new AssetLinkValues <FleetStaticType>()
            {
                typeid = "Fleet",
                Values = new List <FleetStaticType> {
                    new FleetStaticType()
                    {
                        index = "SouthEastFleet", name = "SouthEastFleet"
                    }
                }
            };

            //client.SendValuesAsync(new AssetLinkValues<FleetStaticType>[] { assetFleet }).Wait();
            OMFIngressHelper.SendValuesToAllEndPointsAsync(new AssetLinkValues <FleetStaticType>[] { assetFleet }).Wait();

            //vehicle asset
            AssetLinkValues <VehicleStaticType> assetVehicle = new AssetLinkValues <VehicleStaticType>()
            {
                typeid = "Vehicle",
                Values = new List <VehicleStaticType> {
                    new VehicleStaticType()
                    {
                        index = configuration.VehicleName, name = configuration.VehicleName
                    }
                }
            };

            //client.SendValuesAsync(new AssetLinkValues<VehicleStaticType>[] { assetVehicle }).Wait();
            OMFIngressHelper.SendValuesToAllEndPointsAsync(new AssetLinkValues <VehicleStaticType>[] { assetVehicle }).Wait();

            //Measurement Assets
            List <ValueStaticType> values = new List <ValueStaticType>();

            foreach (string pid in pIDs)
            {
                ValueStaticType valueStatic = new ValueStaticType()
                {
                    index = GetMeasurement(pid).ToString(), name = GetMeasurement(pid).ToString(), PIDString = pid
                };
                values.Add(valueStatic);
            }
            AssetLinkValues <ValueStaticType> assetValue = new AssetLinkValues <ValueStaticType>()
            {
                typeid = "ValueStaticType",
                Values = values
            };

            //client.SendValuesAsync(new AssetLinkValues<ValueStaticType>[] { assetValue }).Wait();
            OMFIngressHelper.SendValuesToAllEndPointsAsync(new AssetLinkValues <ValueStaticType>[] { assetValue }).Wait();

            List <AFLink <StaticElement, StaticElement> > aflinks = new List <AFLink <StaticElement, StaticElement> >();
            AFLink <StaticElement, StaticElement>         aFLink  = new AFLink <StaticElement, StaticElement> {
                source = new StaticElement()
                {
                    typeid = nameof(FleetStaticType), index = "_ROOT"
                }, target = new StaticElement()
                {
                    typeid = nameof(FleetStaticType), index = "SouthEastFleet"
                }
            };

            aflinks.Add(aFLink);
            aFLink = new AFLink <StaticElement, StaticElement> {
                source = new StaticElement()
                {
                    typeid = nameof(FleetStaticType), index = "SouthEastFleet"
                }, target = new StaticElement()
                {
                    typeid = nameof(VehicleStaticType), index = configuration.VehicleName
                }
            };
            aflinks.Add(aFLink);
            foreach (var v in values)
            {
                aFLink = new AFLink <StaticElement, StaticElement> {
                    source = new StaticElement()
                    {
                        typeid = nameof(VehicleStaticType), index = configuration.VehicleName
                    }, target = new StaticElement()
                    {
                        typeid = nameof(ValueStaticType), index = v.index
                    }
                };
                aflinks.Add(aFLink);
            }
            //send asset parent-child links
            AssetLinkValues <AFLink <StaticElement, StaticElement> > assetLink = new AssetLinkValues <AFLink <StaticElement, StaticElement> >()
            {
                typeid = "__Link",
                Values = aflinks
            };

            //client.SendValuesAsync(new AssetLinkValues<AFLink<StaticElement, StaticElement>>[] { assetLink }).Wait();
            OMFIngressHelper.SendValuesToAllEndPointsAsync(new AssetLinkValues <AFLink <StaticElement, StaticElement> >[] { assetLink }).Wait();

            List <AFLink <StaticElement, DynamicElement> > dataLinks = new List <AFLink <StaticElement, DynamicElement> >();

            for (int i = 0; i < containers.Length; i++)
            {
                dataLinks.Add(new AFLink <StaticElement, DynamicElement>()
                {
                    source = new StaticElement()
                    {
                        typeid = nameof(ValueStaticType), index = values[i].index
                    }, target = new DynamicElement()
                    {
                        containerid = containers[i].Id
                    }
                });
            }
            AssetLinkValues <AFLink <StaticElement, DynamicElement> > dataLink = new AssetLinkValues <AFLink <StaticElement, DynamicElement> >()
            {
                typeid = "__Link",
                Values = dataLinks
            };

            //client.SendValuesAsync(new AssetLinkValues<AFLink<StaticElement, DynamicElement>>[] { dataLink }).Wait();
            OMFIngressHelper.SendValuesToAllEndPointsAsync(new AssetLinkValues <AFLink <StaticElement, DynamicElement> >[] { dataLink }).Wait();
        }