Example #1
0
    // Update is called once per frame
    void Update()
    {
        string activity = car.GetActivity();

        if (writer != null)
        {
            writer.WriteLine(string.Format("{0},{1},{2},{3}", frameCounter.ToString(), activity, car.GetSteering().ToString(), car.GetThrottle().ToString()));
        }

        if (camSensor != null)
        {
            Texture2D image = camSensor.GetImage();

            ImageSaveJob ij = new ImageSaveJob();


            ij.filename = Application.dataPath + string.Format("/../log/{0}_{1,8:D8}.png", activity, frameCounter);
            ij.bytes    = image.EncodeToPNG();

            lock (this)
            {
                imagesToSave.Add(ij);
            }

            if (maxFramesToLog != -1 && frameCounter >= maxFramesToLog)
            {
                Shutdown();
                this.gameObject.SetActive(false);
            }
        }

        frameCounter = frameCounter + 1;
    }
Example #2
0
    public void SaverThread()
    {
        while (true)
        {
            int count = 0;

            lock (this)
            {
                count = imagesToSave.Count;
            }

            if (count > 0)
            {
                ImageSaveJob ij = imagesToSave[0];

                //Debug.Log("saving: " + ij.filename);

                File.WriteAllBytes(ij.filename, ij.bytes);

                lock (this)
                {
                    imagesToSave.RemoveAt(0);
                }
            }
        }
    }
Example #3
0
    private void SaveAsync(byte[] bytes, int length, string imgFileName, string timeFileName, DateTime renderTime)
    {
        byte[] copiedBytes = new byte[length];
        System.Array.Copy(bytes, copiedBytes, length);
        string renderTimeStr = renderTime.ToString("MM/dd/yyyy hh:mm:ss.fff tt\n");

        ImageSaveJob job = new ImageSaveJob(copiedBytes, length, imgFileName, timeFileName, renderTimeStr);

        ThreadStart threadStart = new ThreadStart(job.Run);

        new System.Threading.Thread(threadStart).Start();
    }
Example #4
0
    //Save the camera sensor to an image. Use the suffix to distinguish between cameras.
    void SaveCamSensor(CameraSensor cs, string prefix, string suffix)
    {
        if (cs != null)
        {
            Texture2D image = cs.GetImage();

            ImageSaveJob ij = new ImageSaveJob();

            if (UdacityStyle)
            {
                ij.filename = GetUdacityStyleImageFilename();

                ij.bytes = image.EncodeToJPG();
            }
            else if (DonkeyStyle)
            {
                ij.filename = GetDonkeyStyleImageFilename();

                ij.bytes = image.EncodeToJPG();
            }
            else if (DonkeyStyle2)
            {
                ij.filename = GetDonkey2StyleImageFilename();

                ij.bytes = image.EncodeToJPG();
            }
            else if (SharkStyle)
            {
                ij.filename = GetSharkStyleImageFilename();

                ij.bytes = image.EncodeToJPG();
            }
            else
            {
                ij.filename = Application.dataPath + string.Format("/../log/{0}_{1,8:D8}{2}.png", prefix, frameCounter, suffix);

                ij.bytes = image.EncodeToPNG();
            }

            lock (this)
            {
                imagesToSave.Add(ij);
            }
        }
    }
Example #5
0
    //Save the camera sensor to an image. Use the suffix to distinguish between cameras.
    void SaveCamSensor(CameraSensor cs, string prefix, string suffix)
    {
        if (cs != null)
        {
            Texture2D image = cs.GetImage();

            ImageSaveJob ij = new ImageSaveJob();

            ij.filename = Application.dataPath + string.Format("/../log/{0}_{1,8:D8}{2}.png", prefix, frameCounter, suffix);

            ij.bytes = image.EncodeToPNG();

            lock (this)
            {
                imagesToSave.Add(ij);
            }
        }
    }
Example #6
0
    //Save the camera sensor to an image. Use the suffix to distinguish between cameras.
    void SaveCamSensor(CameraSensor cs, string prefix, string suffix)
    {
        if (cs != null)
        {
            Texture2D image = cs.GetImage();

            ImageSaveJob ij = new ImageSaveJob();

            ij.filename = GetImageFileName();

            ij.bytes = image.EncodeToJPG();

            lock (this)
            {
                imagesToSave.Add(ij);
            }
        }
    }
        public ImageModule(IFileHandler fileUploadHandler, MessageRepository messageRepo, ImageRepository imageRepo)
        {
            Get("/imagerequest", args =>
            {
                var identity = this.Context.CurrentUser;
                if (identity == null)
                {
                    return(View["Login"]);
                }
                else
                {
                    return(View["ImageRequest"]);
                }
            });

            Post("/imagerequest", async args =>
            {
                var request = this.Bind <ImageRequest>();

                var uploadResult = await fileUploadHandler.HandleUpload(request.File.Name, request.File.Value);
                var identity     = this.Context.CurrentUser;
                var userCookie   = Request.Cookies.ContainsKey("picflow_webapp_username") ? Request.Cookies["picflow_webapp_username"] : string.Empty;

                if (request.PostImage)
                {
                    var procJob = new ImageProcessingJob
                    {
                        Id         = uploadResult.Identifier,
                        Overlay    = request.EventOverlay,
                        Resolution = 2
                    };
                    var uploadJob = new ImageUploadJob
                    {
                        User    = userCookie,
                        Message = request.Message
                    };
                    procJob.Successors.Add(uploadJob);
                    await messageRepo.SendImageProcessingJob(procJob);
                }

                foreach (var resolution in request.Resolutions)
                {
                    var procJob = new ImageProcessingJob
                    {
                        Id         = uploadResult.Identifier,
                        Overlay    = request.EventOverlay,
                        Resolution = resolution
                    };
                    var saveJob = new ImageSaveJob
                    {
                        UserId     = Guid.Parse(identity.Identity.Name),
                        Message    = request.Message,
                        SourceId   = uploadResult.Identifier,
                        Resolution = resolution
                    };
                    procJob.Successors.Add(saveJob);
                    await messageRepo.SendImageProcessingJob(procJob);
                }
                var model = new Home {
                    Message = $"Auftrag mit Bild {request.File?.Name} wurde gestartet"
                };
                model.Jobs = await imageRepo.GetProcessingJobs(Guid.Parse(identity.Identity.Name));

                return(View["Home", model]);
            });
        }