Форум программистов, компьютерный форум, киберфорум
Наши страницы

Старый добрый COMPORT - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Где можно скачать компонент ComPort? http://www.cyberforum.ru/cpp/thread1486579.html
Где можно скачать компонент ComPort? Весь гугл перерыл, ничего толкового найти не удалось. Самое нормальное нашёл тут http://www.torry.net/quicksearchd.php?String=comport&Title=Yes но это триал,...
C++ Определить резидентные драйверы в памяти компьютера /*--------------"Просмотр списка драйверов."--------------*/ #include <dos.h> #include <conio.h> /*-----------------------Константы----------------------- */ #define byte unsigned char #define... http://www.cyberforum.ru/cpp/thread1484395.html
Проектирование программы: методы и литература по теме C++
Собираюсь написать большой серьезный проект и для этого мне необходимо понимать, как правильно спроектировать свою будущую программу. Какую литературу на эту тему прочитать? Что посоветуете?
C++ Контрастирование, прореживание, построение гистограммы tiff изображения и переформатирование в bmp формат
Ребят , кто может , отзовитесь!!! Срочно нужна помощь знающих людей! В этой программе прореживание должно делаться по вот этой формуле \sqrt{\prod_{1,n}{\sqrt{\prod_{1,n}^{ }}}}\alpha. Вообщем,...
C++ Копирование данных из выпадащих списков - есть ли такая программа? http://www.cyberforum.ru/cpp/thread1481497.html
Всем приветы! Сорри, если написал не в ту тему. Очень нужна помощь вот по какому вопросу: есть один сайт государственной технической библиотеки по следующему адресу: ВебИрбис В нем есть...
C++ Требуется написание транспонированной матрицы на VHDL Всем доброго времени суток! Никак не получается у меня допетрить, что вообще делать тут: Написать и провести тестирование функции и процедуры транспонирования матрицы, элементами которой являются... подробнее

Показать сообщение отдельно
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
26.06.2015, 03:55
Цитата Сообщение от Триган Посмотреть сообщение
У меня C++ Bulder.
На счет этого не в курсе, но

Цитата Сообщение от Триган Посмотреть сообщение
идём по другому пути.

ГКОД с примером (Gtkmm3.0 + boost::asio::serial_port, ide - codeblocks(gcc), os - ubuntu):
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <string>
#include <vector>
#include <functional>
 
#include <boost/asio/serial_port.hpp>
#include <gtkmm.h>
 
class SPWiter
{
public:
    SPWiter( unsigned int baud, const std::string & deviceName )
        : m_serialPort ( m_io_service, deviceName )
    {
        if ( !m_serialPort.is_open() )
        {
            std::cerr << "error: can not open \"" << deviceName << "\" device\n" ;
            return ;
        }
        m_serialPort.set_option( boost::asio::serial_port_base::baud_rate( baud ) ) ;
        m_serialPort.set_option( boost::asio::serial_port_base::character_size( 8 ) ) ;
        m_serialPort.set_option( boost::asio::serial_port_base::stop_bits( boost::asio::serial_port_base::stop_bits::one ) ) ;
        m_serialPort.set_option( boost::asio::serial_port_base::parity( boost::asio::serial_port_base::parity::none ) ) ;
        m_serialPort.set_option( boost::asio::serial_port_base::flow_control( boost::asio::serial_port_base::flow_control::none ) ) ;
 
    }
    void write ( const std::vector<char> & data )
    {
        if ( m_serialPort.is_open() )
            m_serialPort.write_some ( boost::asio::buffer ( data ) ) ;
    }
 
    ~SPWiter()
    {
        if ( m_serialPort.is_open() ) {
            m_serialPort.cancel();
            m_serialPort.close();
        }
        m_io_service.stop();
        m_io_service.reset();
    }
 
 
 
private:
    boost::asio::io_service m_io_service ;
    boost::asio::serial_port m_serialPort ;
} ;
 
 
 
class MainWindow : public Gtk::Window
{
public:
    MainWindow ()
        : writer ( 9600 , "/dev/ttyUSB0" )
    {
        set_default_size( 200 , 200 ) ;
 
        m_buttonOn.set_border_width( 10 ) ;
        m_buttonOn.set_label( "LED ON" ) ;
        m_buttonOn.signal_clicked().connect ( std::bind( &SPWiter::write, &writer, std::vector<char>{'1'} ) ) ;
 
        m_buttonOff.set_border_width( 10 ) ;
        m_buttonOff.set_label( "LED OFF" ) ;
        m_buttonOff.signal_clicked().connect ( std::bind( &SPWiter::write, &writer, std::vector<char>{'0'} ) ) ;
 
        m_mainVBox.pack_start ( m_buttonOn ) ;
        m_mainVBox.pack_start ( m_buttonOff ) ;
        add ( m_mainVBox ) ;
        show_all_children() ;
    }
    ~MainWindow() {}
private:
    Gtk::Button m_buttonOff ;
    Gtk::Button m_buttonOn ;
    Gtk::VBox m_mainVBox ;
    SPWiter writer ;
} ;
 
 
 
 
 
int main( int argc , char ** argv )
{
    Glib::RefPtr < Gtk::Application > application = Gtk::Application::create( argc, argv ) ;
    MainWindow mainWindow ;
    mainWindow.set_position( Gtk::WindowPosition::WIN_POS_CENTER  ) ;
    return application->run( mainWindow ) ;
}

И код в самом uno(использовал Serial, но не суть):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int ledPin = 9 ;
 
void setup() {
  pinMode ( ledPin , OUTPUT ) ;
  digitalWrite ( ledPin , LOW ) ;
  Serial.begin ( 9600 ) ;
}
 
void loop() {
  int incomingByte = 0 ;
  if ( Serial.available () > 0 )
  {
    incomingByte = Serial.read() ;
    if ( incomingByte == '1' )
    {
      digitalWrite ( ledPin , HIGH ) ;
    } else
    {
      digitalWrite ( ledPin , LOW ) ;
    }
  }
}
результат работы ГКОДА
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru