#ifndef ADC_H #define ADC_H #include #include "stpclient.h" #include "adcqueue.h" #include "adcregisters.h" #include "idserver.h" #include "adcchannel.h" class ADC : public QObject { Q_OBJECT public: explicit ADC(uint16_t sn, QObject *parent = nullptr); ~ADC(); void start(); void stop(); void startADC(ADC_ns::SYNCMode mode); void stopADC(); ADC_ns::ADCState getADCState() { return _state; }; uint16_t getModelID() { return _modelId; } uint16_t getSN() {return _sn; } uint16_t getChannelsCount() { return _channelsCount; } bool getIsTachoSignal() { return _isTachoSignal; } bool getIsGen() { return _isGen; } uint32_t getFreq() { return _freq; } ADC_ns::bitDepth getBitDeph() { return _bitDepth; } // сеть bool getIsDHCPMode() { return _dhcp_mode; } QByteArray getMacAddress() { return _mac_address; } QHostAddress getDefaultIP() { return _default_ip; } QHostAddress getDefaultGate() { return _default_gate; } QHostAddress getDefaultMask() { return _default_mask; } QHostAddress getStaticIP() { return _static_ip; } QHostAddress getStaticGate() { return _static_gate; } QHostAddress getStaticMask() { return _static_mask; } QList * getChannelsConfig() { return _channels; } uint32_t getDataCounter() { return _dataCounter; } void setDataCounter(uint32_t value) { _dataCounter=value; } void incDataCounter() { _dataCounter++; } void setChannelIEPE(int index, bool IEPE); void setChannelMODE(int index, ADC_ns::channelMode mode); int getSamplesCount(); signals: void ADC_connected(); void ADC_disconnected(); void ADC_configReadingFinished(); void ADC_dataPacketReceived(QByteArray dataPacket); void ADC_started(); private: void _packReadADCParams(); void _parseRegisterData(ADCQueue_ns::cmdItem cmd); void _packStartADC(ADC_ns::SYNCMode mode); void _packStopADC(); ADC_ns::ADCState _state; stpClient * _stpClient; ADCQueue * _adcqueue; idServer * _idServer; QTimer * _discoverTimer; uint32_t _dataCounter; // АЦП uint16_t _modelId; uint16_t _sn; uint16_t _channelsCount; bool _isTachoSignal; bool _isGen; uint32_t _freq; ADC_ns::bitDepth _bitDepth; // сеть bool _dhcp_mode; QByteArray _mac_address; QHostAddress _default_ip; QHostAddress _default_gate; QHostAddress _default_mask; QHostAddress _static_ip; QHostAddress _static_gate; QHostAddress _static_mask; QList * _channels; }; #endif // ADC_H