Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. #include <windows.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(void)
  7. {
  8. //TDCB parametry_portu; // struktura do ustalenia parametrów portów dla Cbuildera
  9. DCB parametry_portu; // to samo dla Visual C
  10. //TCommConfig ustawienia; // struktura do ustalenia parametrów portów CB
  11. COMMCONFIG ustawienia; // jak wySej tylko dla VC
  12. HANDLE port; // uchwyt do portu
  13. unsigned char bufor[] = // komunikat do wyslania
  14. {0x10, 0x66, 0xE6, 0x01, 0x4D, 0x16};
  15. ULONG przeczytano, zapisano; // dodatkowa zmienna
  16. char pom[40]; // zm. pomocnicza do przetworzenia odebranego komunikatu;
  17. // etap pierwszy - uzyskanie dostepu do portu
  18. // otworzenie portu i przypisanie jego uchwytu do zmiennej port
  19. port = CreateFile(
  20. "COM1", // nazwa 'pliku - portu'
  21. GENERIC_READ|GENERIC_WRITE, // do odczytu
  22. 0, // czy obiekt moze byc dzielony - 0 nie moze
  23. NULL, // wskaznik na strukture opisujaca zabezpieczenia: tutaj NULL
  24. OPEN_EXISTING, // rodzaj akcji wykonywanej na pliku: tutaj OPEN_EXISTING, poniewaz obiekt istnieje
  25. FILE_ATTRIBUTE_NORMAL, // rodzaj obslugi portu synchroniczny czy asynchroniczny
  26. 0 // uchwyt do dodatkowego pliku z rozszerzonym zestawem atrybutow- tutaj 0;
  27. );
  28.  
  29. if (port == INVALID_HANDLE_VALUE) // obsluga bledu - jesli przy otwieraniu portu pojawil sie blad
  30. {
  31. // jesli blad wypisz stosowny komunikat i zakoncz funkcje
  32. port = NULL;
  33. //Application->MessageBox("Nie moSna otworzyć portu", "Uwaga",MB_OK |
  34. //MB_ICONEXCLAMATION); // BC dla VC bez Application->
  35. printf("BLAD");
  36. return 1;
  37. }
  38.  
  39. parametry_portu.BaudRate = 9600; // predkosci
  40. parametry_portu.ByteSize = 8; // bitow danych
  41. parametry_portu.Parity = EVENPARITY; // (nie)parzystosci
  42. parametry_portu.StopBits = ONESTOPBIT; // bitow stopu
  43. ustawienia.dcb = parametry_portu; // zapamietanie tego w strukturze nadrzednej
  44. // etap trzeci - ustawienie parametrow portu
  45. SetCommConfig ( port, &ustawienia, sizeof(ustawienia));
  46. // etap czwarty - zapis do portu
  47. // etap piąty - odczyt z portu
  48.  
  49. WriteFile(
  50. port, // uchwyt portu
  51. bufor, // bufor na dane
  52. 6, // ile znakow odczytac
  53. &zapisano,// ile w rzeczywistosci odczytano
  54. NULL // wskaznik na strukture obslugujaca zdarzenia portu
  55. );
  56.  
  57. cout<<zapisano<<endl;
  58.  
  59. ReadFile(
  60. port, // uchwyt portu
  61. bufor, // bufor na dane
  62. 6, // ile znakow odczytac
  63. &przeczytano,// ile w rzeczywistosci odczytano
  64. NULL // wskaznik na strukture obslugujaca zdarzenia portu
  65. );
  66.  
  67.  
  68.  
  69. // etap szósty - zwolnienie portu
  70. CloseHandle(port); // zwolnienie uchwytu do portu
  71. // etap siódmy - przetworzenie odebranych danych
  72. wsprintf(pom,"%02X %02X %02X %02X %02X %02X",bufor[0], bufor[1], bufor[2], bufor[3], bufor[4], bufor[5]);
  73. // etap ósmy - wyswietlenie wyniku
  74. //odebrano->Caption = pom; //BC
  75. //odebrano.SetWindowText(pom); //VC
  76. //cout<<pom<<endl;
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement