jSSC (Java Simple Serial Connector) — библиотека для работы с последовательными (COM) портами ПК. Библиотека создавалась как простая и надёжная замена уже имеющимся средствам. Своё официальное, публичное начало она берёт в 2010 году и распространяется под лицензией LGPL.
С помощью jSSC можно получать имена портов, читать и писать данные, получать ивенты о произошедших событиях ну и т.д. В отличии от javax.comm, с jSSC можно управлять линиями RTS и DTR. Библиотека разрабатывалась для работы в режиме 24/7 в многопоточных системах и на данный момент успешно используется в системах автоматизации, сбора и регистрации данных.
Библиотеку можно использовать на таких платформах, как:
- Windows x86 и x64;
- Linux x86, x64, armhf и armsf (т.е. Raspberry Pi, Orange Pi, Banana Pi, NanoPi и тп);
- Solaris x86 и x64;
- Mac OS X ppc, ppc64, x86 и x64.
jSSC можно разделить на несколько основных частей:
SerialNativeInterface
– класс, который предоставляет доступ ко всем «нативным» методам jSSC.SerialPort
– класс, с помощью которого мы уже будем непосредственно работать с нужным нам портом.SerialPortEventListener
– интерфейс, который необходимо реализовать, если мы хотим использовать ивенты.
jSSC предоставляет следующий ряд возможностей:
- Чтение и запись данных;
- Управление линиями RTS, DTR;
- Получение статуса линий CTS, DSR, RING, RLSD;
- Получение количества байт в буферах;
- Очистка буферов порта;
- Отправка сигнала Break;
- Управление потоком;
- Получение списка com-портов в системе;
Где скачать jSSC
Последнюю версию скачать можно тут, на этой странице можно найти и исходный код. На данный момент доступна версия 2.8.0: jSSC-2.8.0-Release.zip, в архиве вы найдёте файл jssc.jar, его и добавьте в свои проекты. Если вам удобнее работать в Maven, тогда можете добавить следующую зависимость:
<!-- https://mvnrepository.com/artifact/org.scream3r/jssc --> <dependency> <groupId>org.scream3r</groupId> <artifactId>jssc</artifactId> <version>2.8.0</version> </dependency>
Примеры программ с jSSC
Получение имён последовательных портов
Получить список последовательных портов очень просто с помощью метода getPortNames()
. Метод возвращает массив отсортированы строк.
import jssc.SerialPortList; public class SerialPortListExample { public static void main(String[] args) { String[] portNames = SerialPortList.getPortNames(); for (String portName : portNames) { System.out.println(portName); } } }
Проверяем код:
- создаём java файл и вставляем код:
nano SerialPortListExample.java
- компилируем файл:
javac -classpath .:classes:jssc.jar SerialPortListExample.java
- запускаем программу:
java -classpath .:classes:jssc.jar SerialPortListExample
Результат
Запись строки
Записывать данные в последовательный порт можно при помощи следующих методов:
writeByte
— Запись одного байта в порт;public boolean writeByte(byte singleByte)
writeBytes
— Запись массива байтов в порт;public boolean writeBytes(byte[] buffer)
writeInt
— Запись INT значение (в диапазоне от 0 до 255 (0x00 — 0xFF)) в порт;public boolean writeInt(int singleInt)
writeIntArray
— Запись массива int (в диапазоне от 0 до 255 (0x00 — 0xFF)) в порт;public boolean writeIntArray(int[] buffer)
writeString
— Запись строки в порт;public boolean writeString(String string) public boolean writeString(String string, String charsetName)
Ниже приведённый пример кода будет запускаться на Windows 10 x64 и будет передавать привет Orange Pi PC, который и будет принимать приветы.
import java.io.UnsupportedEncodingException; import jssc.SerialPort; import jssc.SerialPortException; public class SerialTxExample { public static void main(String[] args) { /* * Передаём в конструктор имя порта */ SerialPort serialPort = new SerialPort("COM13"); try { /* * Открываем порт */ serialPort.openPort(); /* * Выставляем параметры */ serialPort.setParams(SerialPort.BAUDRATE_9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); /* * Передаём привет */ serialPort.writeString("Привет", "UTF-8"); } catch (SerialPortException ex) { ex.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } }
Чтение данных с использованием интерфейса SerialPortEventListener
Чтение данных из последовательного порта можно при помощи следующих методов:
public byte[] readBytes() public byte[] readBytes(int byteCount) public byte[] readBytes(int byteCount, int timeout) public String readHexString() public String readHexString(int byteCount) public String readHexString(int byteCount, int timeout) public String readHexString(int byteCount, String separator) public String readHexString(int byteCount, String separator, int timeout) public String readHexString(String separator) public String[] readHexStringArray() public String[] readHexStringArray(int byteCount) public String[] readHexStringArray(int byteCount, int timeout) public int[] readIntArray() public int[] readIntArray(int byteCount) public int[] readIntArray(int byteCount, int timeout) public String readString() public String readString(int byteCount) public String readString(int byteCount, int timeout)
Ниже приведённый пример кода будет запускаться на Orange Pi PC и принимать приветы, отправленные через последовательный порт. Все сообщения будут выводиться в терминал.
import jssc.SerialPort; import jssc.SerialPortEvent; import jssc.SerialPortEventListener; import jssc.SerialPortException; public class SerialPorRxTxSerialPortEventListenerExample { public static void main(String[] args) { /* * Передаём в конструктор имя порта */ SerialPort serialPort = new SerialPort("/dev/ttyS1"); try { /* * Открываем порт */ serialPort.openPort(); /* * Выставляем параметры */ serialPort.setParams(SerialPort.BAUDRATE_9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); /* * Готовим маску, на основании неё мы будем получать сообщения о событиях, * которые произошли. Ну например, нам необходимо знать что пришли * какие-то данные, т.о. в маске должна присутствовать следующая величина: * MASK_RXCHAR. Если нам, например, ещё нужно знать об изменении состояния * линий CTS и DSR, то маска уже будет выглядеть так: * SerialPort.MASK_RXCHAR + SerialPort.MASK_CTS + SerialPort.MASK_DSR */ int mask = SerialPort.MASK_RXCHAR; /* * Выставляем подготовленную маску */ serialPort.setEventsMask(mask); /* * Добавляем собственно интерфейс через который мы и будем узнавать о * нужных нам событиях */ serialPort.addEventListener(new SerialPortReader(serialPort)); } catch (SerialPortException ex) { ex.printStackTrace(); } } static class SerialPortReader implements SerialPortEventListener { private SerialPort serialPort; public SerialPortReader(SerialPort serialPort) { this.serialPort = serialPort; } public void serialEvent(SerialPortEvent event) { /* * Объект типа SerialPortEvent несёт в себе информацию о том какое событие * произошло и значение. Так например если пришли данные то метод * event.getEventValue() вернёт нам количество байт во входном буфере. */ if (event.isRXCHAR()) { if (event.getEventValue() > 0) { try { String buffer = serialPort.readString(); System.out.println(buffer); } catch (SerialPortException ex) { ex.printStackTrace(); } } } else if (event.isCTS()) { /* * Если изменилось состояние линии CTS, то метод event.getEventValue() * вернёт 1 если линия включения и 0 если выключена. */ if (event.getEventValue() == 1) { System.out.println("CTS - ON"); } else { System.out.println("CTS - OFF"); } } else if (event.isDSR()) { if (event.getEventValue() == 1) { System.out.println("DSR - ON"); } else { System.out.println("DSR - OFF"); } } } } }
Проверяем код:
- создаём java файл и вставляем код:
nano SerialExample.java
- компилируем файл:
javac -classpath .:classes:jssc.jar SerialExample.java
- запускаем программу:
java -classpath .:classes:jssc.jar SerialExample
Результат
Материалы
java-simple-serial-connector
Releases · scream3r/java-simple-serial-connector · GitHub
Работаем с COM-портом из Java при помощи jSSC / Хабр
Maven Repository: org.scream3r » jssc
мостбет кыргызстан http://shorts.borda.ru/?1-18-0-00000397-000-0-0 .
банкротство отзывы
buy iphone pro max iphone 8
1 вин вход http://www.pboarders.borda.ru/?1-11-0-00000929-000-0-0-1742818701 .
мостбет кыргызстан скачать http://shorts.borda.ru/?1-18-0-00000397-000-0-0/ .
биржа аккаунтов купить аккаунт на бирже
один вин https://www.boardwars.forum24.ru/?1-10-0-00000406-000-0-0 .
ваучер 1win http://boardwars.forum24.ru/?1-10-0-00000406-000-0-0 .
mostbet скачать на телефон бесплатно андроид http://www.kharkovbynight.forum24.ru/?1-15-0-00003047-000-0-0-1742814422 .
1 win.com http://yamama.forum24.ru/?1-11-0-00000459-000-0-0-1742818616/ .
1win online 1win online .
mosbet https://www.maksipolinovtsu.forum24.ru/?1-1-0-00000194-000-0-0-1742815870 .
1 win официальный сайт mymoscow.forum24.ru/?1-6-0-00026928-000-0-0 .
wan win http://mymoscow.forum24.ru/?1-6-0-00026928-000-0-0/ .
1 вин официальный сайт 1 вин официальный сайт .
mostbet mostbet .
игра 1вин http://dogzz.forum24.ru/?1-10-0-00000155-000-0-0-1742818537/ .
мастбет https://www.corgan.borda.ru/?1-0-0-00000265-000-0-0 .
мостбет вход мостбет вход .
1win win http://www.zdorovie.forum24.ru/?1-7-0-00000231-000-0-0-1742818050 .
mostbet kg отзывы mostbet kg отзывы .
1win букмекер https://www.knowledge.forum24.ru/?1-0-0-00000101-000-0-0-1742817704 .
1win онлайн 1win онлайн .
mostbet kg скачать mostbet kg скачать .
1wln https://belbeer.borda.ru/?1-6-0-00001583-000-0-0/ .
mostbet промокод http://girikms.forum24.ru/?1-1-0-00000361-000-0-0-1742819287/ .
1win букмекер https://belbeer.borda.ru/?1-6-0-00001583-000-0-0 .
мостбет кг https://girikms.forum24.ru/?1-1-0-00000361-000-0-0-1742819287/ .
mostbet официальный сайт alfatraders.borda.ru/?1-0-0-00004917-000-0-0-1743053068 .
мостбет скачать андроид http://www.hiend.borda.ru/?1-16-0-00000259-000-0-0-1743052953 .
mostber http://hiend.borda.ru/?1-16-0-00000259-000-0-0-1743052953 .
motsbet alfatraders.borda.ru/?1-0-0-00004917-000-0-0-1743053068 .
мостбет войти http://cah.forum24.ru/?1-3-0-00000096-000-0-0-1743053764 .
1вин войти 1вин войти .
мостбет кг https://cah.forum24.ru/?1-3-0-00000096-000-0-0-1743053764/ .
one win realistzoosafety.forum24.ru/?1-11-0-00001540-000-0-0-1742816894 .
ремонт холодильников ханса ремонт посудомоечных машин в москве
1 вин официальный сайт balashiha.myqip.ru/?1-12-0-00000437-000-0-0-1743258848 .
банкротство отзывы
Законное списание долгов по 127-ФЗ https://bankrotstvo-v-moskve95.ru .
мостбет скачать бесплатно https://svstrazh.forum24.ru/?1-18-0-00000136-000-0-0-1743260517 .
заказать роллы барнаул заказать суши недорого
1win betting https://1win13.com.ng/ .
win1 casino http://www.1win1001.top .
portofele electronice casino https://1win5010.ru .
скачать мостбет http://mostbet6011.ru/ .
ван вин http://www.1win6008.ru .
1win вход http://www.1win6045.ru .
thc vape for sale in prague prague 420
Витебский госуниверситет университет https://vsu.by П.М.Машерова — образовательный центр. Вуз является ведущим образовательным, научным и культурным центром Витебской области. ВГУ осуществляет подготовку: химия, биология, история, физика, программирование, педагогика, психология, математика.
1wi. http://www.1win6045.ru .
motbet https://mostbet5002.ru/ .
аренда авто адлер 2025 прокат авто в адлере цены без водителя
аренда автомобилей в сочи цена прокат авто сочи
заказать уборку коттеджа служба клининга
снять машину в прокат в москве аренда машины на неделю в москве
баланс 1win 1win5030.ru .
аренда авто в санкт петербурге посуточно аренда автомобиля на месяц спб
мостбет официальный сайт http://mostbet5003.ru .
мостбет http://mostbet6038.ru/ .
1win прямой эфир https://1win7004.ru .
мостбет скачать бесплатно https://www.mostbet7001.ru .
1вин приложение https://1win7017.ru/ .
1win 1win .
mostbet kg скачать mostbet7003.ru .
cazino md 1win5027.ru .
1win скачать kg https://1win7006.ru/ .
1win личный кабинет http://1win7018.ru/ .
the alarm cd alarm cd player
поддержка мостбет 1win5028.ru .
mostbet официальный сайт mostbet6033.ru .
1win зайти http://www.1win7007.ru .
mel bet сайт https://melbet1003.ru .
1win casino ug 1win casino ug .
Индивидуальный пошив штор
пошив штор на заказ пошив штор на заказ .
1 win регистрация 1 win регистрация .
мостбет кыргызстан скачать https://www.mostbet5010.ru .
Закажите уникальные шторы на заказ, для квартиры.
Премиальные шторы на заказ, с гарантией качества.
Изготовление штор на заказ, по вашим размерам.
Эксклюзивные шторы на заказ, подчеркивающие ваш стиль.
Пошив штор на заказ для кухни, с индивидуальным подходом.
Индивидуальный дизайн штор, быстро и качественно.
Пошив штор для нестандартных окон, с учетом особенностей помещения.
Эксклюзивные шторы на заказ, подчеркивающие вашу индивидуальность.
Минималистичные шторы на заказ, под любой интерьер.
Шторы на заказ с учетом ваших пожеланий, от ведущих мастеров.
Изготовление штор на заказ на любой вкус, воплощая ваши идеи.
Доступные цены на шторы на заказ, с высоким качеством.
Стильные шторы по вашему проекту, под ваш бюджет.
Индивидуальный пошив штор на заказ, с использованием лучших тканей.
Создание уникальных штор для любой комнаты, по мере необходимости.
Пошив штор на заказ с индивидуальным подходом, под любой стиль.
сшить шторы на заказ сшить шторы на заказ . прокарниз
aviator mostbet https://www.mostbet5009.ru .
Дизайнерские шторы на заказ
пошив штор на заказ пошив штор на заказ .
1win партнерская программа вход https://www.1win7010.ru .
мостбет казино войти мостбет казино войти .
Оригинальные римские шторы на заказ
римские шторы на заказ римские шторы на заказ .
Шторы на лесных участках: особенности выбора
шторы в загородном доме шторы в загородном доме .»Ткацкий»
мостбет кг мостбет кг .
olympe casino cresus: olympe casino avis — casino olympe
pin up azerbaijan pin up azerbaijan .
olympe casino avis casino olympe
мостбет скачать бесплатно http://mostbet7006.ru .
Закажите уникальные шторы на заказ, отличное качество.
Премиальные шторы на заказ, с гарантией качества.
Изготовление штор на заказ, под любой стиль.
Лучшие ткани для штор на заказ, подчеркивающие ваш стиль.
Заказать шторы на заказ для спальни, с индивидуальным подходом.
Надежное изготовление штор на заказ, под любой бюджет.
Пошив штор для нестандартных окон, по желанию.
Эксклюзивные шторы на заказ, от профессионалов.
Современные шторы на заказ, под любой интерьер.
Пошив штор на заказ по индивидуальным меркам, от ведущих мастеров.
Премиальные ткани для штор на заказ, под любой интерьер.
Пошив штор по индивидуальному проекту, с высоким качеством.
Стильные шторы по вашему проекту, под любой стиль интерьера.
Дизайнерские шторы на заказ, подчеркните стиль вашего помещения.
Пошив штор по индивидуальному дизайну, от профессиональных мастеров.
Пошив штор на заказ с индивидуальным подходом, по желанию клиента.
сшить шторы на заказ сшить шторы на заказ . Прокарниз
Сшить шторы на заказ по индивидуальному проекту, для офиса.
Идеальные шторы по вашим размерам, с гарантией качества.
Пошив штор по индивидуальному дизайну, под ваш интерьер.
Лучшие ткани для штор на заказ, высокое качество материалов.
Заказать шторы на заказ для спальни, с индивидуальным подходом.
Профессиональный пошив штор по вашим размерам, под любой бюджет.
Создание штор на заказ из натуральных тканей, по желанию.
Эксклюзивные шторы на заказ, по вашему желанию.
Современные шторы на заказ, с учетом светотени.
Шторы на заказ с учетом ваших пожеланий, по вашему стилю.
Креативные шторы на заказ, воплощая ваши идеи.
Пошив штор по индивидуальному проекту, с доставкой по Москве и регионам.
Элегантные шторы на заказ, под ваш бюджет.
Дизайнерские шторы на заказ, подчеркните стиль вашего помещения.
Пошив штор по индивидуальному дизайну, от профессиональных мастеров.
Пошив штор на заказ с индивидуальным подходом, под любой стиль.
сшить шторы на заказ сшить шторы на заказ . Prokarniz
1winn https://www.1win7012.ru .
olympe casino en ligne olympe
мостбет промокод https://mostbet6040.ru .
olympe casino cresus casino olympe
Шторы в загородном доме: идеи и советы
шторы в загородном доме шторы в загородном доме .+7 (499) 460-69-87
Для максимально быстрого продвижения по карьерной лестнице требуется наличие диплома университета. Заказать диплом о высшем образовании у надежной организации: dip-lom-rus.ru/kupit-diplom-nastoyashij-3/
olympe casino cresus: olympe casino — olympe casino cresus
olympe casino avis: olympe casino — olympe casino
olympe casino olympe casino