예제 #1
0
        public new void StartRecording()
        {
            var vehicleBasicInfoModel = new VehicleBasicInfoModel
            {
                DateTime = DateTime.Now,
                UniqueEntryId = Guid.NewGuid().ToString()
            };

            //vehicleBasicInfoModel.Number = ""
            var number = newvehiclenumber++;

            vehicleBasicInfoModel.Number = number.ToString();
            vehicleBasicInfoModel.IsBlackListed = base.IsBlackListedNumber(number.ToString());

            var vehicleImagesModel = new VehicleImagesModel(vehicleBasicInfoModel.UniqueEntryId);

            var resourceDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            
            vehicleImagesModel.ChaisisImage = File.ReadAllBytes(Path.Combine(resourceDir, "chasis.jpg"));
            vehicleImagesModel.DriverImage = File.ReadAllBytes(Path.Combine(resourceDir, "driver.jpg"));
            vehicleImagesModel.NumberPlateImage = File.ReadAllBytes(Path.Combine(resourceDir, "driver.jpg")); 
            vehicleImagesModel.VehicleOverallImage = File.ReadAllBytes(Path.Combine(resourceDir, "car-topview.jpg"));
            
            base.OnVehicleInformationRecived(vehicleBasicInfoModel, vehicleImagesModel);
        }
예제 #2
0
        public void RecordCurrentSnapshots(out VehicleBasicInfoModel vehicleBasicInfoModel, out VehicleImagesModel vehicleImagesModel)
        {
            Logger.Info("RecordCurrentSnapshots Started..");

            vehicleBasicInfoModel = new VehicleBasicInfoModel
            {
                DateTime = DateTime.Now,
                UniqueEntryId = Guid.NewGuid().ToString()
            };

            //vehicleBasicInfoModel.Number = ""
            var vehicleNumber = this.GateProvider.LicenceNumberProvider.Read();

            vehicleBasicInfoModel.Number = vehicleNumber;
            vehicleBasicInfoModel.IsBlackListed = this.IsBlackListedNumber(vehicleNumber);

            vehicleImagesModel = new VehicleImagesModel(vehicleBasicInfoModel.UniqueEntryId);

            //var chasisImages = new List<byte[]>();

            foreach (var cameraProvider in this.GateProvider.CameraProviders)
            {
                byte[] image = cameraProvider.Read();
                switch (cameraProvider.CameraModel.ImageType)
                {
                    case ImageType.ChaisisImage:
                        //chasisImages.Add(image);
                        vehicleImagesModel.ChaisisImage = image;
                        break;
                    case ImageType.DriverImage:
                        vehicleImagesModel.DriverImage = image;
                        break;
                    case ImageType.NumberPlateImage:
                        vehicleImagesModel.NumberPlateImage = image;
                        break;
                    case ImageType.VehicleOverallImage:
                        vehicleImagesModel.VehicleOverallImage = image;
                        break;
                }
            }

            //vehicleImagesModel.ChaisisImage = ImageSticher.Sticher(chasisImages);

            Logger.Info("RecordCurrentSnapshots Ended..");
        }
예제 #3
0
        public bool StartRecordingInfo(out VehicleBasicInfoModel vehicleBasicInfoModel, out VehicleImagesModel vehicleImagesModel)
        {
            vehicleBasicInfoModel = null;
            vehicleImagesModel = null;

            try
            {
                if (!this.HasLoopStarted()) return false;
 
                // There is a NEW Vehicle entered, Start capturing
                this.RecordCurrentSnapshots(out vehicleBasicInfoModel, out vehicleImagesModel);

                // Done Capturing, signal Firmware
                this.EndLoop(vehicleBasicInfoModel.IsBlackListed);
                return true;
            }
            catch (Exception ex)
            {
                Logger.Error("StartRecordingInfo Failed, Exception ", ex);
                return false;
            }
        }
        public bool AddVehicleEntryImges(VehicleImagesModel vehicleImagesModel)
        {
            lock (LockObject)
            {
                try
                {
                    if (this.Open())
                    {
                        var mySqlCommand = this.connection.CreateCommand();

                        mySqlCommand.CommandText =
                            "INSERT INTO vehicle_entry_images(id,chasis_image, driver_image, car_full_image, licence_plate_image) VALUES(@id, @chasisImage, @driverImage, @overallImage, @licencePlateImage)";
                        mySqlCommand.Parameters.AddWithValue("@id", vehicleImagesModel.ForeignKeyId);
                        mySqlCommand.Parameters.AddWithValue("@chasisImage", vehicleImagesModel.ChaisisImage);
                        mySqlCommand.Parameters.AddWithValue("@driverImage", vehicleImagesModel.DriverImage);
                        mySqlCommand.Parameters.AddWithValue("@overallImage", vehicleImagesModel.VehicleOverallImage);
                        mySqlCommand.Parameters.AddWithValue("@licencePlateImage", vehicleImagesModel.NumberPlateImage);
                        mySqlCommand.ExecuteNonQuery();

                        return true;
                    }
                    return false;
                }
                catch (Exception ex)
                {
                    Logger.Error("Add AddVehicleEntryImges Item Failed..", ex);
                    return false;
                }
            }
        }
예제 #5
0
        protected void OnVehicleInformationRecived(VehicleBasicInfoModel vehicleBasicInfoModel, VehicleImagesModel vehicleImagesModel)
        {
            Logger.Info("Inside OnVehicleInformationRecived");

            if (VehicleInformationRecived != null)
            {
                Logger.Info("Firing OnVehicleInformationRecived");

                this.VehicleInformationRecived(vehicleBasicInfoModel, vehicleImagesModel);
                this._dataAccessLayer.AddVehicleEntryBasicInfo(vehicleBasicInfoModel);
                this._dataAccessLayer.AddVehicleEntryImges(vehicleImagesModel);
            }
        }
예제 #6
0
 public bool AddVehicleEntryImges(VehicleImagesModel vehicleImagesModel)
 {
     return this._databaseProvider.AddVehicleEntryImges(vehicleImagesModel);
 }
예제 #7
0
 public bool AddVehicleEntryImges(VehicleImagesModel vehicleImagesModel)
 {
     return true;
 }
        public void TestAddVehicleEntryImges()
        {
            var executiongDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            var fileName = Path.Combine(executiongDir, "Resources", "split_1.jpg");

            var mySqlProvider = new MySqlDatabaseProvider
            {
                ConnectionString = ValidConnectionString
            };

            var vehicleImages = new VehicleImagesModel("a8e21388-a12e-4cb3-a920-35301ab593cf")
            {
                ChaisisImage = File.ReadAllBytes(fileName),
                DriverImage = File.ReadAllBytes(fileName),
                VehicleOverallImage = File.ReadAllBytes(fileName)
            };

            Assert.IsTrue(mySqlProvider.AddVehicleEntryImges(vehicleImages));
        }