INT 21h

Домашняя страница самого страшного прерывания

C++: Библиотека для работы с последовательным портом

№ 4518 В разделе "Программирование" от September 17th, 2012,

Ну не люблю я писать каждый раз все руками и поэтому использую готовые библиотеки. Нашел в сети библиотечку для работы с последовательным портом и охренел от говнокода в ней. Простой красивый код был изговнякан какими-то нелепыми массивами и прочими фифтифлюшками. Библиотека по идее многоплатформенная, но я делаю программы только для Linux, то и патчил соответственно только линуксовую часть.

Скачать serial_port_library.tar.lzma

Работать с библиотекой вообще супер просто. Оригинальная документация и код лежат здесь, но я переписал немножко код и поэтому документация стала чуть менее актуальной.

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

#include "rs232.h"

int main(void) {
    printf("Configuring...\n");
    int BAUD=9600;
    char* PORT="/dev/ttyACM0";
    unsigned char my_byte;

    printf("Opening serial port...\n");
    if(OpenComport(PORT, BAUD))
    {
    printf("Can not open comport\n");
    return(1);
    }
    printf("Sending byte sequence...\n");
    my_byte = 0x30;
    SendByte(my_byte);
    my_byte = 0x0A;
    SendByte(my_byte);
    my_byte = 0x32;
    SendByte(my_byte);
    my_byte = 0x33;
    SendByte(my_byte);
    my_byte = 0x34;
    SendByte(my_byte);
    printf("Closing serial port...\n");
    CloseComport();
    return 0;
}

Послать байт, принять байт… ваще ноль сложностей!

7 комментариев »

7 комментариев »

Comment by Александр | October 12, 2012 @ 18:04:32

А есть библиотеки для работы на Symbian OS. Уже около месяца ищу.

Comment by 21h | October 12, 2012 @ 22:02:45

не видел. помоему симбиан это уже извращенная некрофилия.

Comment by Роман | November 12, 2012 @ 15:39:39

Возможно ли отправить строку в порт и вывести ответ на экран если да то как?

Comment by Роман | November 12, 2012 @ 15:46:10

Я делаю printf в порт устройство выполняет команду но ответа я не вижу в терминале хотя устройство возвращает ответ.

Comment by 21h | November 12, 2012 @ 18:50:52

а с чего вы взяли, что вывод будет, если вы посылаете данные, но даже не пытаетесь читать ответ?

Comment by Роман | November 12, 2012 @ 20:49:13

Каким образом читать ответ ? и возможно ли вашим классом отправить строку и параллельно читать ответ ?

Comment by 21h | November 12, 2012 @ 20:55:42

Никаким образом ответ не прочитать. Функцию чтения нужно реализовывать самостоятельно. Вы могли бы это понять сами, если бы открыли код и как минимум посмотрели.

Форма отправки комментария

*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • 21h: нене ) без меня )
  • Серегй: Не совсем грабить)) если грабить можно и без рации, есть более благие цели, вы просто ответьте на мой вопрос,...
  • 21h: магазин грабить собрались? ) не, тут я не помощник ;)
  • Серегй: А что бы мне поймать чужую волну, что мне для этого нужно сделать? Допустим я купил данную рацию себе, мне...
  • 21h: слушать никто не запрещает. нет закона, который запрещает слушать. те, кто говорит иначе нагло врут. а если...
  • Серегй: Я хотел узнать могу ли я просто прийти с данной рацией baofeng uv-5r, допустим на объект, ну или вообще...
  • 21h: У меня есть только эти 2. По другим ничего не знаю. В интернете можно скачать инструкцию к вашей модели рации,...
  • Серегй: Добрый день! Хотелось бы задать пару вопросов по поводу раций, у Вас есть куда можно обратиться ТАТ.
  • 21h: потому, что нейросетью проще. яркость светофора меняется в зависимости от времени суток от маленькой красной...
  • Михаил: А зачем нейросеть? Почему цвет светофора определить без нейросетей?