// Generated by json_to_model #import "JDObject.h" #import "DeviceModel.h" #import "CustomRadioGroup.h" #import "CustomCheckBox.h" @implementation DeviceModel //+ (JSONKeyMapper *)keyMapper { // // NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; // // //self // [dictionary setValue:@"cmdclsTypeSystemName" forKey:@"cmdcls_type_system_name"]; // [dictionary setValue:@"cmdclsTypeId" forKey:@"cmdcls_type_id"]; // [dictionary setValue:@"cmdclsCode" forKey:@"cmdcls_code"]; // [dictionary setValue:@"deviceProfileId" forKey:@"device_profile_id"]; // [dictionary setValue:@"createDatetime" forKey:@"create_datetime"]; // [dictionary setValue:@"cmdclsTypeName" forKey:@"cmdcls_type_name"]; // [dictionary setValue:@"deviceName" forKey:@"device_name"]; // [dictionary setValue:@"profileName" forKey:@"profile_name"]; // [dictionary setValue:@"imageFileName" forKey:@"image_file_name"]; // [dictionary setValue:@"contentValue" forKey:@"content_value"]; // [dictionary setValue:@"nodeName" forKey:@"node_name"]; // [dictionary setValue:@"cmdclsCount" forKey:@"cmdcls_count"]; // [dictionary setValue:@"nodeId" forKey:@"node_id"]; // [dictionary setValue:@"deviceId" forKey:@"device_id"]; // // return [[JSONKeyMapper alloc] initWithDictionary:dictionary]; //} - (NSString *)contentValueMsgOfSensorBinary { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 11001: case 11002: case 11003: case 11004: case 11005: case 11006: case 11007: case 11008: case 11009: case 11010: case 11012: case 11013: case 11014: case 11016: case 11018: if ([self.contentValue isEqualToString:@"TRUE"]) { msg = NSLocalizedString(@"감지됨", @"감지됨"); } else if ([self.contentValue isEqualToString:@"FALSE"]) { msg = NSLocalizedString(@"정상", @"정상"); } else { msg = @"-"; } break; case 11011: if ([self.contentValue isEqualToString:@"TRUE"]) { msg = NSLocalizedString(@"열림", @"열림"); } else if ([self.contentValue isEqualToString:@"FALSE"]) { msg = NSLocalizedString(@"닫힘", @"닫힘"); } else { msg = @"-"; } break; case 11015: case 11017: if ([self.contentValue isEqualToString:@"TRUE"]) { msg = NSLocalizedString(@"들어옴", @"들어옴"); } else if ([self.contentValue isEqualToString:@"FALSE"]) { msg = NSLocalizedString(@"나감", @"나감"); } else { msg = @"-"; } break; } return msg; } - (NSString *)contentValueMsgOfThermostatMode { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 13001: case 13002: case 13003: case 13004: if ([self.contentValue isEqualToString:@"OFF"]) { msg = NSLocalizedString(@"꺼짐", @"꺼짐"); } else if ([self.contentValue isEqualToString:@"COOL"]) { msg = NSLocalizedString(@"냉방", @"냉방"); } else if ([self.contentValue isEqualToString:@"HEAT"]) { msg = NSLocalizedString(@"난방", @"난방"); } else if ([self.contentValue isEqualToString:@"AUTO"]) { msg = NSLocalizedString(@"자동", @"자동"); } else if ([self.contentValue isEqualToString:@"FAN_ONLY"]) { msg = NSLocalizedString(@"환기", @"환기"); } else if ([self.contentValue isEqualToString:@"DRY_AIR"]) { msg = NSLocalizedString(@"제습", @"제습"); } else if ([self.contentValue isEqualToString:@"AWAY"]) { msg = NSLocalizedString(@"외출", @"외출"); } else { msg = @"-"; } break; } return msg; } - (NSString *)contentValueMsgOfLock { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 14001: if ([self.contentValue isEqualToString:@"LOCKED"]) { msg = NSLocalizedString(@"잠김", @"잠김"); } else if ([self.contentValue isEqualToString:@"UNLOCKED"]) { msg = NSLocalizedString(@"열림", @"열림"); } else if ([self.contentValue isEqualToString:@"JAMMED"]) { msg = NSLocalizedString(@"걸림", @"걸림"); } else if ([self.contentValue isEqualToString:@"FORCED_OPEN"]) { msg = NSLocalizedString(@"수동", @"수동"); } else if ([self.contentValue isEqualToString:@"UNSPECIFIED"]) { msg = NSLocalizedString(@"오류", @"오류"); } else { msg = @"-"; } break; case 14002: case 14003: if ([self.contentValue isEqualToString:@"LOCKED"]) { msg = @"잠김"; } else if ([self.contentValue isEqualToString:@"UNLOCKED"]) { msg = @"열림"; } else { msg = @"-"; } break; } return msg; } - (NSString *)contentValueMsgOfSwitchBinary { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 17001: case 17002: if ([self.contentValue isEqualToString:@"ON"]) { msg = NSLocalizedString(@"켜짐", @"켜짐"); } else if ([self.contentValue isEqualToString:@"OFF"]) { msg = NSLocalizedString(@"꺼짐", @"꺼짐"); } else { msg = @"-"; } break; } return msg; } - (NSString *)contentValueMsgOfValve { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 36001: case 36002: case 36003: if ([self.contentValue isEqualToString:@"OPEN"]) { msg = NSLocalizedString(@"열림", @"열림"); } else if ([self.contentValue isEqualToString:@"CLOSE"]) { msg = NSLocalizedString(@"잠김", @"잠김"); } else { msg = @"-"; } break; } return msg; } - (NSString *)contentValueMsg { switch ([self cmdclsType]) { case CmdClsTypeSensorBinary: _contentValueMsg = [self contentValueMsgOfSensorBinary]; break; case CmdClsTypeThermostatMode: _contentValueMsg = [self contentValueMsgOfThermostatMode]; break; case CmdClsTypeLock: _contentValueMsg = [self contentValueMsgOfLock]; break; case CmdClsTypeSwitchBinary: _contentValueMsg = [self contentValueMsgOfSwitchBinary]; break; case CmdClsTypeSpeedControl: _contentValueMsg = [self contentValueMsgOfSpeedControl]; break; case CmdClsTypeAVControlPlayback: _contentValueMsg = [self contentValueMsgOfAVPlayback]; break; case CmdClsTypeValve: _contentValueMsg = [self contentValueMsgOfValve]; break; default: _contentValueMsg = !_contentValue || [_contentValue isEmptyString] || [_contentValue isEqualToString:@"none"] ? @"-" : [NSString stringWithFormat:@"%@%@", _contentValue, _unit]; break; } return _contentValueMsg; } - (NSString *)contentValueMsgOfSpeedControl { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 20001: if ([self.contentValue isEqualToString:@"OFF"]) { msg = NSLocalizedString(@"꺼짐", @"꺼짐"); } else if ([self.contentValue isEqualToString:@"LOW"]) { msg = NSLocalizedString(@"약", @"약"); } else if ([self.contentValue isEqualToString:@"MEDIUM"]) { msg = NSLocalizedString(@"중", @"중"); } else if ([self.contentValue isEqualToString:@"HIGH"]) { msg = NSLocalizedString(@"강", @"강"); } else { msg = @"-"; } break; } return msg; } - (NSString *)contentValueMsgOfAVPlayback { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 21001: if ([self.contentValue isEqualToString:@"PLAYING"]) { msg = NSLocalizedString(@"재생 중", @"재생 중"); } else if ([self.contentValue isEqualToString:@"PAUSED"]) { msg = NSLocalizedString(@"정지 됨", @"정지 됨"); } else { msg = @"-"; } break; } return msg; } - (UIImage *)imageForHeatInSeason { NSString *month = [NSString stringWithFormat:@"%zd", [CommonUtil dateComponents:[NSDate systemDate]].month]; NSArray *summer = @[@"6", @"7", @"8", @"9"]; NSArray *winter = @[@"12", @"1", @"2"]; BOOL isSummer = [summer indexOfObjectIdenticalTo:month]; BOOL isWinter = [winter indexOfObjectIdenticalTo:month]; NSInteger min = 20; min = isSummer ? 26 : min; min = isWinter ? 18 : min; NSInteger max = 22; max = isSummer ? 28 : max; max = isWinter ? 20 : max; UIImage *image = nil; NSInteger heat = [_contentValue integerValue]; if (heat < min) { image = [UIImage imageNamed:@"img_things_detail_03_01_sensor_temperature_cool"]; } else if (heat > max) { image = [UIImage imageNamed:@"img_things_detail_03_03_sensor_temperature_hot"]; } else { image = [UIImage imageNamed:@"img_things_detail_03_02_sensor_temperature_nice"]; } return image; } - (NSString *)conditionForHeatInSeason { NSString *month = [NSString stringWithFormat:@"%zd", [CommonUtil dateComponents:[NSDate systemDate]].month]; NSArray *summer = @[@"6", @"7", @"8", @"9"]; NSArray *winter = @[@"12", @"1", @"2"]; BOOL isSummer = [summer indexOfObjectIdenticalTo:month]; BOOL isWinter = [winter indexOfObjectIdenticalTo:month]; NSInteger min = 20; min = isSummer ? 26 : min; min = isWinter ? 18 : min; NSInteger max = 22; max = isSummer ? 28 : max; max = isWinter ? 20 : max; NSString *condition = nil; NSInteger heat = [_contentValue integerValue]; if (heat < min) { condition = @"추워요"; } else if (heat > max) { condition = @"더워요"; } else { condition = @"쾌적해요"; } return condition; } - (UIImage *)imageForHumidityInSeason { NSString *month = [NSString stringWithFormat:@"%zd", [CommonUtil dateComponents:[NSDate systemDate]].month]; NSArray *summer = @[@"6", @"7", @"8", @"9"]; NSArray *winter = @[@"12", @"1", @"2"]; BOOL isSummer = [summer indexOfObjectIdenticalTo:month]; BOOL isWinter = [winter indexOfObjectIdenticalTo:month]; NSInteger min = 50; min = isSummer ? 30 : min; min = isWinter ? 60 : min; NSInteger max = 60; max = isSummer ? 40 : max; max = isWinter ? 70 : max; UIImage *image = nil; NSInteger heat = [_contentValue integerValue]; if (heat < min) { image = [UIImage imageNamed:@"img_things_detail_04_01_sensor_humidity_dry"]; } else if (heat > max) { image = [UIImage imageNamed:@"img_things_detail_04_02_sensor_humidity_nice"]; } else { image = [UIImage imageNamed:@"img_things_detail_04_03_sensor_humidity_moist"]; } return image; } - (NSString *)conditionForHumidityInSeason { NSString *month = [NSString stringWithFormat:@"%zd", [CommonUtil dateComponents:[NSDate systemDate]].month]; NSArray *summer = @[@"6", @"7", @"8", @"9"]; NSArray *winter = @[@"12", @"1", @"2"]; BOOL isSummer = [summer indexOfObjectIdenticalTo:month]; BOOL isWinter = [winter indexOfObjectIdenticalTo:month]; NSInteger min = 50; min = isSummer ? 30 : min; min = isWinter ? 60 : min; NSInteger max = 60; max = isSummer ? 40 : max; max = isWinter ? 70 : max; NSString *condition = nil; NSInteger heat = [_contentValue integerValue]; if (heat < min) { condition = @"건조해요"; } else if (heat > max) { condition = @"습해요"; } else { condition = @"쾌적해요"; } return condition; } - (UIImage *)imageForLuminance { UIImage *image = nil; NSInteger lux = [_contentValue integerValue]; if (lux < 10) { image = [UIImage imageNamed:@"img_things_detail_07_01_bright_state_dark"]; } else if (lux < 50) { image = [UIImage imageNamed:@"img_things_detail_07_02_bright_state_soft"]; } else if (lux < 80){ image = [UIImage imageNamed:@"img_things_detail_07_03_bright_state_nice"]; } else if (lux <= 100) { image = [UIImage imageNamed:@"img_things_detail_07_04_bright_state_bright"]; } return image; } - (NSString *)conditionForLuminance { NSString *condition = nil; NSInteger lux = [_contentValue integerValue]; if (lux < 10) { condition = @"어두워요"; } else if (lux < 50) { condition = @"은은해요"; } else if (lux < 80){ condition = @"쾌적해요"; } else if (lux <= 100) { condition = @"밝아요"; } return condition; } - (UIImage *)imageForMandataryForState:(UIControlState)state { NSInteger typeId = [_cmdclsTypeId integerValue]; UIImage *image = nil; switch (typeId) { // case 11006://Heat // if (state == UIControlStateNormal || state == UIControlStateSelected) {//default // image = [self imageForHeatInSeason]; // } else if (state == UIControlStateDisabled) {//offline // image = [UIImage imageNamed:@"img_things_detail_03_00_sensor_temperature_offline"]; // } // break; case 11011://door if (state == UIControlStateNormal) {//default image = [UIImage imageNamed:@"img_things_detail_01_01_sensor_door_close"]; } else if (state == UIControlStateSelected) {//selected image = [UIImage imageNamed:@"img_things_detail_01_02_sensor_door_open"]; } else if (state == UIControlStateDisabled) {//offline image = [UIImage imageNamed:@"img_things_detail_01_00_sensor_door_offline"]; } break; case 11013://모션센서 if (state == UIControlStateNormal) {//default image = [UIImage imageNamed:@"img_things_detail_08_01_motion_state_none"]; } else if (state == UIControlStateSelected) {//selected image = [UIImage imageNamed:@"img_things_detail_08_02_motion_state_detect"]; } else if (state == UIControlStateDisabled) {//offline image = [UIImage imageNamed:@"motionimg_things_detail_08_00_motion_state_offline"]; } break; case 11017://shock if (state == UIControlStateNormal) {//default image = [UIImage imageNamed:@"img_things_detail_02_01_sensor_shock_normal"]; } else if (state == UIControlStateSelected) {//selected image = [UIImage imageNamed:@"img_things_detail_02_02_sensor_shock_sensing"]; } else if (state == UIControlStateDisabled) {//offline image = [UIImage imageNamed:@"img_things_detail_02_00_sensor_shock_offline"]; } case 12002://온도 if (state == UIControlStateNormal || state == UIControlStateSelected) {//default image = [self imageForHeatInSeason]; } else if (state == UIControlStateDisabled) {//offline image = [UIImage imageNamed:@"img_things_detail_03_00_sensor_temperature_offline"]; } break; case 12004://밝기 if (state == UIControlStateNormal || state == UIControlStateSelected) {//default image = [self imageForLuminance]; } else if (state == UIControlStateDisabled) {//offline image = [UIImage imageNamed:@"img_things_detail_07_00_bright_state_offline"]; } break; case 12006://습도 if (state == UIControlStateNormal || state == UIControlStateSelected) {//default image = [self imageForHumidityInSeason]; } else if (state == UIControlStateDisabled) {//offline image = [UIImage imageNamed:@"img_things_detail_04_00_sensor_humidity_offline"]; } break; } return image; } - (NSString *)conditionForMandatary { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *condition = nil; switch (typeId) { case 12002://온도 condition = [self conditionForHeatInSeason]; break; case 12004://밝기 condition = [self conditionForLuminance]; break; case 12006://습도 condition = [self conditionForHumidityInSeason]; break; } return condition; } - (UIImage *)backgroundImageForMandatary:(NSString *)value { NSInteger typeId = [_cmdclsTypeId integerValue]; UIImage *bgImage = nil; if (!value || [value isEmptyString] || [value isEqualToString:@"none"]) { bgImage = [UIImage imageNamed:@"img_thing_icon_bg_default"]; return bgImage; } switch (typeId) { case 11006: case 11011: case 11013: case 11017://sensor-binary if ([value isEqualToString:@"TRUE"]) { bgImage = [UIImage imageNamed:@"img_thing_icon_bg_active"]; } else if ([value isEqualToString:@"FALSE"]) { bgImage = [UIImage imageNamed:@"img_thing_icon_bg_default"]; } break; case 12002: case 12006: case 12004://sensor-multilevel bgImage = [UIImage imageNamed:@"img_thing_icon_bg_active"]; break; case 36002://valve if ([value isEqualToString:@"OPEN"]) { bgImage = [UIImage imageNamed:@"img_thing_icon_bg_active"]; } else if ([value isEqualToString:@"CLOSE"]) { bgImage = [UIImage imageNamed:@"img_thing_icon_bg_default"]; } break; case 17002://switch if ([value isEqualToString:@"ON"]) { bgImage = [UIImage imageNamed:@"img_thing_icon_bg_active"]; } else if ([value isEqualToString:@"OFF"]) { bgImage = [UIImage imageNamed:@"img_thing_icon_bg_default"]; } break; } return bgImage; } - (instancetype)initWithSubItem:(ItemSubModel *)subItem {//mobile devices. if (self = [super init]) { self.deviceId = subItem.sourceId; self.deviceName = subItem.sourceName; self.nodeId = subItem.sourceSubId; self.nodeName = subItem.sourceSubName; self.conditionTypeCode = subItem.conditionTypeCode; self.dataTypeCode = subItem.dataTypeCode; self.cmdclsValue = subItem.cmdclsValue; self.nickname = subItem.nickname; self.deleteYn = subItem.deleteYn; // objc_setAssociatedObject(self, @"CHECK_STATUS", @YES, OBJC_ASSOCIATION_COPY_NONATOMIC); //for checkbox [[JDFacade facade] setRadioButtonStatus:@YES object:self]; //for radio box } return self; } + (NSString *)contentValueMsgByCmdClsCode:(NSString *)cmdclsCode cmdclsTypeId:(NSString *)cmdclsTypeId contentValue:(NSString *)contentValue { DeviceModel *tmpDevice = [[DeviceModel alloc] init]; tmpDevice.cmdclsCode = cmdclsCode; tmpDevice.cmdclsTypeId = cmdclsTypeId; tmpDevice.contentValue = contentValue; return tmpDevice.contentValueMsg; } @end @implementation DeviceListModel @end @implementation NodeModel //- (CmdClsType)cmdclsType { // return [DeviceModel cmdclsTypeForCode:_cmdclsCode]; //} - (BOOL)isDeviceOnline { return _refDevice.isOnline; } @end @implementation DeviceDetailModel @end @implementation PredefinedDeviceModel //+ (JSONKeyMapper *)keyMapper { // // NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; // // //self // [dictionary setValue:@"cmdclsTypeSystemName" forKey:@"cmdcls_type_system_name"]; // [dictionary setValue:@"cmdclsTypeId" forKey:@"cmdcls_type_id"]; // [dictionary setValue:@"cmdclsCode" forKey:@"cmdcls_code"]; // [dictionary setValue:@"deviceProfileId" forKey:@"device_profile_id"]; // [dictionary setValue:@"createDatetime" forKey:@"create_datetime"]; // [dictionary setValue:@"cmdclsTypeName" forKey:@"cmdcls_type_name"]; // [dictionary setValue:@"deviceName" forKey:@"device_name"]; // [dictionary setValue:@"profileName" forKey:@"profile_name"]; // [dictionary setValue:@"imageFileName" forKey:@"image_file_name"]; // [dictionary setValue:@"contentValue" forKey:@"content_value"]; // [dictionary setValue:@"nodeName" forKey:@"node_name"]; // [dictionary setValue:@"cmdclsCount" forKey:@"cmdcls_count"]; // [dictionary setValue:@"nodeId" forKey:@"node_id"]; // [dictionary setValue:@"deviceId" forKey:@"device_id"]; // [dictionary setValue:@"cmdclsValue" forKey:@"cmdcls_value"]; // [dictionary setValue:@"conditionTypeCode" forKey:@"condition_type_code"]; // [dictionary setValue:@"dataTypeCode" forKey:@"data_type_code"]; // // return [[JSONKeyMapper alloc] initWithDictionary:dictionary]; //} - (instancetype)initWithSubItem:(ItemSubModel *)subItem { if (self = [super init]) { self.deviceId = subItem.sourceId; self.deviceName = subItem.sourceName; self.nodeId = subItem.sourceSubId; self.nodeName = subItem.sourceSubName; self.conditionTypeCode = subItem.conditionTypeCode; self.dataTypeCode = subItem.dataTypeCode; self.cmdclsValue = subItem.cmdclsValue; self.predCmdclsValue = subItem.predCmdclsValue; self.deleteYn = subItem.deleteYn; [[JDFacade facade] setCheckBoxStatus:@YES object:self]; //for check box [[JDFacade facade] setRadioButtonStatus:@YES object:self]; //for radio box } return self; } @end @implementation PredefinedDeviceListModel @end @implementation DeviceIconModel @end @implementation DeviceIconListModel @end