1 / 1 / 0
Регистрация: 01.09.2009
Сообщений: 137
1

Работа с COM портом с библиотекой boost

13.05.2024, 16:12. Показов 135. Ответов 3

Author24 — интернет-сервис помощи студентам
Программа через библиотеку boost взаимодействует с оборудованием (ModBus). На плате TF316 «Байкал Т1» с ALT Linux наблюдаю странное поведение. Запросы из программы уходят, оборудование на них отвечает семью байтами, но на обработку приходит всегда 32 байта и через 4-5 ответов оборудования. Правильные данные появляются ещё реже. При периоде запроса меньше 0.5 секунды программа вообще виснет.
Код приёма ответов.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#if BOOST_VERSION >= 108200
void ThreadCommunication::readThread(void)
{
    try {
        port->async_read_some(
            boost::asio::buffer((char*)ReadData->GetData(),ReadData->GetSizeDataMax()),
                [&](error_code ec, size_t NumberBytesReceived)
                {
                    Send(ReadData,NumberBytesReceived);
 
                    if (!ec)
                       readThread();
                });
    } catch (...) {
        return;
    }
}
#else
void ThreadCommunication::readThread(void)
{
    std::size_t Count;
    if (ExitRead == false)
    {
        try {
            Count = port->read_some(
                boost::asio::buffer((char*)ReadData->GetData(),ReadData->GetSizeDataMax()));
        } catch (...) {
            ExitRead = true;
            return;
        }
        Send(ReadData,Count);
 
        if (!ec)
           readThread();
    }
}
#endif
Программа правильно работает на ПС с Windiws и Ubuntu и на Repka-Pi.
Как победить проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2024, 16:12
Ответы с готовыми решениями:

Работа с библиотекой Boost (asio)
Проблема заключается в том, что не могу правильно подключить библиотеку. вот вырезки из файлов...

Работа с COM портом
Всем доброго дня суток! Решил написать скрипт для опроса устройства через COM-порт. Возникла...

Работа с COM портом
админам: я не знал в какой конкретно раздел поместить данную тему. Переместите пожалуйста в нужный...

Работа с Com-портом
Доброго времени суток! Возникла проблема при передаче в принтер чеков Star tsp650 через COM...

3
904 / 275 / 56
Регистрация: 30.08.2017
Сообщений: 1,821
13.05.2024, 17:31 2
Написать в поддержку вендоров? Нет?
0
1 / 1 / 0
Регистрация: 01.09.2009
Сообщений: 137
13.05.2024, 18:13  [ТС] 3
"Байкаловцы" в такие дали не забирались. Увы.
0
904 / 275 / 56
Регистрация: 30.08.2017
Сообщений: 1,821
13.05.2024, 19:18 4
Зато на форуме кучи народа, работающих с "На плате TF316 «Байкал Т1» с ALT Linux "
0
13.05.2024, 19:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2024, 19:18
Помогаю со студенческими работами здесь

Работа с COM портом
по COM порту через Agilen подключается вольтметр с адресом 1. необходимо "прозвонить" все порты и...

С# работа с COM портом
Всем доброго времени суток, нужна ваша помощь. Есть девайсина, которая подключена к COM1. Нужно...

Работа с com портом
Всем привет! Возникла такая проблема. Я никогда до этого не работал с com-портами, и вот дали...

Работа с COM портом
Доброго времени суток, уважаемые форумчане! Помогите разобраться с COM портом. Хотя бы с чего...

Работа с COM-портом...
Добрый вечер, люди добрые! Помогите пожалуйста разобраться. Нужно мне подключить датчик пожарной...

работа с COM портом
помогите, пожалуйста, наладить правильную работу с COM- портом. У меня есть аналогово-цифровой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru