// Generated by json_to_model #import "JDObject.h" #import "DeviceModel.h" #import "CustomRadioGroup.h" #import "CustomCheckBox.h" @implementation DeviceModel //FIRMWARE_VERSION //SWITCH_BINARY //SWITCH_MULTILEVEL //SWITCH_COLOR //SENSOR_BINARY //SENSOR_MULTILEVEL //THERMOSTAT_MODE //THERMOSTAT_FAN_MODE //THERMOSTAT_SETPOINT //LOCK //METER //AV_CONTROL_PLAYBACK //HOME_MODE #define ksCmdClassTypeFirmwareVersion @"FIRMWARE_VERSION" #define ksCmdClassTypeSwitchBinary @"SWITCH_BINARY" #define ksCmdClassTypeSwitchMultiLevel @"SWITCH_MULTILEVEL" #define ksCmdClassTypeSwitchColor @"SWITCH_COLOR" #define ksCmdClassTypeSensorBinary @"SENSOR_BINARY" #define ksCmdClassTypeSensorMultiLevel @"SENSOR_MULTILEVEL" #define ksCmdClassTypeThermostatMode @"THERMOSTAT_MODE" #define ksCmdClassTypeThermostatFanMode @"THERMOSTAT_FAN_MODE" #define ksCmdClassTypeThermostatSetPoint @"THERMOSTAT_SETPOINT" #define ksCmdClassTypeLock @"LOCK" #define ksCmdClassTypeMeterCurrent @"METER_CURRENT" #define ksCmdClassTypeMeterTotal @"METER_TOTAL" #define ksCmdClassTypeAVControlPlayback @"AV_CONTROL_PLAYBACK" #define ksCmdClassTypeHomeMode @"HOME_MODE" #define ksCmdClassTypeCameraStream @"CAMERA_STREAM" #define ksCmdClassTypeCameraPT @"CAMERA_PT" #define ksCmdClassTypeSpeedControl @"SPEED_CONTROL" //+ (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]; //} + (CmdClsType)cmdclsTypeForCode:(NSString *)code { CmdClsType type = -1; if ([code isEqualToString:ksCmdClassTypeFirmwareVersion]) { type = CmdClsTypeFirmwareVersion; } else if ([code isEqualToString:ksCmdClassTypeSwitchBinary]) { type = CmdClsTypeSwitchBinary; } else if ([code isEqualToString:ksCmdClassTypeSwitchMultiLevel]) { type = CmdClsTypeSwitchMultiLevel; } else if ([code isEqualToString:ksCmdClassTypeSwitchColor]) { type = CmdClsTypeSwitchColor; } else if ([code isEqualToString:ksCmdClassTypeSensorBinary]) { type = CmdClsTypeSensorBinary; } else if ([code isEqualToString:ksCmdClassTypeSensorMultiLevel]) { type = CmdClsTypeSensorMultiLevel; } else if ([code isEqualToString:ksCmdClassTypeThermostatMode]) { type = CmdClsTypeThermostatMode; } else if ([code isEqualToString:ksCmdClassTypeThermostatFanMode]) { type = CmdClsTypeThermostatFanMode; } else if ([code isEqualToString:ksCmdClassTypeThermostatSetPoint]) { type = CmdClsTypeThermostatSetPoint; } else if ([code isEqualToString:ksCmdClassTypeLock]) { type = CmdClsTypeLock; } else if ([code isEqualToString:ksCmdClassTypeMeterCurrent]) { type = CmdClsTypeMeterCurrent; } else if ([code isEqualToString:ksCmdClassTypeMeterTotal]) { type = CmdClsTypeMeterTotal; } else if ([code isEqualToString:ksCmdClassTypeAVControlPlayback]) { type = CmdClsTypeAVControlPlayback; } else if ([code isEqualToString:ksCmdClassTypeHomeMode]) { type = CmdClsTypeHomeMode; } else if ([code isEqualToString:ksCmdClassTypeCameraStream]) { type = CmdClsTypeCameraStream; } else if ([code isEqualToString:ksCmdClassTypeCameraPT]) { type = CmdClsTypeCameraPT; } else if ([code isEqualToString:ksCmdClassTypeSpeedControl]) { type = CmdClsTypeSpeedControl; } return type; } - (CmdClsType)cmdclsType { return [DeviceModel cmdclsTypeForCode:_cmdclsCode]; } - (NSInteger)cmdclsValueMsgLength { NSInteger length = 0; NSArray *array = nil; switch ([self cmdclsType]) { case CmdClsTypeLock: array = [self cmdclsValueListOfLock]; break; default: break; } for (CmdClsValueModel *tmpCmdclsValue in array) { if (tmpCmdclsValue.cmdclsValueMsg.length > length) { length = tmpCmdclsValue.cmdclsValueMsg.length; } } return length; } - (NSString *)cmdclsValueMsgLongest { NSString *hstring = nil; NSArray *array = nil; switch ([self cmdclsType]) { case CmdClsTypeSwitchBinary: array = [self cmdclsValueListOfSwitchBinary]; break; case CmdClsTypeLock: array = [self cmdclsValueListOfLock]; break; default: break; } NSUInteger highest = 0; for (CmdClsValueModel *tmpCmdclsValue in array) { if (tmpCmdclsValue.cmdclsValueMsg.length > highest) { highest = tmpCmdclsValue.cmdclsValueMsg.length; hstring = tmpCmdclsValue.cmdclsValueMsg; } } return hstring; } - (NSString *)cmdclsValueMsg { switch ([self cmdclsType]) { case CmdClsTypeSensorBinary: _cmdclsValueMsg = [self cmdclsValueMsgOfSensorBinary]; break; case CmdClsTypeThermostatMode: _cmdclsValueMsg = [self cmdclsValueMsgOfThermostatMode]; break; case CmdClsTypeLock: _cmdclsValueMsg = [self cmdclsValueMsgOfLock]; break; case CmdClsTypeSwitchBinary: _cmdclsValueMsg = [self cmdclsValueMsgOfSwitchBinary]; break; case CmdClsTypeSpeedControl: _cmdclsValueMsg = [self cmdclsValueMsgOfSpeedControl]; break; case CmdClsTypeAVControlPlayback: _cmdclsValueMsg = [self cmdclsValueMsgOfAVPlayback]; break; default: break; } return _cmdclsValueMsg; } - (NSArray *)cmdclsValueList { switch ([self cmdclsType]) { case CmdClsTypeThermostatMode: _cmdclsValueList = [self cmdclsValueListOfThermostatMode]; break; case CmdClsTypeLock: _cmdclsValueList = [self cmdclsValueListOfLock]; break; case CmdClsTypeSpeedControl: _cmdclsValueList = [self cmdclsValueListOfSpeedControl]; break; default: break; } return _cmdclsValueList; } - (NSArray *)cmdclsValueListOfThermostatMode { NSMutableArray *array = [(NSMutableArray *)[NSMutableArray alloc] init]; NSInteger typeId = [_cmdclsTypeId integerValue]; switch (typeId) { case 13001: { [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"OFF", @"cmdcls_value_msg": NSLocalizedString(@"꺼짐", @"꺼짐")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"COOL", @"cmdcls_value_msg": NSLocalizedString(@"냉방", @"냉방")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"HEAT", @"cmdcls_value_msg": NSLocalizedString(@"난방", @"난방")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"AUTO", @"cmdcls_value_msg": NSLocalizedString(@"자동", @"자동")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"FAN_ONLY", @"cmdcls_value_msg": NSLocalizedString(@"환기", @"환기")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"DRY_AIR", @"cmdcls_value_msg": NSLocalizedString(@"제습", @"제습")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"AWAY", @"cmdcls_value_msg": NSLocalizedString(@"외출", @"외출")} error:nil]]; } break; case 13002: { [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"OFF", @"cmdcls_value_msg": NSLocalizedString(@"꺼짐", @"꺼짐")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"COOL", @"cmdcls_value_msg": NSLocalizedString(@"냉방", @"냉방")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"HEAT", @"cmdcls_value_msg": NSLocalizedString(@"난방", @"난방")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"AUTO", @"cmdcls_value_msg": NSLocalizedString(@"자동", @"자동")} error:nil]]; } break; case 13003: { [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"OFF", @"cmdcls_value_msg": NSLocalizedString(@"꺼짐", @"꺼짐")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"HEAT", @"cmdcls_value_msg": NSLocalizedString(@"난방", @"난방")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"AWAY", @"cmdcls_value_msg": NSLocalizedString(@"외출", @"외출")} error:nil]]; } break; case 13004: { [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"OFF", @"cmdcls_value_msg": NSLocalizedString(@"꺼짐", @"꺼짐")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"COOL", @"cmdcls_value_msg": NSLocalizedString(@"냉방", @"냉방")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"FAN_ONLY", @"cmdcls_value_msg": NSLocalizedString(@"환기", @"환기")} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"DRY_AIR", @"cmdcls_value_msg": NSLocalizedString(@"제습", @"제습")} error:nil]]; } break; } return array; } - (NSArray *)cmdclsValueListOfSwitchBinary { NSMutableArray *array = [(NSMutableArray *)[NSMutableArray alloc] init]; NSInteger typeId = [_cmdclsTypeId integerValue]; switch (typeId) { case 17001: { [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"ON", @"cmdcls_value_msg": @"켜짐"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"OFF", @"cmdcls_value_msg": @"꺼짐"} error:nil]]; break; } } return array; } - (NSArray *)cmdclsValueListOfLock { NSMutableArray *array = [(NSMutableArray *)[NSMutableArray alloc] init]; NSInteger typeId = [_cmdclsTypeId integerValue]; switch (typeId) { case 14001: { [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"LOCKED", @"cmdcls_value_msg": @"잠김"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"UNCLOCKED", @"cmdcls_value_msg": @"열림"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"JAMMED", @"cmdcls_value_msg": @"걸림"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"FORCED_OPEN", @"cmdcls_value_msg": @"수동"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"UNSPECIFIED", @"cmdcls_value_msg": @"오류"} error:nil]]; } break; case 14002: case 14003: [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"LOCKED", @"cmdcls_value_msg": @"잠김"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"UNCLOCKED", @"cmdcls_value_msg": @"열림"} error:nil]]; break; } return array; } - (NSArray *)cmdclsValueListOfSpeedControl { NSMutableArray *array = [(NSMutableArray *)[NSMutableArray alloc] init]; NSInteger typeId = [_cmdclsTypeId integerValue]; switch (typeId) { case 20001: { [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"OFF", @"cmdcls_value_msg": @"꺼짐"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"LOW", @"cmdcls_value_msg": @"약"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"MEDIUM", @"cmdcls_value_msg": @"중"} error:nil]]; [array addObject:[[CmdClsValueModel alloc] initWithDictionary:@{@"cmdcls_value":@"HIGH", @"cmdcls_value_msg": @"강"} error:nil]]; } break; } return array; } - (NSString *)cmdclsValueMsgOfSensorBinary { 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: 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 = @"-"; } case 11015: if ([self.contentValue isEqualToString:@"TRUE"]) { msg = NSLocalizedString(@"들어옴", @"들어옴"); } else if ([self.contentValue isEqualToString:@"FALSE"]) { msg = NSLocalizedString(@"나감", @"나감"); } else { msg = @"-"; } break; } return msg; } - (NSString *)cmdclsValueMsgOfThermostatMode { 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 *)cmdclsValueMsgOfLock { 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 *)cmdclsValueMsgOfSwitchBinary { NSInteger typeId = [_cmdclsTypeId integerValue]; NSString *msg = ksEmptyString; switch (typeId) { case 17001: if ([self.contentValue isEqualToString:@"ON"]) { msg = NSLocalizedString(@"켜짐", @"켜짐"); } else if ([self.contentValue isEqualToString:@"OFF"]) { msg = NSLocalizedString(@"꺼짐", @"꺼짐"); } else { msg = @"-"; } break; } return msg; } - (NSString *)cmdclsValueMsgOfSpeedControl { 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 *)cmdclsValueMsgOfAVPlayback { 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; } - (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 *)unit { if ([_unit isEqualToString:@"\\"]) { _unit = @"₩"; } return _unit; } @end @implementation DeviceListModel @end @implementation NodeModel //- (CmdClsType)cmdclsType { // return [DeviceModel cmdclsTypeForCode:_cmdclsCode]; //} @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 GroupsModel @end @implementation GroupsListModel @end @implementation CmdClsValueModel @end @implementation DeviceIconModel @end @implementation DeviceIconListModel @end