Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <iostream>
- using namespace std;
- int main(void)
- {
- //TDCB parametry_portu; // struktura do ustalenia parametrów portów dla Cbuildera
- DCB parametry_portu; // to samo dla Visual C
- //TCommConfig ustawienia; // struktura do ustalenia parametrów portów CB
- 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, zapisano; // 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
- FILE_ATTRIBUTE_NORMAL, // 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;
- //Application->MessageBox("Nie moSna otworzyć portu", "Uwaga",MB_OK |
- //MB_ICONEXCLAMATION); // BC dla VC bez Application->
- printf("BLAD");
- return 1;
- }
- 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
- // etap piąty - odczyt z portu
- WriteFile(
- port, // uchwyt portu
- bufor, // bufor na dane
- 6, // ile znakow odczytac
- &zapisano,// ile w rzeczywistosci odczytano
- NULL // wskaznik na strukture obslugujaca zdarzenia portu
- );
- cout<<zapisano<<endl;
- 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
- //odebrano->Caption = pom; //BC
- //odebrano.SetWindowText(pom); //VC
- //cout<<pom<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement