#ifndef FT232_REIGN_H
#define FT232_REIGN_H

#include <QMainWindow>
#include <qtimer.h>

#include <QtSerialPort/qserialport.h>
#include <QtSerialPort/qserialportinfo.h>

namespace Ui {
class ft232_reign;
}

class ft232_reign : public QMainWindow
{
    Q_OBJECT

public:
    explicit ft232_reign(QWidget *parent = 0);
    ~ft232_reign();

public slots:
    void tmr_fxn();

private slots:
    void toLog(QString info);
    QString char_to_str(char *data, int len);
    void on_clr_log_clicked();

    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

    void on_connect_clicked();

    void on_i2c_length_valueChanged(int arg1);

    void on_i2c_write_data_textChanged(const QString &arg1);

    void on_i2c_write_clicked();

    void on_i2c_read_clicked();

    void on_read_i2c_hid_desc_clicked();

    void on_read_hid_report_desc_clicked();

    void on_read_input_report_int_clicked();

    void on_read_input_report_cmd_clicked();

    void on_reflesh_com_clicked();

    void on_com_list_currentIndexChanged(int index);

    void on_com_connect_clicked();

    void on_com_int_line_currentIndexChanged(int index);

    void on_write_output_report_reg_clicked();

    void on_NUM_toggled(bool checked);

    void on_CAPS_clicked();

    void on_SCROOL_clicked();

    void on_cmd_reset_clicked();

    void on_write_output_report_cmd_clicked();

    void on_read_input_report_reg_clicked();

private:
    Ui::ft232_reign *ui;

    QList<QSerialPortInfo> com_list;
    QSerialPort com;
    int int_mask;

    QString log;
    int res;
    unsigned char data[1001];
    unsigned char i2c_hid_descr[30];

    QTimer *tmr;
};

#endif // FT232_REIGN_H
