/
pi_coder
/
ByteMachine
Обзор
Документация
Войти
/
pi_coder
/
ByteMachine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/nodes/input_pin.h
86 строк
4 KB
pimenov-and
Перенос функциональности из старого проекта, в основном это описания узлов
19 июл 2026, 20:13
19 июл 2026, 20:13
cb3c51b
Код
Авторство
О чём код?
//////////////////////////////////////////////////////////////// // ByteMachine // Входной пин //////////////////////////////////////////////////////////////// #ifndef INPUT_PIN_H #define INPUT_PIN_H //============================================================== #include "base_pin.h" #include "connect_states.h" #include "pin_connection.h" //============================================================== class BaseNode; class OutputPin; //============================================================== // Входной пин //============================================================== class InputPin : public BasePin { Q_OBJECT public: // Конструктор с параметром explicit InputPin(BaseNode *parentNode, int index); // Чтение из XML void readFromXml(const QDomElement &elem) override; // Запись в XML void writeToXml(QDomDocument &doc, QDomElement &elem) const override; // Получение признака подключения [[nodiscard]] bool isConnected() const override; // Получение области пина [[nodiscard]] QRect rect() const override; // Получение представления в виде строки [[nodiscard]] QString toStr() const override; // Получение подключенного выходного пина [[nodiscard]] QSharedPointer<OutputPin>& outputPin(); // Получение подключенного выходного пина (константный вариант) [[nodiscard]] QSharedPointer<const OutputPin> outputPin() const; // Задание подключенного выходного пина void setOutputPin(const QSharedPointer<OutputPin> &pin, bool isRaiseSignal = true); // Корректировка соединений (используется при чтении // из XML для последующей корректировки связи) void correctConnections(QVector<QSharedPointer<BaseNode>> &nodes); // Получение размера данных [[nodiscard]] std::size_t dataSize() const override; // Получение байта данных [[nodiscard]] quint8 dataByte(std::size_t index) const override; // Получение блока данных [[nodiscard]] ByteList dataBlock(std::size_t index, std::size_t count) const override; // Функция вызывается при изменении данных родительского узла void dataChanged() override; signals: // Сигнал возникает при изменении подключения void sigConnectChanged(ConnectStates state, OutputPin *pin); private: // Запись индекса в XML void writeIndexToXml(QDomDocument &, QDomElement &elem) const; // Запись подключенного выходного пина void writeOutputPinToXml(QDomDocument &doc, QDomElement &elem) const; // Подключенный выходной пин QSharedPointer<OutputPin> outputPin_{}; // Подключение выходного пина (используется при чтении // из XML для последующей корректировки связи) PinConnection outputPinConnection_{}; }; //============================================================== using ShPtrInputPin = QSharedPointer<InputPin>; using ShPtrConstInputPin = QSharedPointer<const InputPin>; //============================================================== #endif // INPUT_PIN_H