Відтворення передані посимвольних даних через USB порт у графічному вигляді.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Переферійних пристроїв

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра ЕОМ / Лабораторна робота №8 з Переферійних пристроїв на тему: «Відтворення передані посимвольних даних через USB порт у графічному вигляді.» Львів – 2017 МЕТА РОБОТИ: ознайомитися з процесом формування та передачі постмвольних даних у графічному представленні в схемі кодування NRZI через послідовний USB інтерфейс. Хід роботи Метод кодування NRZI NRZI - Non Return to Zero Invertive (інверсне кодування без повернення до нуля) Цей метод є модифікованим методом Non Return to Zero (NRZ), де для подання 1 і 0 використовуються потенціали двох рівнів. У коді NRZ I також використовується 2 потенціалу, але його поточне значення залежить від попереднього. Якщо поточне значення біта "0", то отриманий потенціал повинен бути інверсією від попереднього, якщо значення біта "1" - такий же. / Оскільки код незахищений від довгих послідовностей "нулів" або "одиниць", то це може призвести до проблем синхронізації. Тому перед передачею, задану послідовність бітів рекомендується попередньо закодувати кодом передбачають скремблювання (скремблер призначений для додання властивостей випадковості переданої послідовності даних з метою полегшення виділення тактової частоти приймачем). Програма реалізує графік передачі даних закодованих за допомогою NRZI / / Висновок: я ознайомився з процесом передачі даних через послідовний інтерфейс USB. Додаток package work; import java.io.IOException; import java.nio.file.*; import java.util.ArrayList; public class PathWorker { public static ArrayList<String> getPath() { Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories(); ArrayList<String> disks = new ArrayList<>(); for (Path name: dirs) { disks.add(name.toString()); } return disks; } public static boolean fileCopy(Path source, Path result){ try { Files.copy(source, result.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING); return true; } catch (IOException e) { e.printStackTrace(); return false; } } public static boolean fileMove(Path source, Path result){ try { Files.move(source, result.resolve(source.getFileName()), StandardCopyOption.REPLACE_EXISTING); return true; } catch (IOException e) { e.printStackTrace(); return false; } } public static DirectoryStream<Path> getAllFilesInCatalog(Path source){ try (DirectoryStream<Path> stream = Files.newDirectoryStream(source)) { for (Path file: stream) { System.out.println(file.getFileName()); } return stream; } catch (IOException | DirectoryIteratorException x) { System.err.println(x); return null; } } } package work; import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.scene.control.*; import javax.swing.*; import java.io.File; import java.io.IOException; import java.nio.file.*; import java.util.ArrayList; public class Controller { private static ArrayList<String> disks; private static Path actualDisk = Paths.get("NULL"); private static Path outputPath = Paths.get("NULL"); @FXML private Button buttonFileChose; @FXML private Button buttonCopyFile; @FXML private Button buttonMoveFile; @FXML private ComboBox comboBoxChoseDisk; @FXML private Label labelInputPath; @FXML private Label labelInfoAboutInputPath; @FXML private TextArea textAreaDisk; @FXML private ScrollBar scrollBarDisk; @FXML private void choseInputPath(){ JFileChooser fileOpen = new JFileChooser(); int ret = fileOpen.showDialog(null, "Відкрити файл"); if (ret == JFileChooser.APPROVE_OPTION) { File file = fileOpen.getSelectedFile(); outputPath = Paths.get(file.toURI()); labelInputPath.setText(file.toString()); labelInfoAboutInputPath.setVisible(true); labelInputPath.setVisible(true); buttonMoveFile.setVisible(true); buttonCopyFile.setVisible(true); } } @FXML private void moveFile(){ if(Files.exists(outputPath) && Files.exists(actualDisk)){ PathWorker.fileMove(outputPath, actualDisk); getDiskData(); } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); alert.setHeaderText("Переміщення не виконане"); alert.setContentText("Перевірте наявність накопичувачи чи вибраного файлу"); alert.showAndWait(); } } @FXML private void copyFile(){ if(Files.exists(outputPath) && Files.exists(actualDisk)){ PathWorker.fileCopy(outputPath, actualDisk); getDiskData(); } else { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Error"); alert.setHeaderText("Копіювання не виконане"); alert.setContentText("Перевірте наявність накопичувачи чи вибраного файлу"); alert.showAndWait(); } } @FXML private void listSynchronize(){ disks = PathWorker.getPath(); comboBoxChoseDisk.setItems(FXCollections.observableArrayList(disks)); } @FXML private void choseDisk(){ comboBoxChoseDisk.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { actualDisk = Paths.get(newValue.toString()); getDiskData(); }); } @FXML private void getDiskData(){ if(Files.exists(actualDisk)) { try (DirectoryStream<Path> stream = Files.newDirectoryStream(actualDisk)) { StringBuilder allFiles = new StringBuilder(""); for (Path file : stream) { allFiles.append(file.getFileName().toString()); allFiles.append("\n"); } textAreaDisk.setText(allFiles.toString()); } catch (IOException | DirectoryIteratorException x) { System.err.println(x); } } } @FXML private void initialize(){ disks = PathWorker.getPath(); comboBoxChoseDisk.setItems(FXCollections.observableArrayList(disks)); buttonCopyFile.setVisible(false); buttonMoveFile.setVisible(false); labelInputPath.setVisible(false); labelInfoAboutInputPath.setVisible(false); choseDisk(); } } package work; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); primaryStage.setTitle("ioUSB"); primaryStage.getIcons().add(new Image("file:pendrive.png")); primaryStage.setScene(new Scene(root, 560, 416)); primaryStage.show(); PathWorker.getPath(); } public static void main(String[] args) { launch(args); } }
Антиботан аватар за замовчуванням

24.11.2018 19:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!