/// <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()); }
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)); }
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); }
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"); }
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); } } }