/// <summary>
        /// Объекты для работы с СОМ-портом
        /// </summary>
        /// <summary>
        /// Подпрограмма загрузки НЕХ-файла
        /// </summary>
        public string Load()
        {
            var log = new StringBuilder();

            // Чтение данных НЕХ-файла
            var data   = new byte[0];
            var readed = new FilesClass(FileName, App.MyWindows.ShowFormErrorCommand.Execute).Read(data);

            // При загрузке последней строки НЕХ-файла символ '\r' является Enter для строки
            // Символ '\n' воспринимается как команду получаемую после загрузки НЕХ-файла
            // и добавляет после загрузки фразу \r\n.UNKNOW COMMAND\r\n.
            // Соответственно исключаем ее
            if (readed >= 2 &&
                data.Length >= 2 &&
                data[readed - 2] == ( byte )'\r' &&
                data[readed - 1] == ( byte )'\n')
            {
                readed--;
            }
            // Корректировка максимального значения ProgressBar
            // НЕХ-файл грузится по 512 байт ( шаг = readed >> 9 )
            App.MyWindows.MaxProgress += readed >> 9;
            // Выдача в порт команды на загрузку HEX
            log.Append(App.TaskManager.PortCom.SetCommandLoad(Port));
            // Загрузка НЕХ файла
            var writed = 0;

            do
            {
                // Инкремент элемента Progress Bar
                App.MyWindows.ValueProgress++;
                // Проверка токена отмены операции
                App.TaskManager.СheckСancelToken();
                // Чтение данных из СОМ порта
                // Если забить на очистку буферов приема/выдачи, то происходят сбои в работе порта
                // Выполнять чтение ОБЯЗАТЕЛЬНО ( либо очистку буферов )
                log.Append(App.TaskManager.PortCom.Read(Port));
                // Запись данных в СОМ-порт
                var size_pack = readed - writed >= 512 ? 512 : readed - writed;
                App.TaskManager.PortCom.Write(Port, data, writed, size_pack);
                // Обновление количества записанных байт
                writed += size_pack;
            } while (writed < readed);
            // Считывание сообщения о успешной загрузки
            log.Append(App.TaskManager.PortCom.GetResultLoad(Port));
            // НЕХ файл загружен успешно
            // Запуск работы загруженной программы
            // Выдача в порт команды на запуск HEX
            var str = App.TaskManager.PortCom.SetCommandRun(Port);

            // НЕХ файл загружен и запушен успешно
            // Проверка результатов загрузки НЕХ-файла
            // Проверка результатов загрузки
            CheckResultLoad(str);
            return(log.Append(str).ToString());
        }
示例#2
0
        public IActionResult Index()
        {
            FilesClass    fs          = new FilesClass();
            var           displayFile = Path.Combine(_appEnvironment.WebRootPath, "Upload");
            DirectoryInfo di          = new DirectoryInfo(displayFile);

            FileInfo[] fileInfos = di.GetFiles();
            fs.FileInfos = fileInfos;
            return(View(fs));
        }
示例#3
0
    void Import(string Data)
    {
        Debug.Log(Data);
        FilesQRClass QRData;

        QRData = JsonUtility.FromJson <FilesQRClass>(Data);
        for (int i = 0; i < QRData.FilesCount; i++)
        {
            FilesClass Files;
            int[]      Type     = QRData.Files[i].QuestionsType;
            string[]   Question = QRData.Files[i].Questions;
            string[]   Answer   = QRData.Files[i].Answers;

            Files = new FilesClass
            {
                SaveVersion    = "v1",
                CreatedWith    = QRData.Files[i].CreatedWith,
                LastOpenedWith = Application.version,
                Scouter        = QRData.Files[i].Scouter,
                QuestionsInt   = QRData.Files[i].QuestionsInt,
                QuestionsType  = Type,
                Questions      = Question,
                Answers        = Answer,
                Comment        = ""
            };
            string JSON  = JsonUtility.ToJson(Files, true);
            byte[] bytes = Encoding.ASCII.GetBytes(JSON);
            File.WriteAllBytes(FilesDataClass.FilePathSaves + "/" + QRData.FilesInfo[i] + ".rs", bytes);
        }

        TotalFiles += QRData.FilesCount;
        DevicesScanned++;
        StatusText.text = "Status: Scan Successful";
        FilesText.text  = "Files: " + TotalFiles;
        DeviceText.text = "Devices: " + DevicesScanned;
    }
    IEnumerator ExportCSV(string path)
    {
        List <string>     AllFiles  = GetFiles();
        List <string>     InfoFiles = new List <string>();
        List <FilesClass> CompFiles = new List <FilesClass>();
        int ErrorsCount             = 0;

        IgnoreButton.SetActive(false);
        OverwriteButton.SetActive(false);
        ConfirmButton.SetActive(false);
        PackageManager.SetActive(true);
        Title.text    = "Exporting " + Path.GetFileName(path);
        Total.text    = "Scouting files to export: " + AllFiles.Count;
        DateInfo.text = "Created on " + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Day.ToString() + "/" + DateTime.Now.Year.ToString() + ":v1";
        int Current = 1;

        foreach (string Directory in AllFiles)
        {
            Percent.text     = (Current / AllFiles.Count) * 100 + "%";
            CurrentFile.text = "Exporting file " + Current + "/" + AllFiles.Count;
            string check = FileTest.FileCheck(Directory);
            switch (check)
            {
            case "Future":
                ErrorsCount++;
                break;

            case "RS2":
                byte[]     bytesfile = File.ReadAllBytes(Directory);
                string     JSONfile  = Encoding.ASCII.GetString(bytesfile);
                FilesClass Files;
                Files = JsonUtility.FromJson <FilesClass>(JSONfile);
                InfoFiles.Add(Path.GetFileNameWithoutExtension(Directory));
                CompFiles.Add(Files);
                break;

            case "RS1.5":
                ErrorsCount++;
                break;

            case "RS1":
                string[]   ScoutFiles = RS1Files.LoadRS1Files(Directory);
                FilesClass FilesRS1   = new FilesClass();
                FilesRS1.CreatedWith    = "RS1";
                FilesRS1.LastOpenedWith = "Unknown";
                FilesRS1.Scouter        = "Unknown";
                FilesRS1.QuestionsInt   = 11;
                FilesRS1.QuestionsType  = new int[11] {
                    0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1
                };
                FilesRS1.Questions = new string[11] {
                    "Unknown Title", "Unknown Question", "Unknown Question", "Unknown Title", "Unknown Question", "Unknown Question", "Unknown Question", "Unknown Title", "Unknown Question", "Unknown Question", "Comment"
                };
                FilesRS1.Answers = new string[11] {
                    "", ScoutFiles[0], ScoutFiles[1], "", ScoutFiles[2], ScoutFiles[3], ScoutFiles[4], "", ScoutFiles[5], ScoutFiles[6], ScoutFiles[7]
                };
                InfoFiles.Add(Path.GetFileNameWithoutExtension(Directory));
                CompFiles.Add(FilesRS1);
                break;

            case "Error":
                ErrorsCount++;
                break;
            }
            Current++;
            Errors.text = "Exported: " + CompFiles.Count + "   Errors: " + ErrorsCount.ToString();
        }
        string[] Rounds = new string[InfoFiles.Count];
        string[] Teams  = new string[InfoFiles.Count];
        int      i;

        i = 0;
        foreach (string Round in Rounds)
        {
            Rounds[i] = InfoFiles[i].Split('-')[0];
        }
        i = 0;
        foreach (string Team in Teams)
        {
            Teams[i] = InfoFiles[i].Split('-')[1];
        }
        string[] Output;
        if (IgnoreQuestions.isOn)
        {
            Output = new string[10];
            int x = 0;
            int y = 0;
            foreach (FilesClass File in CompFiles)
            {
            }
        }
        else
        {
            Output = new string[1];
        }

        StreamWriter outputFile = new StreamWriter(path);

        foreach (string line in Output)
        {
            outputFile.WriteLine(line);
        }
        outputFile.Close();
        if (ErrorsCount == 0)
        {
            Manager.GetComponent <ErrorManager>().Log("Scouting package exported as " + Path.GetFileName(path));
        }
        else
        {
            Manager.GetComponent <ErrorManager>().Warning("Scouting package exported as " + Path.GetFileName(path) + " with " + ErrorsCount + " Errors");
        }
        ConfirmButton.SetActive(true);
        yield return(null);
    }
    IEnumerator ExportRSE(string path)
    {
        List <string>     AllFiles  = GetFiles();
        List <string>     InfoFiles = new List <string>();
        List <FilesClass> CompFiles = new List <FilesClass>();
        int ErrorsCount             = 0;

        IgnoreButton.SetActive(false);
        OverwriteButton.SetActive(false);
        ConfirmButton.SetActive(false);
        PackageManager.SetActive(true);
        Title.text    = "Exporting " + Path.GetFileName(path);
        Total.text    = "Scouting files to export: " + AllFiles.Count;
        DateInfo.text = "Created on " + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Day.ToString() + "/" + DateTime.Now.Year.ToString() + ":v1";
        int Current = 1;

        foreach (string Directory in AllFiles)
        {
            Percent.text     = (Current / AllFiles.Count) * 100 + "%";
            CurrentFile.text = "Exporting file " + Current + "/" + AllFiles.Count;
            string check = FileTest.FileCheck(Directory);
            switch (check)
            {
            case "Future":
                ErrorsCount++;
                break;

            case "RS2":
                byte[]     bytesfile = File.ReadAllBytes(Directory);
                string     JSONfile  = Encoding.ASCII.GetString(bytesfile);
                FilesClass Files;
                Files = JsonUtility.FromJson <FilesClass>(JSONfile);
                InfoFiles.Add(Path.GetFileNameWithoutExtension(Directory));
                CompFiles.Add(Files);
                break;

            case "RS1.5":
                ErrorsCount++;
                break;

            case "RS1":
                string[]   ScoutFiles = RS1Files.LoadRS1Files(Directory);
                FilesClass FilesRS1   = new FilesClass();
                FilesRS1.CreatedWith    = "RS1";
                FilesRS1.LastOpenedWith = "Unknown";
                FilesRS1.Scouter        = "Unknown";
                FilesRS1.QuestionsInt   = 11;
                FilesRS1.QuestionsType  = new int[11] {
                    0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1
                };
                FilesRS1.Questions = new string[11] {
                    "Unknown Title", "Unknown Question", "Unknown Question", "Unknown Title", "Unknown Question", "Unknown Question", "Unknown Question", "Unknown Title", "Unknown Question", "Unknown Question", "Comment"
                };
                FilesRS1.Answers = new string[11] {
                    "", ScoutFiles[0], ScoutFiles[1], "", ScoutFiles[2], ScoutFiles[3], ScoutFiles[4], "", ScoutFiles[5], ScoutFiles[6], ScoutFiles[7]
                };
                InfoFiles.Add(Path.GetFileNameWithoutExtension(Directory));
                CompFiles.Add(FilesRS1);
                break;

            case "Error":
                ErrorsCount++;
                break;
            }
            Current++;
            Errors.text = "Exported: " + CompFiles.Count + "   Errors: " + ErrorsCount.ToString();
        }
        FilesPackageClass Package = new FilesPackageClass
        {
            SaveVersion = "v1",
            Date        = DateTime.Now.Month.ToString() + "/" + DateTime.Now.Day.ToString() + "/" + DateTime.Now.Year.ToString(),
            FilesCount  = InfoFiles.Count,
            FilesInfo   = InfoFiles.Select(i => i).ToArray(),
            Files       = CompFiles.Select(i => i).ToArray()
        };
        string JSON = JsonUtility.ToJson(Package, false);

        byte[] bytes = Encoding.ASCII.GetBytes(JSON);
        File.WriteAllBytes(path, bytes);
        if (ErrorsCount == 0)
        {
            Manager.GetComponent <ErrorManager>().Log("Scouting package exported as " + Path.GetFileName(path));
        }
        else
        {
            Manager.GetComponent <ErrorManager>().Warning("Scouting package exported as " + Path.GetFileName(path) + " with " + ErrorsCount + " Errors");
        }
        ConfirmButton.SetActive(true);
        yield return(null);
    }
示例#6
0
    void Save(string SaveMatch, string SaveTeam)
    {
        FilesClass Files;

        int[]    Type     = new int[QuestionsCount];
        string[] Question = new string[QuestionsCount];
        string[] Answer   = new string[QuestionsCount];
        for (int i = 0; i < QuestionsCount; i++)
        {
            if (i <= QuestionsCount)
            {
                Type[i] = Questions.Find("Question " + (i + 1).ToString()).GetComponent <ScoutType>().TypeInt;
            }
            else
            {
                Type[i] = 0;
            }
        }
        for (int i = 0; i < QuestionsCount; i++)
        {
            if (i <= QuestionsCount)
            {
                Question[i] = Questions.Find("Question " + (i + 1).ToString()).GetComponent <ScoutType>().GetData();
            }
            else
            {
                Question[i] = "";
            }
        }
        for (int i = 0; i < QuestionsCount; i++)
        {
            if (i <= QuestionsCount)
            {
                Answer[i] = Questions.Find("Question " + (i + 1).ToString()).GetComponent <ScoutType>().GetValue();
            }
            else
            {
                Answer[i] = "";
            }
        }
        if (NewFileCheck)
        {
            Files = new FilesClass
            {
                SaveVersion    = "v1",
                CreatedWith    = Application.version,
                LastOpenedWith = Application.version,
                Scouter        = Settings.ScouterName,
                QuestionsInt   = QuestionsCount,
                QuestionsType  = Type,
                Questions      = Question,
                Answers        = Answer,
                Comment        = ""
            };
        }
        else
        {
            Files = new FilesClass
            {
                SaveVersion    = "v1",
                CreatedWith    = CreatedWithCache,
                LastOpenedWith = Application.version,
                Scouter        = ScouterCache,
                QuestionsInt   = QuestionsCount,
                QuestionsType  = Type,
                Questions      = Question,
                Answers        = Answer,
                Comment        = ""
            };
        }
        string JSON = JsonUtility.ToJson(Files, true);

        byte[] bytes = Encoding.ASCII.GetBytes(JSON);
        File.WriteAllBytes(FilesDataClass.FilePathSaves + "/" + SaveMatch + "-" + SaveTeam + ".rs", bytes);
        SetFile();
        Manager.GetComponent <ErrorManager>().Log("Scouting file saved as " + SaveMatch + "-" + SaveTeam + ".rs");
    }
示例#7
0
    public void GenerateQR()
    {
        CurrentQR = 0;
        string            Data      = "";
        List <string>     AllFiles  = GetFiles();
        List <string>     InfoFiles = new List <string>();
        List <FilesClass> CompFiles = new List <FilesClass>();
        int ErrorsCount             = 0;
        int Current = 1;

        foreach (string Directory in AllFiles)
        {
            string check = FileTest.FileCheck(Directory);
            switch (check)
            {
            case "Future":
                ErrorsCount++;
                break;

            case "RS2":
                byte[]     bytesfile = File.ReadAllBytes(Directory);
                string     JSONfile  = Encoding.ASCII.GetString(bytesfile);
                FilesClass Files;
                Files = JsonUtility.FromJson <FilesClass>(JSONfile);
                InfoFiles.Add(Path.GetFileNameWithoutExtension(Directory));
                CompFiles.Add(Files);
                break;

            case "RS1.5":
                ErrorsCount++;
                break;

            case "RS1":
                string[]   ScoutFiles = RS1Files.LoadRS1Files(Directory);
                FilesClass FilesRS1   = new FilesClass
                {
                    CreatedWith    = "RS1",
                    LastOpenedWith = "Unknown",
                    Scouter        = "Unknown",
                    QuestionsInt   = 11,
                    QuestionsType  = new int[11] {
                        0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1
                    },
                    Questions = new string[11] {
                        "Unknown Title", "Unknown Question", "Unknown Question", "Unknown Title", "Unknown Question", "Unknown Question", "Unknown Question", "Unknown Title", "Unknown Question", "Unknown Question", "Comment"
                    },
                    Answers = new string[11] {
                        "", ScoutFiles[0], ScoutFiles[1], "", ScoutFiles[2], ScoutFiles[3], ScoutFiles[4], "", ScoutFiles[5], ScoutFiles[6], ScoutFiles[7]
                    }
                };
                InfoFiles.Add(Path.GetFileNameWithoutExtension(Directory));
                CompFiles.Add(FilesRS1);
                break;

            case "Error":
                ErrorsCount++;
                break;
            }
            Current++;
        }
        FilesQRClass Package = new FilesQRClass
        {
            FilesCount = InfoFiles.Count,
            FilesInfo  = InfoFiles.Select(i => i).ToArray(),
            Files      = CompFiles.Select(i => i).ToArray()
        };

        Data = JsonUtility.ToJson(Package, false);
        if (UseHighDensity.isOn)
        {
            if (UseCompression.isOn)
            {
                Compress(Data, true, true);
            }
            else
            {
                Compress(Data, true, false);
            }
        }
        else
        {
            if (UseCompression.isOn)
            {
                Compress(Data, false, true);
            }
            else
            {
                Compress(Data, false, false);
            }
        }
    }