123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #ifndef EYEMAPINFO_H
- #define EYEMAPINFO_H
- #include <QList>
- #include <QColor>
- #include "GlobalInfo.h"
- class OneEyeMap;
- /* 保存实际可用的示波器通道信息
- * 通道号从1开始,0是未选择通道 */
- struct OneChannelInfo
- {
- OscChnNum channel; /* 通道号 */
- QString channelName; /* 通道名 */
- OneChannelInfo() : channel(OscChnNum::Osc_None), channelName("") {}
- OneChannelInfo& operator=(const OneChannelInfo& info)
- {
- channel = info.channel;
- channelName = info.channelName;
- return *this;
- }
- };
- /* 保存每个眼图的序号、标题和颜色 */
- struct OneEyeMapInfo
- {
- bool isShow; /* 是否显示 */
- // EyeMapUID uid; /* 唯一标识符 */
- int num; /* 序号 */
- QString title; /* 标题 */
- QColor titleBarColor; /* 颜色 */
- OneChannelInfo channelInfo; /* 通道信息,这个作为眼图显示模块和示波器模块对应的唯一标识符 */
- OscVoltageRange voltageRange; /* 电压范围 */
- OscTimeGridValue tGridValue; /* 时间刻度 */
- OneEyeMapInfo() : isShow(false), num(0), title(""), titleBarColor(QColor()), channelInfo(),
- voltageRange(OscVoltageRange::CR_2V5), tGridValue(OscTimeGridValue::TGV_200NS) {}
- OneEyeMapInfo& operator=(const OneEyeMapInfo& info)
- {
- isShow = info.isShow;
- // uid = info.uid;
- num = info.num;
- title = info.title;
- titleBarColor = info.titleBarColor;
- channelInfo = info.channelInfo;
- voltageRange = info.voltageRange;
- tGridValue = info.tGridValue;
- return *this;
- }
- };
- #define GEyeMapInfo AllEyeMapInfo::getInstance()
- /**
- * @brief 保存8个眼图的指针信息,以及通道信息
- *
- */
- class AllEyeMapInfo
- {
- AllEyeMapInfo() {}
- AllEyeMapInfo& operator=(const AllEyeMapInfo&) = delete;
- AllEyeMapInfo(const AllEyeMapInfo&) = delete;
- public:
- ~AllEyeMapInfo();
- static AllEyeMapInfo& getInstance()
- {
- static AllEyeMapInfo emi;
- return emi;
- }
- /* 初始化函数 */
- void initEyeMapInfo();
- /* 读取保存的文件 */
- void readSaveFile(const QString& fileName);
- /* 创建保存的文件 */
- void createSaveFile(const QString& fileName);
- /* 更新保存的文件,在EyeMapWidget的析构函数中调用 */
- void updateSaveFile();
- /* 获取眼图列表 */
- const QList<OneEyeMap*>& getEyeMapList();
- /* 添加眼图指针 */
- void addEyeMapPtr(OneEyeMap* ptr);
- /* 获取每个眼图的序号、标题和颜色 */
- QList<OneEyeMapInfo> getEyeMapInfo();
- /* 根据序号查找指针 */
- OneEyeMap* findEyeMap(int num);
- /* 更新模块信息 */
- void updateModuleInfo(OneEyeMapInfo& info);
- /* 更新设置组屏页面的信息 */
- void updateSettingNum(OneEyeMapInfo& info);
- /* 清空所有的编号 */
- void clearAllNum();
- /* 重置所有的颜色矩阵 */
- void resetAllEyeMap();
- /* 获取所有的通道信息 */
- QList<OneChannelInfo>& getChannelInfo() { return listChannelInfo; }
- /* 设置通道信息 */
- void setChannelInfo(const QList<OneChannelInfo>& list) { listChannelInfo = list; }
- void appendChannelInfo(const OneChannelInfo& info) { listChannelInfo.append(info); }
- /* 更新显示的电压刻度、时间刻度信息,这里只更新这两个相关的参数 */
- void updateVoltageAndTimeGardInfo(const OneEyeMapInfo& info);
- /* 更新初始化数组 */
- void updateInitEyeMapInfo();
- /* 获取通道号对应的通道名称 */
- static QString getChannelName(OscChnNum channel);
- /* 判断一个示波器是否有显示的眼图 */
- bool hasShowEyeMap(int oscNum);
- /* 根据示波器编号设置眼图状态 */
- void setEyeMapOscOpen(int oscNum, bool isOpen);
- /* 获取初始化数据 */
- OneEyeMapInfo getOneEyeMapInfo(int num);
- OneEyeMapInfo getInitEyeMapInfo(int num);
- /* 获取未使用的通道号 */
- OscChnNum getUnusedChannel();
- public:
- QList<OneEyeMap*> listEyeMapPtr; /* 保存8个眼图的指针 */
- QList<OneChannelInfo> listChannelInfo; /* 可用的通道号 */
- QList<OneEyeMapInfo> listInitEyeMapInfo; /* 保存每个眼图的初始化信息,程序启动和结束的时候使用 */
- int row = 0; /* 行 */
- int column = 0; /* 列 */
- private:
- QString m_saveFileName = "EyeMapInfo.json"; /* 保存的文件名 */
- QString m_saveFilePath = ""; /* 保存的文件路径 */
- };
- #endif /* EYEMAPINFO_H */
|