UnionComDLL/canusb.h

68 lines
1.6 KiB
C
Raw Normal View History

2025-03-11 14:41:08 +03:00
#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