Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <stdio.h>
- void main(){
- DCB parametry_portu; // to samo dla Visual C
- COMMCONFIG ustawienia; // jak wySej tylko dla VC
- HANDLE port; // uchwyt do portu
- unsigned char bufor[] = // komunikat do wyslania
- {0x10, 0x66, 0xE6, 0x01, 0x4D, 0x16};
- ULONG przeczytano; // dodatkowa zmienna
- char pom[40]; // zm. pomocnicza do przetworzenia odebranego komunikatu;
- // etap pierwszy - uzyskanie dostepu do portu
- // otworzenie portu i przypisanie jego uchwytu do zmiennej port
- port = CreateFile(
- "COM1", // nazwa 'pliku - portu'
- GENERIC_READ | GENERIC_WRITE, // do odczytu
- 0, // czy obiekt moze byc dzielony - 0 nie moze
- NULL, // wskaznik na strukture opisujaca zabezpieczenia: tutaj NULL
- OPEN_EXISTING, // rodzaj akcji wykonywanej na pliku: tutaj OPEN_EXISTING, poniewaz obiekt istnieje
- 0, // rodzaj obslugi portu synchroniczny czy asynchroniczny
- 0 // uchwyt do dodatkowego pliku z rozszerzonym zestawem atrybutow- tutaj 0;
- );
- if (port == INVALID_HANDLE_VALUE) // obsluga bledu - jesli przy otwieraniu portu pojawil sie blad
- { // jesli blad wypisz stosowny komunikat i zakoncz funkcje
- port = NULL;
- printf("Nie mozna otworzyć portu\n"); // BC dla VC bez Application->
- return;
- }
- // etap drugi - przygotowanie parametrow portu
- parametry_portu.BaudRate = 9600; // predkosci
- parametry_portu.ByteSize = 8; // bitow danych
- parametry_portu.Parity = EVENPARITY; // (nie)parzystosci
- parametry_portu.StopBits = ONESTOPBIT; // bitow stopu
- ustawienia.dcb = parametry_portu; // zapamietanie tego w strukturze nadrzednej
- // etap trzeci - ustawienie parametrow portu
- SetCommConfig ( port, &ustawienia, sizeof(ustawienia));
- // etap czwarty - zapis do portu
- WriteFile(
- port, // uchwyt portu
- bufor, // bufor na dane
- 6, // ile znakow zapisac
- &przeczytano,// ile w rzeczywistosci odczytano
- NULL // wskaznik na strukture obslugujaca zdarzenia portu
- );
- // etap piąty - odczyt z portu
- ReadFile(
- port, // uchwyt portu
- bufor, // bufor na dane
- 6, // ile znakow odczytac
- &przeczytano,// ile w rzeczywistosci odczytano
- NULL // wskaznik na strukture obslugujaca zdarzenia portu
- );
- // etap szósty - zwolnienie portu
- CloseHandle(port); // zwolnienie uchwytu do portu
- // etap siódmy - przetworzenie odebranych danych
- wsprintf(pom, "%02X %02X %02X %02X %02X %02X", bufor[0], bufor[1], bufor[2], bufor[3] ,bufor[4],
- bufor[5]);
- // etap ósmy - wyswietlenie wyniku
- printf("%s\n", pom); //BC
- //odebrano.SetWindowText(pom); //VC
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement