代码拉取完成,页面将自动刷新
#ifndef MDBDEVUNIT_H
#define MDBDEVUNIT_H
#include <QObject>
#include "qserialport.h"
#include <QThread>
#include <QString>
#include <QByteArray>
#include <QDebug>
#include "qtimer.h"
#include "qjsonobject.h"
#include "dev.h"
#include "qmutex.h"
#include "qobject.h"
#include "qpair.h"
struct MODULEINFO{
int id;
};
//数据更新时间,单位ms
#define MELT_DATA_UPDATE_INTERVAL 500
class MdbDevUnit : public QObject
{
Q_OBJECT
public:
explicit MdbDevUnit(int id,QObject *parent = nullptr);
void init_port();
void init_params(int idNo);
QSerialPort *port;
QString serialNumber;
QJsonObject unitObj;
MODULEINFO moduleInfo;
public:
// void start();
bool load_config();
bool write_modbus_register_longtime(qint16 addr, int reg_addr, quint16 val );
bool write_modbus_register(qint16 addr, int reg_addr, quint16 val );
bool write_modbus_register_without_wait(qint16 addr, int reg_addr, quint16 val );
bool write_modbus_register_cmd10(qint16 addr, int reg_addr, quint16 val );
// bool init_device_param();
bool read_data(qint16 addr,qint16 reg_addr);
bool read_data_cmd04(qint16 addr,qint16 reg_addr);
bool read_n_data(qint16 addr,qint16 reg_addr,qint16 data_len,qint16 res_len);
bool read_n_data_cmd04(qint16 addr,qint16 reg_addr,qint16 data_len,qint16 res_len);
// void on_update_data();
bool crc16_check(QByteArray cmdBytes, int byte_num);
QString get_config_by_id(qint8 id);
public slots:
void my_thread_start(void);
void handleSerialError(QSerialPort::SerialPortError);
void write_data();
void init_serialNumber(QString seralStr);
void slot_cmd_send(QByteArray cmdBytes);
void close_port(void);
void port_reboot(void);
void change_port_no(QString portNo);
// void on_stop();
void on_cmds(int cmdNo);
// void send_temper_setting(int tmpVal);
//for dev
//0 choose dev
void dev_choose(int index);
//1.temperature
int devx_operate_get_temp_addr(qint8 devIndex);
int devx_operate_get_baudrate(qint8 devIndex);
float devx_operate_get_temp(qint8 devIndex);
void devx_operate_set_temper_addr(qint8 devIndex,qint16 newVal);
void devx_operate_set_temper_baudrate(qint8 devIndex,qint16 newBaudrate);
void devx_operate_set_temper_zeroshift(qint8 devIndex,qint16 newshift);
void devx_operate_taper_save_data(qint8 devIndex);
void devx_operate_temper_restore_factory(qint8 devIndex);
void temper_poweroff_and_save(qint8 devIndex,qint16 newVal);
void reset_port_baud(qint8 devIndex,qint32 newVal);
//rainsnow
int devx_operate_get_rain_snow(qint8 devIndex);
int devx_operate_get_rain_snow_addr(qint8 devIndex);
int devx_operate_set_rain_snow_addr(qint8 devIndex,qint16 newVal);
int devx_operate_get_rain_snow_baud(qint8 devIndex);
int devx_operate_set_rain_snow_baud(qint8 devIndex,qint16 newVal);
int devx_operate_get_rain_snow_start_temper(qint8 devIndex);
int devx_operate_set_rain_snow_start_temper(qint8 devIndex,qint16 newVal);
int devx_operate_get_rain_snow_stop_temper(qint8 devIndex);
int devx_operate_set_rain_snow_stop_temper(qint8 devIndex,qint16 newVal);
//pressure
float devx_operate_get_pressure_val(qint8 devIndex);
int devx_operate_get_pressure_addr(qint8 devIndex);
int devx_operate_set_pressure_addr(qint8 devIndex,qint16 newVal);
int devx_operate_get_pressure_baud(qint8 devIndex);
int devx_operate_set_pressure_baud(qint8 devIndex,qint16 newVal);
int devx_operate_get_pressure_check_bit(qint8 devIndex);
int devx_operate_set_pressure_check_bit(qint8 devIndex,qint16 newVal);
int devx_operate_get_pressure_unit(qint8 devIndex);
int devx_operate_set_pressure_unit(qint8 devIndex,qint16 newVal);
float devx_operate_get_pressure_shift(qint8 devIndex);
int devx_operate_set_pressure_zero(qint8 devIndex);
//485 io
void devx_operate_relay(qint8 devIndex,qint16 addr,qint16 openOrClose); //0:close,1:open
void devx_operate_set_relay_addr(qint8 devIndex,qint16 newVal);
void devx_operate_set_relay_baud(qint8 devIndex,qint16 newVal);
void devx_operate_output_together(qint8 devIndex,qint16 newVal);
void devx_operate_output_by_bits(qint8 devIndex,qint16 newVal);
void on_sig_unit_dev_operate(QObject *sender,QStringList paramList);
void cmd_phrase(QStringList cmdList);
void control_cmd(QStringList cmdList);
void slot_on_temper_cmd_from_flow(QObject *sender,QStringList cmdList);
void on_cmd_time_out(void);
// void save_params(QStringList)
signals:
void count( int );
void sig_return_res(QObject *sender,QStringList resStr);
void sig_return_res_handle(QStringList resStr);
void sig_return_res_temper(QStringList params);
private:
QThread *my_thread;
QJsonObject m_config;
int m_addr;
QByteArray m_recv_buf;
std::unique_ptr< QTimer > m_update_timer;
int addressChoose=0;
QList<QStringList> cmdsList;
QStringList cmdStrs;
QTimer *cmdExecute;
QMutex mLocker;
QObject * senderObj;
QList<QObject *>senderList;
QList<QStringList> cmdsList1;
QList<QObject *>senderList1;
//for cmd phrase timer
int parseOrNot=1;
public:
int readRes;
QByteArray resArray;
Dev *dev1,*dev2,*dev3,*dev4,*devx;
QList<Dev *> devContainer;
int dev_with_temper_index;
bool cmdExecuteFlag=true;
};
#endif // MDBDEVUNIT_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。