test_sdk/hw/ADCCluster/adc.h

96 lines
2.6 KiB
C
Raw Permalink Normal View History

#ifndef ADC_H
#define ADC_H
#include <QObject>
#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<ADCChannel *> * 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<ADCChannel *> * _channels;
};
#endif // ADC_H