rika
rika10 февраля 2019 г. 22:45

Help sending files via COM port

I have 2 separate computers connected by COM port, I want to write an application in QT to send 1 txt file from machine 1 to machine 2. Do you have any specific examples about it? I really need them. Thank you.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

7
Evgenii Legotckoi
  • 11 февраля 2019 г. 4:27

Hello,

I think, the same example in this article . This article was wrote by another user. But, in my opinion, it is nearest example with serial port for your question on this site.

    rika
    • 25 февраля 2019 г. 3:02
    • (ред.)

    Thank you for your help. I did it. But I have some problems, this is my code:
    I only sent 1 txt file, but when I received it, I received 3 txt files, the first file was divided into 3 files.

    void MayInternet::serialReceived()
    {
    //Tao file nhan
    QDateTime local= QDateTime::currentDateTime();
    bool checkfile=true;
    if (checkfile)
    {
        QString filename="TinNhan"+local.date().toString("dd.MM.yyyy")+local.time().toString("hh.mm.ss")+".txt";
        if (Name!=filename)
        {
            Name=filename;
            checkfile=false;
        }
    }
    QFile file(Name);
    if (!file.open(QFile::Append | QFile::Text))
    {
        QMessageBox::warning(this, "Canh bao", "Khong tao duoc file / File khong ton tai. " + file.errorString());
        return ;
    }
    //Kiem tra du lieu tu cong va ghi vao file
    if(serialPort->bytesAvailable())
    {
        QByteArray datas = serialPort->readAll();
        if(datas.size()>0)
        {
            if(file.isOpen())
            {
                 QTextStream in(&file);
                 in<<datas;                 
            }
            file.close();
        }
        else {
            QMessageBox::warning(this, "Cảnh báo", "Không có dữ liệu. " + file.errorString());
            return;
        }
        if(serialPort->atEnd())
        {
            checkfile=true;
        }
    }
    
      Evgenii Legotckoi
      • 25 февраля 2019 г. 4:17

      Hello,

      I think. It is technology limitation. You can't send big file in one message. Just concatenate this several messages to one file.

        rika
        • 1 марта 2019 г. 3:00

        I have another question: I use 9-pin COM port, I want PC1 just send only, PC2 only receive. Therefore I connect Tx of COM1 (PC1) to Rx of COM2 (PC2). In my file.txt there is MD5 to check PC2, if the received PC2 file is match with the original file. if the file is not match, how to PC1 be aware and send it again (without the connect Tx of PC2 to Rx of PC1

          Evgenii Legotckoi
          • 1 марта 2019 г. 5:47

          Sorry, I don't know this moment.

            rika
            • 4 марта 2019 г. 5:38
            • (ред.)

            I have another question:I want to read data from the COM port and write to the txt file, after I finish writing, I will open the file and display the screen. The problem I have is, I have not received all the data, they have been displayed on the screen, and the data is not fully received. This is my code:

            doc () is the function that displays the screen

                QByteArray datas = serialPort->readAll();
                if(datas.size()>0)
                {
                    if(file.isOpen())
                    {
                         QTextStream in(&file);
                         in<<datas;
                    }
                    file.close();
            
                }
                else {
                    QMessageBox::warning(this, "Cảnh báo", "Không có dữ liệu. " + file.errorString());
                    return;
                }
            if(serialPort->atEnd())
            {
                doc();
            }
            
              Evgenii Legotckoi
              • 5 марта 2019 г. 3:33

              Do you have all information in txt file if you open this file in standard windows notepad?

              Under Windows OS method readAll() works badly.

              Try this variant

              QFile inputFile(fileName);
              if (inputFile.open(QIODevice::ReadOnly))
              {
                 QTextStream in(&inputFile);
                 while (!in.atEnd())
                 {
                    QString line = in.readLine();
                    ...
                 }
                 inputFile.close();
              }
              

                Комментарии

                Только авторизованные пользователи могут публиковать комментарии.
                Пожалуйста, авторизуйтесь или зарегистрируйтесь
                AD

                C++ - Тест 004. Указатели, Массивы и Циклы

                • Результат:50баллов,
                • Очки рейтинга-4
                m
                • molni99
                • 26 октября 2024 г. 8:37

                C++ - Тест 004. Указатели, Массивы и Циклы

                • Результат:80баллов,
                • Очки рейтинга4
                m
                • molni99
                • 26 октября 2024 г. 8:29

                C++ - Тест 004. Указатели, Массивы и Циклы

                • Результат:20баллов,
                • Очки рейтинга-10
                Последние комментарии
                i
                innorwall15 ноября 2024 г. 10:27
                Релиз утилиты развертывания С++/Qt и QML приложений CQtDeployer v1.4.0 (Binary Box) optionally substituted alkoxy, optionally substituted alkenyloxy, optionally substituted alkynyloxy, optionally substituted aryloxy, OCH, OC H, OC H, OC H, OC H, OC H, OC H, O C CH, OCH CH OH, O…
                i
                innorwall15 ноября 2024 г. 5:26
                Qt/C++ - Урок 031. QCustomPlot - строим график по времени buy generic priligy We can just chat, and we will not lose too much time anyway
                i
                innorwall15 ноября 2024 г. 3:03
                Qt/C++ - Урок 060. Настройка внешнего вида приложения в рантайме I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
                i
                innorwall14 ноября 2024 г. 19:42
                Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
                Сейчас обсуждают на форуме
                i
                innorwall14 ноября 2024 г. 11:39
                добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
                i
                innorwall11 ноября 2024 г. 18:55
                Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
                9
                9Anonim25 октября 2024 г. 16:10
                Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
                ИМ
                Игорь Максимов3 октября 2024 г. 11:05
                Реализация навигации по разделам Спасибо Евгений!

                Следите за нами в социальных сетях