68 lines
1.6 KiB
C++
68 lines
1.6 KiB
C++
#ifndef USBCAN_H
|
|
#define USBCAN_H
|
|
|
|
#include <QWidget>
|
|
#include <slcan.h>
|
|
#include "ProjectSettings.h"
|
|
class Send_CMD;
|
|
|
|
static void __stdcall Device_Callback(HSLCAN cbDevice, DWORD dwIndex, DWORD dwOperation, PVOID pContext, DWORD dwContextSize);
|
|
static void __stdcall DeviceList_Callback(HSLCAN cbDevice, DWORD dwIndex, PVOID pContext, DWORD dwContextSize);
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
namespace Ui { class CanUsb; }
|
|
QT_END_NAMESPACE
|
|
|
|
struct CB_FLAGS{
|
|
unsigned AvailableDevicesListHasBeenChanged:1;
|
|
};
|
|
|
|
class CanUsb : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
|
|
private:
|
|
|
|
DWORD ID; //идентификатор устройства
|
|
SLCAN_MESSAGE outMsg; //буфер для отправки сообщения
|
|
SLCAN_MESSAGE inputMsg[FRAMES]; //буфер для приёма сообщения
|
|
HSLCAN device;
|
|
SLCAN_BITRATE br;
|
|
DWORD cntrInput;
|
|
unsigned int Counter_of_suc_transmit=0;
|
|
unsigned int TX_error_counter=0;
|
|
unsigned div_up(unsigned x, unsigned y);
|
|
|
|
Send_CMD* send_cmd = nullptr;
|
|
SLCAN_STATE DeviceState;
|
|
|
|
int timerRefreshID = 0;
|
|
|
|
|
|
|
|
public:
|
|
|
|
int GetCount();
|
|
void AfterDisconnection();
|
|
void AfterConnection();
|
|
int GetMode();
|
|
int GetID();
|
|
int GetBR();
|
|
void device_connect();
|
|
HSLCAN G_Device();
|
|
HSLCAN GetDevice(){return device;}
|
|
CanUsb(QWidget *parent = nullptr);
|
|
~CanUsb();
|
|
void init();
|
|
void Refresh();
|
|
|
|
private slots:
|
|
|
|
void on_serialPortInfoListBox_currentIndexChanged(int index);
|
|
|
|
private:
|
|
Ui::CanUsb *ui;
|
|
};
|
|
#endif // USBCAN_H
|