Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

Podobne dokumenty
Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

Programowanie w językach

Program dopisujący gwiazdkę na końcu pliku tekstowego o nazwie podanej przez uŝytkownika oraz wypisujący zawartość tego pliku.

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Operacje wejścia/wyjścia (odsłona druga) - pliki

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Operacje na plikach. Informatyka. Standardowe strumienie wejścia i wyjścia

Spis treści OBSŁUGA PLIKÓW W JĘZYKU C++ Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

Wprowadzenie do programowania i programowanie obiektowe

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Instrukcja laboratoryjna cz.3

C++ - [3-5] Pliki i strumienie w C++

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

Programowanie i struktury danych

Operacje na plikach (niskiego poziomu) < IO.H >

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) {

Wykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project

Klasa iostream... 1 Klasy ofstream, ifstream Struktura FILE... 8

STWORZENIE MOBILNEJ APLIKACJI,

Wykład 6 Dziedziczenie cd., pliki

Programowanie w językach wysokiego poziomu

C++ - [1-3] Debugowanie w Qt Creator

Schematy blokowe. Algorytmy Marek Pudełko

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Podstawy programowania w języku C++

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Programowanie komputerowe. Zajęcia 1

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

1.Wstęp. 2.Generowanie systemu w EDK

Wejście wyjście strumieniowe

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Języki i metodyka programowania. Wprowadzenie do języka C

Metody zawarte w klasie File: boolean createnewfile() tworzy nowy, pusty plik, ale tylko jeśli on wcześniej nie istniał. boolean delete() usuwa dany

Pliki. Informacje ogólne. Obsługa plików w języku C

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Funkcje zawarte w bibliotece < io.h >

7 Przygotował: mgr inż. Maciej Lasota

1 Strumienie. 2 Pliki. 2.1 Zapis do pliku tekstowego. Programowanie w j zyku C - Adam Krechowicz, Daniel Kaczmarski

Funkcje zawarte w bibliotece < io.h >

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Argumenty wywołania programu, operacje na plikach

Wprowadzenie do języka Java

Wskaźniki. Informatyka

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Pliki wykład 2. Dorota Pylak

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Programowanie obiektowe

Podstawy języka skryptowego Lua

Programowanie Procedurale. Pliki w języku C++

Wprowadzenie do środowiska Visual Studio cz. 2 (ćwiczenie wykonywane zdalnie) Wykorzystanie Wirtualnego portu COM

Podstawy i języki programowania

Biblioteka standardowa - operacje wejścia/wyjścia

Pliki. Informacje ogólne. Obsługa plików w języku C

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Wykład 2 Operacje wejściawyjścia. Ewa Gajda

Pliki. Operacje na plikach w Pascalu

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Programowanie telefonów z Windows Phone 7, cz. 4

Operacje wejścia/wyjścia odsłona pierwsza

Wykład PASCAL - Pliki tekstowe

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

1 Podstawy c++ w pigułce.

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

ISO/ANSI C dostęp do plików ISO/ANSI C. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików. ISO/ANSI C dostęp do plików

Wykład 4. Tablice. Pliki

Wstęp do programowania. Wykład 1

Podstawy programowania w C++

1 Podstawy c++ w pigułce.

Programowanie - wykład 4

Wstęp do programowania

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Programowanie proceduralne w języku C++ Podstawy

Tablice, funkcje - wprowadzenie

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Jak napisać listę jednokierunkową?

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Instytut Teleinformatyki

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Transkrypt:

1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawową metodą akwizycji danych z wykorzystaniem protokołu komunikacji RS - 232. 2) Zakres niezbędnych wiadomości - Akwizycja danych - Zapis do pliku - Odczyt z pliku - Ramka komunikacji 3) Wstęp Akwizycja danych służy do zapisu podstawowych ustawień programu oraz istotnych danych, które w wyniku pracy aplikacji zostają zapisywane w celu od tworzenia przebiegu np. procesu technologicznego. Zapis danych do pliku może zostać wykorzystany do monitorowania oraz nadzorowania awarii które programista przewidzi. Visual Studio może operować na podstawowym zapisie do pliku z wykorzystaniem plików bibliotecznych: #pragma once #using <System.dll> #include <string.h> #include <iostream> #include <fstream> #include <conio.h> #include <string.h> #include <stdlib.h> #include <stdio.h> using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; using namespace System::IO::Ports; using namespace System::IO; using namespace System::Threading; using namespace System::Reflection; using namespace std; Tryb ios::app ios::ate ios::binary ios::in Opis trybu app (dopisywanie danych do pliku) ustawia wewnętrzny wskaźnik zapisu pliku na jego koniec. Plik otwarty w trybie tylko do zapisu. Dane mogą być zapisywane tylko i wyłącznie na końcu pliku. at - Ustawia wewnętrzny wskaźnik pliku na jego koniec w chwili otwarcia pliku. binary - Informacja dla kompilatora, aby dane były traktowane jako strumień danych binarnych, a nie jako strumień danych tekstowych. in - Zezwolenie na odczytywanie danych z pliku.

ios::out ios::trunc out - Zezwolenie na zapisywanie danych do pliku. trunc - Zawartość pliku jest tracona, plik jest obcinany do 0 bajtów podczas otwierania. Wszystkie parametry trybów pracy można łączyć ze sobą. Przykład otwarcia pliku: plik.open( "nazwa_pliku.txt", std::ios::in std::ios::out ); Oznacza to, że dany plik może zostać odczytywany jak również zapisywany. Zapis danych do pliku: plik.open( "nazwa_pliku.txt", std::ios::out ); char *bufor = "nazwa"; plik.write( bufor, strlen(bufor) ); //wczytuje tyle danych ile się zmieści do bufora Odczyt danych z pliku: plik.open( "nazwa_pliku.txt", std::ios::in); char bufor[ 1024 ]; plik.read( bufor, 1024 ); //wczytuje tyle danych ile się zmieści do bufora Zapis i odczyt z pliku można realizować również z wykorzystaniem strumieni << oraz >>. char* zmienna; fstream f("x.txt",ios::app); f << zmienna <<" "; f.close(); Visual Studio operuje również na zapisie plików w postaci: StreamWriter^ write=gcnew StreamWriter("plik.txt"); write->writeline("napis"); write->close(); Odczyt plików w postaci: StreamReader^ file= File::OpenText("plik.txt"); textbox1->text=file->readline(); file->close(); Konwersja z char do string char* strchar="text"; String^ strnew; strnew = gcnew String(strChar);//Here charstring is ur char* label1->text = strnew; Konwersja z string do char

using namespace System; using namespace System::Runtime::InteropServices; #include <iostream> // for printf int main() // Create a managed string. String^ managedstring = "Hello unmanaged world (from the managed world)."; // Marshal the managed string to unmanaged memory. char* stringpointer = (char*) Marshal::StringToHGlobalAnsi(managedString ).ToPointer(); printf("stringpointer = %s\n", stringpointer); // Always free the unmanaged string. Marshal::FreeHGlobal(IntPtr(stringPointer)); return 0; 4) Zadania. Ćw. 1 Należy utworzyć pliki i przetestować zapis oraz odczyt danych z wykorzystaniem obu metod przedstawionych w wstępie do ćwiczenia. Proszę zamieścić pliki z zapisanymi danymi oraz odczytanymi. Ćw. 2 Należy rozbudować aplikację komunikacyjną RS -232 o możliwość wyboru: Do tego celu należy wykorzystać kontrolki combobox i w odpowiednim polu należy umieścić możliwe do wyboru parametry. W celu dopasowania parametrów możliwych do wyboru w komunikacji należy wykorzystać kontrolkę serialport. Aplikacja użytkownika po zatwierdzeniu odpowiednim klawiszem powinna zapisać parametry komunikacji do pliku ustawienia.txt i ładować je przy włączaniu aplikacji. Aplikacja powinna posiadać wszystkie funkcjonalności z lab nr 2. W przypadku zapisu danych taki jak: - port Należy wykorzystać zapis pliku z wykorzystaniem combobox1->text. W przypadku zapisu danych taki jak:

Należy wykorzystać zapis pliku z wykorzystaniem combobox4->selectedindex. Ponieważ te parametry są przyjmowane jako liczby. Odczyt parametrów: - port combobox1->text=file->readline(); Odczyt parametrów: combobox4->selectedindex=int16::parse(file->readline()); Najważniejszym krokiem jest odpowiednie przypisanie odczytanych danych do kontrolki serialport : serialport1->portname=file->readline(); serialport1->baudrate=system::int64::parse(file->readline()); serialport1->databits=system::int64::parse(file->readline()); serialport1->parity=(parity)int32::parse( file->readline()); serialport1->stopbits=(stopbits)int32::parse( file->readline()); serialport1->handshake=(handshake)int32::parse(file->readline()); Przykładowy wygląd zapisanego pliku z ustawieniami: COM1 19200 8 0 1 0 - odbiór danych z komunikacji należy zrealizować z wykorzystaniem przerwania: String^ odbior; //deklaracja lokalna wewnątrz klasy private: System::Void serialport1_datareceived(system::object^ sender, System::IO::Ports::SerialDataReceivedEventArgs^ e) char litera=serialport1->readchar(); odbior += Char::ToString(litera); Odczyt_znak^ dane=gcnew Odczyt_znak(this,&rs::Form1::wyswietl_znak); dane(odbior); //wywołanie funkcji umożliwiającej odczytanie danych z portu COM private: System::Void wyswietl_znak( String^ ciag ) //np. na kontrolce richtextbox1 w parametrze text umieszczamy string^ ciag ; SetControlPropertyValue(richTextBox1, "Text",ciag); Przykład wyglądu okna z możliwymi parametrami:

Następnie aplikacja powinna umożliwić zapis do pliku dane.txt odebranych informacji po protokole RS 232. Wygląd programu dowolny z zachowanie wymienionych obiektów oraz poprawności działania. 5) Sprawozdanie Sprawozdanie powinno zawierać: - fragmenty funkcji wykonanych przykładów ze wstępu do ćwiczenia - program, jaki grupa napisała na zajęciach - za każdą linijką programu, jeżeli będzie taka potrzeba, należy umieścić bieżący komentarz na temat danej linii kodu - pod każdym programem należy umieścić własny opis działania programu i wnioski. - ogólne wnioski i spostrzeżenia na temat wykonanego ćwiczenia i zdobytej wiedzy