Outils pour utilisateurs

Outils du site


projets:telecommande_apn:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
telecommande_apn:accueil [2013/04/28 15:03] vlamoineprojets:telecommande_apn:accueil [2017/03/19 15:56] – modification externe 127.0.0.1
Ligne 189: Ligne 189:
  #endif // USB_fz_H  #endif // USB_fz_H
  
 +usb_fz.cpp
 + #include "usb_fz.h"
 + #include "ui_usb_fz.h"
 +
 + USB_fz::USB_fz(QWidget *parent) :
 +     QMainWindow(parent),
 +     ui(new Ui::USB_fz)
 + {
 +     init_port(); // initialisation du port
 +     ui->setupUi(this);
 +     connect(ui->btnFocus, SIGNAL(clicked(bool)), this, SLOT(transmitFocus(void)));
 +     connect(ui->btnShoot, SIGNAL(clicked(bool)), this, SLOT(transmitShoot(void)));
 +     connect(ui->slider, SIGNAL(sliderMoved(int)), this, SLOT(transmitCmd(int)));
 +     transmitCmd(1);
 + }
 +
 + USB_fz::~USB_fz()
 + {
 +     delete ui;
 + }
 +
 + void USB_fz::init_port(void)
 + {
 +     QString dev_port = "/dev/ttyUSB0";
 +     port = new QextSerialPort(dev_port); // On ouvre le port
 +     // "ls /dev | grep USB" Permet de donner la liste des périphériques USB
 +
 +      port->open(QIODevice::ReadWrite | QIODevice::Unbuffered);
 +     if(!port->isOpen())
 +     {
 + QMessageBox::warning(this, "Impossible d'ouvrir le port", dev_port);
 +     }
 +
 +     // On parametre la liaison :
 +     port->setBaudRate(BAUD9600);
 +     port->setFlowControl(FLOW_OFF);
 +     port->setParity(PAR_NONE);
 +     port->setDataBits(DATA_8);
 +     port->setStopBits(STOP_1);
 + }
 +
 + void USB_fz::transmitFocus(void)
 + {
 +     QByteArray byte; // Byte a envoyer
 +     byte.clear(); // On efface le contenu de byte
 +     byte.append('f'); // On ajoute 'f' dans byte
 +
 +     if(port != NULL){ // On vérifie que le port existe toujours
 + port->write(byte); // On écrit le(s) byte
 + qDebug() << "Value sent: f";
 + port->flush(); // On attend la fin de la transmission
 +     }
 + }
 +
 + void USB_fz::transmitShoot(void)
 + {
 +     QByteArray byte;
 +
 +     byte.clear();
 +     byte.append('s');
 +
 +     if(port != NULL){
 + port->write(byte);
 + qDebug() << "Value sent: s";
 + port->flush();
 +     }
 + }
 +
 + void USB_fz::transmitCmd(int cmd)
 + {
 +     ui->lcdNumber->display(cmd*100);
 +     QByteArray byte;
 +
 +     byte.clear();
 +     byte.append(cmd);
 +
 +     if(port != NULL){
 + port->write(byte);
 + qDebug() << "Value sent:" << cmd;
 + port->flush();
 +     }
 + }
 +
 +usb_fz.ui
 + <?xml version="1.0" encoding="UTF-8"?>
 + <ui version="4.0">
 + <class>USB_fz</class>
 + <widget class="QMainWindow" name="USB_fz">
 +   <property name="geometry">
 +    <rect>
 +     <x>0</x>
 +     <y>0</y>
 +     <width>254</width>
 +     <height>146</height>
 +    </rect>
 +   </property>
 +   <property name="sizePolicy">
 +    <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
 +     <horstretch>0</horstretch>
 +     <verstretch>0</verstretch>
 +    </sizepolicy>
 +   </property>
 +   <property name="minimumSize">
 +    <size>
 +     <width>254</width>
 +     <height>146</height>
 +    </size>
 +   </property>
 +   <property name="maximumSize">
 +    <size>
 +     <width>254</width>
 +     <height>146</height>
 +    </size>
 +   </property>
 +   <property name="windowTitle">
 +    <string>USB FZ200</string>
 +   </property>
 +   <widget class="QWidget" name="centralWidget">
 +    <widget class="QPushButton" name="btnFocus">
 +     <property name="geometry">
 +      <rect>
 +       <x>10</x>
 +       <y>10</y>
 +       <width>111</width>
 +       <height>51</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +      </font>
 +     </property>
 +     <property name="text">
 +      <string>Focus</string>
 +     </property>
 +    </widget>
 +    <widget class="QPushButton" name="btnShoot">
 +     <property name="geometry">
 +      <rect>
 +       <x>130</x>
 +       <y>10</y>
 +       <width>111</width>
 +       <height>51</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +       <weight>75</weight>
 +       <bold>true</bold>
 +      </font>
 +     </property>
 +     <property name="text">
 +      <string>Shoot</string>
 +     </property>
 +    </widget>
 +    <widget class="QLabel" name="label">
 +     <property name="geometry">
 +      <rect>
 +       <x>10</x>
 +       <y>80</y>
 +       <width>261</width>
 +       <height>17</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +      </font>
 +     </property>
 +     <property name="text">
 +      <string>Durée rafale :                    ms</string>
 +     </property>
 +    </widget>
 +    <widget class="QLCDNumber" name="lcdNumber">
 +     <property name="geometry">
 +      <rect>
 +       <x>130</x>
 +       <y>70</y>
 +       <width>81</width>
 +       <height>31</height>
 +      </rect>
 +     </property>
 +     <property name="font">
 +      <font>
 +       <pointsize>14</pointsize>
 +      </font>
 +     </property>
 +     <property name="segmentStyle">
 +      <enum>QLCDNumber::Flat</enum>
 +     </property>
 +     <property name="intValue" stdset="0">
 +      <number>100</number>
 +     </property>
 +    </widget>
 +    <widget class="QSlider" name="slider">
 +     <property name="geometry">
 +      <rect>
 +       <x>40</x>
 +       <y>110</y>
 +       <width>160</width>
 +       <height>29</height>
 +      </rect>
 +     </property>
 +     <property name="minimum">
 +      <number>1</number>
 +     </property>
 +     <property name="maximum">
 +      <number>20</number>
 +     </property>
 +     <property name="orientation">
 +      <enum>Qt::Horizontal</enum>
 +     </property>
 +    </widget>
 +   </widget>
 + </widget>
 + <layoutdefault spacing="6" margin="11"/>
 + <resources/>
 + <connections/>
 + </ui>
 +
 +Compiler le programme en cliquant sur la flèche verte en bas à gauche. Le programme se lance, si l'Arduino est branché tout devrait marcher comme avec le terminal :-)
 +
 +{{ :telecommande_apn:usb_fz.png |}}
projets/telecommande_apn/accueil.txt · Dernière modification : 2024/04/26 14:48 de 127.0.0.1