Exemple #1
0
        public DeviceManager(Device device, RecordingTaskManager recordingTaskManager)
        {
            Device             = device;
            logger             = LogManager.GetCurrentClassLogger();
            ModemManager       = new ModemManager(Device.Modem, this);
            lock_object        = new object();
            cancellationsource = new CancellationTokenSource();

            AvlDataBufferes     = new Queue <AvlData>();
            devicePacketFactory = new DevicePacketFactory(this);

            ScenarioTaskDictionary = recordingTaskManager.CreateRecordingTaskList(this, cancellationsource.Token);
        }
        private static void Main(string[] args)
        {
            Route.RouteContext routeContext = new Route.RouteContext(new DirectionService("5b3ce3597851110001cf6248e88658f607ac495cad9088fe0cd49df3"));

            List <Models.IoPropertyType> ioPropertiesTypeList = new List <Models.IoPropertyType> (new Models.IoPropertyType[] {
                new Models.IoPropertyType()
                {
                    Id          = 1,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 2,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 3,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 4,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 5,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 6,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 7,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 8,
                    Size        = 2,
                    Description = ""
                },
                new Models.IoPropertyType()
                {
                    Id          = 9,
                    Size        = 2,
                    Description = ""
                },
            });



            List <Scenario> scenariosList = new List <Scenario>(new Scenario[] { new Scenario()
                                                                                 {
                                                                                     ObservedIoProperties = new List <Models.IoPropertyType>(new Models.IoPropertyType[] { ioPropertiesTypeList[0], ioPropertiesTypeList[1], ioPropertiesTypeList[2], }),
                                                                                     RecordConditions     = new List <RecordCondition>(new RecordCondition[] { new FixedTimeRecordCondition()
                                                                                                                                                               {
                                                                                                                                                                   Period = TimeSpan.FromSeconds(7)
                                                                                                                                                               } })
                                                                                 },
                                                                                 new Scenario()
                                                                                 {
                                                                                     ObservedIoProperties = new List <Models.IoPropertyType>(new Models.IoPropertyType[] { ioPropertiesTypeList[3], ioPropertiesTypeList[4], ioPropertiesTypeList[5], }),
                                                                                     RecordConditions     = new List <RecordCondition>(new RecordCondition[] { new FixedTimeRecordCondition()
                                                                                                                                                               {
                                                                                                                                                                   Period = TimeSpan.FromSeconds(3)
                                                                                                                                                               } })
                                                                                 }, new Scenario()
                                                                                 {
                                                                                     ObservedIoProperties = new List <Models.IoPropertyType>(new Models.IoPropertyType[] { ioPropertiesTypeList[6], ioPropertiesTypeList[7], ioPropertiesTypeList[8], }),
                                                                                     RecordConditions     = new List <RecordCondition>(new RecordCondition[] { new FixedTimeRecordCondition()
                                                                                                                                                               {
                                                                                                                                                                   Period = TimeSpan.FromSeconds(5)
                                                                                                                                                               } })
                                                                                 } });
            List <Vehicle> VehiclesList = new List <Vehicle>();

            for (int i = 0; i < 100; i++)
            {
                VehiclesList.Add(new Vehicle());
            }
            foreach (var vehicle in VehiclesList)
            {
                foreach (var ioPropertyType in ioPropertiesTypeList)
                {
                    vehicle.IoPropertiesList.Add(IoProperty.Create(ioPropertyType.Id, 0));
                }
            }
            List <Device> DevicesList = new List <Device>();

            for (int i = 0; i < 100; i++)
            {
                DevicesList.Add(new Device(
                                    new Modem()
                {
                    Imei = (ulong)i,
                    MqttBrokerAddress = MqttBrokerAddress,
                    MqttClientId      = i.ToString(),
                    MqttUserName      = "******",
                    MqttPassword      = "******"
                })
                {
                    InstalledOnVehicle = VehiclesList[i],
                    Scenarios          = new ObservableCollection <Scenario>(scenariosList),
                }
                                );
            }

            var recordingTaskManager = new RecordingTaskManager();

            recordingTaskManager.RegisterRecordingPolicies((recordCondition) => new TimeFixedRecordingPolicies(((FixedTimeRecordCondition)recordCondition).Period), typeof(FixedTimeRecordCondition));

            List <DeviceManager> deviceManagerList = new List <DeviceManager>();

            deviceManagerList.AddRange(DevicesList.Select(o => new DeviceManager(o, recordingTaskManager)));
            List <VehicleManager> vehicleManagerList = new List <VehicleManager>();

            vehicleManagerList.AddRange(VehiclesList.Select(o => {
                var vehicleManager         = new VehicleManager(o);
                vehicleManager.Route       = routeContext.GetRoute("");
                vehicleManager.IsIgnitiate = true;
                vehicleManager.Driving     = new ConstantSpeedDrivingStrategy(vehicleManager, 100);
                return(vehicleManager);
            }));
            while (true)
            {
            }
            ;
        }