Отправка файла через ком-порт всегда останавливается на определенном количестве строк в файлеC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Отправка файла через ком-порт всегда останавливается на определенном количестве строк в файле

Сообщение Anonymous »

Я пытаюсь отправить текстовый файл через COM-порт на плоттер. Программа считывает строку из txt-файла, отправляет ее через COM-порт на плоттер и ожидает подтверждения, представляющего собой одиночный знак ';'. символ.
Проблема в том, что после отправки 12290-й строки из txt-файла программа всегда "останавливается" (независимо от того, что содержит эта строка или следующая строка), а это значит, что он ждет подтверждения. Я не могу проверить его, но вполне уверен, что оно было отправлено, поскольку плоттер перезагрузится, если не сможет отправить через COM-порт.
Я не могу понять, в чем проблема.

Код: Выделить всё

int main(int argc, char ** argv)
{
HANDLE port = CreateFile(L"\\\\.\\COM12", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if((port == INVALID_HANDLE_VALUE) || (port == NULL))
{
DWORD error = GetLastError();
fprintf(stderr, "Could not open port.  Error 0x%lx.\n", error);
return 1;
}

initcomport(port);

DWORD flags = EV_RXFLAG;
BOOL success = SetCommMask(port, flags);
if (!success)
{
fprintf(stderr, "Could not set comm mask.\n");
}

OVERLAPPED osStatus = {0};
osStatus.hEvent = CreateEvent(NULL, true, false, NULL);
assert(osStatus.hEvent);
if( osStatus.hEvent == NULL ) // error creating overlapped event handle
{
return -1;
}

std::string line;
std::string PltFilename;
std::cout  PltFilename;

std::ifstream fin(PltFilename);
if(!fin)
{
return -1;
}

int cmd_done_flag = 0;

DWORD dwCommEvent = 0;
BOOL fWaitingOnStat = FALSE;

while (true)
{
if(std::getline(fin,line))
{
cmd_done_flag = 0;
m_transmit(port, osStatus, line, 255);
}
else
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78546049/sending-file-via-com-port-always-stops-at-a-particular-number-of-line-in-file[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Android Studio Debugger не останавливается в точках останова в определенном файле
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Android Studio Debugger не останавливается в точках останова в определенном файле
    Anonymous » » в форуме Android
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Android Studio Debugger не останавливается в точках останова в определенном файле
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Android Studio Debugger не останавливается в точках останова в определенном файле
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Страница на большом количестве строк с использованием Scilezize и MySQL
    Anonymous » » в форуме MySql
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»