Существует ли библиотека Java или инфраструктура для доступа к последовательным портам? [закрыто]

В C ++ следующая процедура будет производить все комбинации расстояния длины (сначала k) между диапазоном [первым, последним]:

#include <algorithm>

template <typename Iterator>
bool next_combination(const Iterator first, Iterator k, const Iterator last)
{
   /* Credits: Mark Nelson http://marknelson.us */
   if ((first == last) || (first == k) || (last == k))
      return false;
   Iterator i1 = first;
   Iterator i2 = last;
   ++i1;
   if (last == i1)
      return false;
   i1 = last;
   --i1;
   i1 = k;
   --i2;
   while (first != i1)
   {
      if (*--i1 < *i2)
      {
         Iterator j = k;
         while (!(*i1 < *j)) ++j;
         std::iter_swap(i1,j);
         ++i1;
         ++j;
         i2 = k;
         std::rotate(i1,j,last);
         while (last != j)
         {
            ++j;
            ++i2;
         }
         std::rotate(k,i2,last);
         return true;
      }
   }
   std::rotate(first,k,last);
   return false;
}

Его можно использовать следующим образом:

#include <string>
#include <iostream>

int main()
{
    std::string s = "12345";
    std::size_t comb_size = 3;
    do
    {
        std::cout << std::string(s.begin(), s.begin() + comb_size) << std::endl;
    } while (next_combination(s.begin(), s.begin() + comb_size, s.end()));

    return 0;
}

Это напечатает следующее:

123
124
125
134
135
145
234
235
245
345
16
задан Azder 14 April 2009 в 13:22
поделиться

4 ответа

Как заметил Андри, RXTX , по сути, ваш лучший выбор. Здесь есть статья , посвященная началу работы с RXTX в Windows (относящаяся к RXTX 2.1).

11
ответ дан 30 November 2019 в 12:51
поделиться

Наиболее распространенный каркас, используемый для этого, - rxtx .

12
ответ дан 30 November 2019 в 12:51
поделиться

Если бесплатно не нужно - помните, ваше время не свободно - тогда Serial IO SerialPort может быть полезен. Это единственное, что я обнаружил, что работает как есть на всех следующих:

  • 32/64-битная Windows
  • 64-битная Solaris (не тестировала 32-битная)
  • 32-битная Linux (не 64-битный тест)
  • Mac OS X

Вы получаете исходный код с продуктом, хотя и с некоторыми странными и раздражающими методами сборки.

FWIW, я просто довольный пользователь, не связанный с компания.

5
ответ дан 30 November 2019 в 12:51
поделиться

rxtx, как говорили другие авторы. Я использовал это, и это работает хорошо. Существует проблема, если использовать нестандартные высокоскоростные скорости передачи (кратны 115200, например, 230400, 921600 в порядке, но 1 МБ - нет, даже если аппаратное обеспечение и соответствующая ОС поддерживают его), мне сказали, что это будет исправлено в rxtx 2.2.

0
ответ дан 30 November 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: