Files
remote-ui/client/ui/can_transceive.hpp
T
sani7 9765cd3e51 client
now works on windows
2026-02-14 14:32:50 +01:00

87 lines
1.9 KiB
C++

#pragma once
#include "hex_spinbox.hpp"
#include <QWidget>
#ifdef INTERNAL
#define EXPORT Q_DECL_EXPORT
#else
#define EXPORT Q_DECL_IMPORT
#endif
namespace Ui
{
class Can_Transceive;
}
/**
* @brief Class representing a CAN transceive UI component
*
*/
class EXPORT Can_Transceive : public QWidget
{
Q_OBJECT
public:
/**
* @brief Construct a new Can_Transceive object
*
* @param parent A pointer to the parent widget
*/
explicit Can_Transceive(QWidget *parent = nullptr);
/**
* @brief Destroy the Can_Transceive object
*
*/
~Can_Transceive();
/**
* @brief This function enables or disables the CAN data input fields based on the selected DLC
*
*/
void enable_can_send_data();
/**
* @brief Clear the CAN message lists
*
*/
void clear();
/**
* @brief Add a sent CAN message to the send list
*
* @param id The CAN message ID
* @param dlc The Data Length Code
* @param payload The CAN message payload
*/
void add_send_item(uint32_t id, uint8_t dlc, std::array<uint8_t, 8> payload);
/**
* @brief Add a received CAN message to the receive list
*
* @param id The CAN message ID
* @param dlc The Data Length Code
* @param payload The CAN message payload
*/
void add_receive_item(uint32_t id, uint8_t dlc, std::array<uint8_t, 8> payload);
signals:
/**
* @brief Emitted when a CAN message is to be sent
*
* @param id The CAN message ID
* @param dlc The Data Length Code
* @param payload The CAN message payload
*/
void send_can_message(uint32_t id, uint8_t dlc, std::array<uint8_t, 8> payload);
/**
* @brief Emitted when the CAN message lists are to be cleared
*
*/
void can_clear();
private:
Ui::Can_Transceive *ui;
std::vector<HexSpinBox *> can_send_hexspinboxes;
};