first commit
This commit is contained in:
101
project/fm_viewer/cfg/rm_settings_cfg_emt_kr.h
Normal file
101
project/fm_viewer/cfg/rm_settings_cfg_emt_kr.h
Normal file
@@ -0,0 +1,101 @@
|
||||
#ifndef RM_SETTINGS_CFG_EMT_KR_H
|
||||
#define RM_SETTINGS_CFG_EMT_KR_H
|
||||
#if (USE_DEVICE_SETTINGS && RM_MODEL_EMT_KR)
|
||||
#include <QObject>
|
||||
#include <QJsonArray>
|
||||
#include <stdint.h>
|
||||
|
||||
#define SETTINGS_CFG_SIZE 248 // 248 BYTE
|
||||
typedef enum
|
||||
{
|
||||
CFG_SUCCESS = 0, // 성공
|
||||
CFG_IO_ERROR = 1, // 파일 열기, 읽기 실패
|
||||
CFG_WRONG_FILE = 2, // 잘못된 파일 에러
|
||||
CFG_CHECKSUM_ERROR = 3, // 체크섬 확인실패
|
||||
// CFG_MODEL_CODE_ERROR = 3, // 모델코드 에러 UI 에서 확인
|
||||
CFG_UNKNOWN_ERROR = 99, // ??
|
||||
} CFG_ERROR_CODE;
|
||||
|
||||
typedef struct _EMTINFO
|
||||
{
|
||||
uint32_t magic;
|
||||
uint32_t model; //micom ver : 31 ~ 16, model : 15 ~ 0
|
||||
uint32_t version;//F/W version
|
||||
uint32_t file1; //1 bit + 31 bit ( 1 : file exist, 31 : file size )
|
||||
uint32_t file2; //1 bit + 31 bit ( 1 : file exist, 31 : file size )
|
||||
} EMTINFO;
|
||||
|
||||
// 제품 코드에 따라 설정항목이 달라짐
|
||||
// NM5000(5101),MIRROR5(5103) = MAGNUS
|
||||
// NP5000(5102),PRO5(5104) = TRINITY
|
||||
typedef enum
|
||||
{
|
||||
NM5000 = 5101, // NM5000 OFFLINE
|
||||
NP5000 = 5102, // TRINITY OFFLINE
|
||||
MIRROR5 = 5103, // Mirror5(MAGNUS ONLINE)
|
||||
PRO5 = 5104, // Pro5(TRINITY ONLINE)
|
||||
A360X = 5105, // Cyclops = 360X
|
||||
} MODEL_CODE;
|
||||
|
||||
// 설정 편집시 1로 지정해야 하는 OFFSET
|
||||
#define SD_VIEWSETTING_OFFSET 143
|
||||
|
||||
class CFG : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
static QString cfgPath;
|
||||
static QStringList model_names;// = QStringList() << "NM5000" << "NP5000";
|
||||
static uint32_t model_codes[];// = { 5101, 5102};
|
||||
|
||||
static QJsonArray items;
|
||||
static QJsonObject _findType(QString key,int* index);
|
||||
|
||||
static unsigned char data[SETTINGS_CFG_SIZE];
|
||||
static unsigned char stored[SETTINGS_CFG_SIZE];
|
||||
static EMTINFO info;
|
||||
|
||||
//! \brief 모델에 따른 JSON 파일 확인
|
||||
//! \return
|
||||
static bool _loadJSon();
|
||||
static CFG_ERROR_CODE load(QString path);
|
||||
static bool save(QString path);
|
||||
|
||||
static void backup();
|
||||
static void restore();
|
||||
static void setDefault();
|
||||
//! \brief 데이터 수정여부 확인
|
||||
//! \return
|
||||
static bool isEdited();
|
||||
|
||||
static void clear();
|
||||
|
||||
static QString modelName();
|
||||
static uint32_t version();
|
||||
|
||||
private:
|
||||
//! \brief 모델정보등 검증
|
||||
//! \return
|
||||
static CFG_ERROR_CODE verifyInfo();
|
||||
//static uint16_t appGetSum16_Emt(); // uint16_t *Buf, uint32_t Size
|
||||
static bool appUserSettingCheck();
|
||||
|
||||
// 현재 데이터 CHECKSUM 계산하여 반영
|
||||
static void _updateCheckSum();
|
||||
|
||||
// 설정항목을 그룹 제외하고 직렬화
|
||||
static void _getItems(QJsonArray& in, QJsonArray& ret);
|
||||
static void serializeItems(QJsonArray& citems);
|
||||
|
||||
// checkData1 << 8 | checkData2
|
||||
//! \brief EMTINFO 를 제외한 데이터를 확인하여
|
||||
//! \return checkData1 << 8 | checkData2
|
||||
static uint16_t checkSum();
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
};
|
||||
|
||||
#endif // #if (USE_DEVICE_SETTINGS && RM_MODEL_EMT_KR)
|
||||
#endif // RM_SETTINGS_CFG_EMT_KR_H
|
||||
Reference in New Issue
Block a user