#include "rm_settings_cfg_xdr6688.h" #if (USE_DEVICE_SETTINGS) #include #include #include #if (RM_MODEL == RM_MODEL_TYPE_XLDR_88) unsigned char CFG::data[SETTINGS_CFG_SIZE] = {0,}; unsigned char CFG::stored[SETTINGS_CFG_SIZE] = {0,}; MODEL_XDR CFG::model = MODEL_XDR_NOT_DEFINED; void CFG::setDefault() { switch (CFG::model) { case MODEL_XDR_66: CFG66::setDefault(); break; case MODEL_XDR_88: CFG88::setDefault(); break; default: break; } } void CFG::backup() { memcpy(CFG::stored,CFG::data,SETTINGS_CFG_SIZE); } void CFG::restore() { memcpy(CFG::data,CFG::stored,SETTINGS_CFG_SIZE); } QString CFG::modelName() { switch (CFG::model) { case MODEL_XDR_66: return "XDR-66"; case MODEL_XDR_88: return "XLDR-88"; default: qInfo() << "MODEL NOT DEFINED"; } return ""; } bool CFG::setModel(QString modelString) { bool bSuccess = true; if(modelString == "XDR-66") { CFG::model = MODEL_XDR_66; } else if(modelString == "XLDR-88") { CFG::model = MODEL_XDR_88; } else { bSuccess = false; } return bSuccess; } bool CFG::load(QString path) { bool bSuccess = false; if(QFile::exists(path)) { FILE* f = fopen(path.toLocal8Bit(),"r+b"); if(f != NULL) { size_t readSize = (model == MODEL_XDR_66) ? SETTINGS_CFG_SIZE : SETTINGS_CFG_SIZE_88; unsigned char d[SETTINGS_CFG_SIZE] = {0,}; size_t read = fread(d,1,SETTINGS_CFG_SIZE,f); fclose(f); #if (CFG_SEARCH_DISK) bSuccess = read > 0 && strncmp(SETTINGS_TAG,(const char*)d,strlen(SETTINGS_TAG)) == 0; #else bSuccess = read > 0; #endif if(bSuccess == true) { memcpy(CFG::data,d,read); // EMS 데이터로 나머지는 초기화 해야함 if(read != readSize) { setDefault(); } } else { setDefault(); } } } CFG::backup(); // 현재 데이터 보존 return bSuccess; } bool CFG::save(QString path) { bool bSuccess = false; FILE* f = fopen(path.toLocal8Bit(),"w+b"); if(f != NULL) { size_t write = 0; if(model == MODEL_XDR_88) { write = fwrite(CFG::data,1,SETTINGS_CFG_SIZE_88,f); } else { write = fwrite(CFG::data,1,SETTINGS_CFG_SIZE,f); } bSuccess = write > 0; fclose(f); } CFG::backup(); return bSuccess; } void CFG66::setDefault() { // XDR-66 // SD_SENSOR = 21, // SENSOR_LOW = 0, SENSOR_LOW_MID, SENSOR_MIDDLE, SENSOR_MID_HI,SENSOR_HIGH // SD_SIZE = 22, // SIZE_800x600, SIZE_640x320 // SD_FRAME = 23, // FRAME_20, FRAME_25, FRAME_30 // SD_VOLUME = 24, // VOLUME_0~5 // SD_VOICE = 25, // VOICE_DISABLE, VOICE_ENABLE unsigned char def[SETTINGS_CFG_SIZE] = { 0x00,// 0 0x00,// 1 0x00,// 2 0x00,// 3 0x00,// 4 0x00,// 5 0x00,// 6 0x00,// 7 0x00,// 8 0x00,// 9 0x00,// 10 0x00,// 11 0x00,// 12 0x00,// 13 0x00,// 14 0x00,// 15 0x00,// 16 0x00,// 17 0x00,// 18 0x00,// 19 0x00,// 20 0x02,// 21 // SD_SENSOR = SENSOR_MIDDLE 0x00,// 22 // SD_SIZE = SIZE_800x600 0x00,// 23 // SD_FRAME = FRAME_20 0x04,// 24 // SD_VOLUME = VOLUME_4 0x01,// 25 // SD_VOICE = VOICE_ENABLE 0x00 // RESERVED }; // 부분만 초기화함 memcpy(&CFG::data[21],&def[21],5); } void CFG88::setDefault() { // XLDR-88 unsigned char def[SETTINGS_CFG_SIZE_88] = { 0x00,// 0 0x00,// 1 0x00,// 2 0x00,// 3 0x00,// 4 0x00,// 5 0x00,// 6 0x00,// 7 0x00,// 8 0x00,// 9 0x00,// 10 0x00,// 11 0x00,// 12 0x00,// 13 0x00,// 14 0x00,// 15 0x00,// 16 0x01,// 17 // SD88_SCREEN_SAVEER 0x02,// 18 // SD88_SCREEN_PIP 0x03,// 19 // SD88_SPEAKER 0x01,// 20 // SD88_MIC 0x00,// 21 // SD88_VOLUME 0x02,// 22 // SD88_GSENSOR_NORMAL 0x02,// 23 // SD88_GSENSOR_PARKING 0x00,// 24 // SD88_PARKING_ON (2021/04/01 OFF) 0x00,// 25 // SD88_PARKING_VOLTAGE 0x00,// 26 // SD88_VIDEO_RESOLUTION 0x01,// 27 // SD88_ADMIN_PW (SD88_VIDEO_QUALITY) -> 비밀번호 ON:/OFF1 0x02,// 28 // SD88_VIDEO_FRAME 0x01,// 29 // SD88_VIDEO_SUB_CAMERA 0x01,// 30 // SD88_VIDEO_HDR 0x01,// 31 // SD88_VIDEO_NIGHT_VISION (2021/04/01 OFF) }; // 부분만 초기화 함 //memcpy(&CFG::data[11],&def[11],21); memcpy(&CFG::data[17],&def[17],15); //memcpy(CFG::data,def,SETTINGS_CFG_SIZE_88); } #endif // #if (RM_MODEL == RM_MODEL_TYPE_XLDR_88) #endif // #if (USE_DEVICE_SETTINGS)