fork download
  1. #include "stdafx.h"
  2.  
  3.  
  4. #include <windows.h>
  5. #include <iostream>
  6. using namespace std;
  7. int n=0;
  8. char var;
  9.  
  10.  
  11. HANDLE hSerial;
  12. void ReadCOM()
  13. {
  14. DWORD iSize;
  15. char sReceivedChar;
  16. while (true)
  17. {
  18. ReadFile(hSerial, &sReceivedChar, 1, &iSize, 0); // получаем 1 байт
  19. if (iSize > 0) // если что-то принято, выводим
  20. cout << sReceivedChar;
  21. }
  22. }
  23.  
  24. int _tmain(int argc, _TCHAR* argv[])
  25. {
  26.  
  27.  
  28.  
  29. LPCTSTR sPortName = L"COM3";
  30.  
  31.  
  32.  
  33. hSerial = ::CreateFile(sPortName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  34.  
  35. if (hSerial == INVALID_HANDLE_VALUE)
  36. {
  37. if (GetLastError() == ERROR_FILE_NOT_FOUND)
  38. {
  39. cout << "serial port does not exist.\n";
  40. }
  41. cout << "some other error occurred.\n";
  42. }
  43.  
  44.  
  45. DCB dcbSerialParams = { 0 };
  46. dcbSerialParams.DCBlength = sizeof(dcbSerialParams);
  47. if (!GetCommState(hSerial, &dcbSerialParams))
  48. {
  49. cout << "getting state error\n";
  50. }
  51. dcbSerialParams.BaudRate = CBR_9600;
  52. dcbSerialParams.ByteSize = 8;
  53. dcbSerialParams.StopBits = ONESTOPBIT;
  54. dcbSerialParams.Parity = NOPARITY;
  55. if (!SetCommState(hSerial, &dcbSerialParams))
  56. {
  57. cout << "error setting serial port state\n";
  58. }
  59.  
  60. do
  61. {
  62. cout << "0- on, 1- off, 4 -exit\n";
  63. cin >> n;
  64. switch (n)
  65. {
  66. case 1:
  67. cout << "OFF\n";
  68. var = 0x31;
  69. break;
  70.  
  71. case 0:
  72. cout << "ON\n";
  73. var = 0x30;
  74. break;
  75. case 4:
  76. exit(EXIT_SUCCESS);
  77. break;
  78. default:
  79. cerr << "WRONG" << endl;
  80.  
  81. }
  82. } while (n != 4);
  83.  
  84.  
  85. char data[] = {var}; // строка для передачи
  86. DWORD dwSize = sizeof(data); // размер этой строки
  87. DWORD dwBytesWritten; // тут будет количество собственно переданных байт
  88.  
  89.  
  90.  
  91. BOOL iRet = WriteFile(hSerial, data, dwSize, &dwBytesWritten, NULL);
  92.  
  93.  
  94. return 0;
  95. }
  96.  
  97.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:1:20: fatal error: stdafx.h: No such file or directory
compilation terminated.
stdout
Standard output is empty