#ifndef USBCAN_H #define USBCAN_H #include #include #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