DeviceModel.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. // Generated by json_to_model
  2. @import Foundation;
  3. #import "JDJSONModel.h"
  4. #import "ItemModel.h"
  5. typedef NS_ENUM(NSInteger, CmdClsType) {
  6. CmdClsTypeFirmwareVersion = 0,
  7. CmdClsTypeSwitchBinary,
  8. CmdClsTypeSwitchMultiLevel,
  9. CmdClsTypeSwitchColor,
  10. CmdClsTypeSensorBinary,
  11. CmdClsTypeSensorMultiLevel,
  12. CmdClsTypeThermostatMode,
  13. CmdClsTypeThermostatFanMode,
  14. CmdClsTypeThermostatSetPoint, //hold
  15. CmdClsTypeLock,
  16. CmdClsTypeMeterCurrent,
  17. CmdClsTypeMeterTotal,
  18. CmdClsTypeAVControlPlayback, //12
  19. CmdClsTypeHomeMode,
  20. CmdClsTypeSpeedControl,
  21. CmdClsTypeMeterCurrentForDAWON, //17
  22. CmdClsTypeMeterTotalForDAWON,
  23. };
  24. #define ksDeviceTypeControllerPrimary @"CONTROLLER_PRIMARY"
  25. #define ksDeviceTypeSlave @"SLAVE"
  26. #define ksDeviceProfileIdUnknown @"20001"
  27. @protocol CmdClsValueModel;
  28. @interface CmdClsValueModel : JDJSONModel
  29. @property (copy, nonatomic) NSString *cmdclsValue;
  30. @property (copy, nonatomic) NSString *cmdclsValueMsg;
  31. @end
  32. @protocol DeviceModel;
  33. @interface DeviceModel : ItemSubModel
  34. @property (copy, nonatomic) NSString *deviceId;
  35. @property (copy, nonatomic) NSString *deviceName;
  36. @property (copy, nonatomic) NSString *deviceProfileId;
  37. @property (copy, nonatomic) NSString *profileName;
  38. @property (copy, nonatomic) NSString *imageFileName;
  39. @property (copy, nonatomic) NSString *nodeId;
  40. @property (copy, nonatomic) NSString *nodeName;
  41. @property (copy, nonatomic) NSString *cmdclsTypeId;
  42. @property (copy, nonatomic) NSString *cmdclsTypeName;
  43. @property (copy, nonatomic) NSString *cmdclsTypeSystemName;
  44. @property (copy, nonatomic) NSString *createDatetime;
  45. @property (copy, nonatomic) NSString *updateDatetime;
  46. @property (copy, nonatomic) NSString *cmdclsCode;
  47. @property (copy, nonatomic) NSString *cmdclsCount;
  48. @property (copy, nonatomic) NSString *contentValue;
  49. @property (copy, nonatomic) NSString *networkYn;
  50. @property (copy, nonatomic) NSString *deviceType;
  51. //detail
  52. @property (copy, nonatomic) NSString *prdName;
  53. @property (copy, nonatomic) NSString *deviceModelId;
  54. @property (copy, nonatomic) NSString *deviceMfId;
  55. @property (copy, nonatomic) NSString *firmwareVersion;
  56. @property (copy, nonatomic) NSString *deviceProtocolType; //연결타입
  57. @property (copy, nonatomic) NSString *removableYn; //장치삭제 가능 여부
  58. @property (copy, nonatomic) NSString *activationCode; //장치 인증 코드
  59. //predefine devices property
  60. @property (copy, nonatomic) NSString *controlMinValue;
  61. @property (copy, nonatomic) NSString *controlMaxValue;
  62. @property (copy, nonatomic) NSString *controlStep;
  63. @property (copy, nonatomic) NSString *unit;
  64. //camera
  65. @property (copy, nonatomic) NSString *ip;
  66. @property (copy, nonatomic) NSString *port;
  67. @property (copy, nonatomic) NSString *cameraId;
  68. @property (copy, nonatomic) NSString *cameraPassword;
  69. //Command
  70. @property (copy, nonatomic) NSString *commandId;
  71. @property (copy, nonatomic) NSString *status;
  72. @property (copy, nonatomic) NSArray<CmdClsValueModel> *cmdclsValueList;
  73. @property (assign, nonatomic) CmdClsType cmdclsType;
  74. @property (assign, nonatomic) BOOL enable;
  75. @property (assign, nonatomic, readonly) NSInteger cmdclsValueMsgLength;
  76. @property (strong, nonatomic) NSString<Ignore> *cmdclsValueMsgLongest;
  77. - (instancetype)initWithSubItem:(ItemSubModel *)subItem;
  78. @end
  79. @interface DeviceListModel : JDJSONModel
  80. @property (copy, nonatomic) NSArray<DeviceModel> *list;
  81. @end
  82. @interface NodeModel : DeviceModel
  83. //@property (copy, nonatomic) NSString *deviceId;
  84. //@property (copy, nonatomic) NSString *nodeId;
  85. //@property (copy, nonatomic) NSString *nodeName;
  86. //@property (copy, nonatomic) NSString *cmdclsTypeId;
  87. //@property (copy, nonatomic) NSString *cmdclsTypeName;
  88. //@property (copy, nonatomic) NSString *cmdclsTypeSystemName;
  89. //@property (copy, nonatomic) NSString *createDatetime;
  90. //@property (copy, nonatomic) NSString *cmdclsCode;
  91. //
  92. //@property (assign, nonatomic) CmdClsType cmdclsType;
  93. @end
  94. @interface DeviceDetailModel : DeviceModel
  95. @property (copy, nonatomic) NSArray<DeviceModel> *nodes;
  96. @property (copy, nonatomic) NSArray<DeviceModel> *relateDevice;
  97. @end
  98. @protocol ItemModel;
  99. @protocol PredefinedDeviceModel;
  100. @interface PredefinedDeviceModel : DeviceModel
  101. - (instancetype)initWithSubItem:(ItemSubModel *)subItem;
  102. @end
  103. @interface PredefinedDeviceListModel : JDJSONModel
  104. @property (strong, nonatomic) NSArray<PredefinedDeviceModel> *list;
  105. @end
  106. @protocol GroupsModel;
  107. @interface GroupsModel : JDJSONModel
  108. @property (copy, nonatomic) NSString *dvcgrpId;
  109. @property (copy, nonatomic) NSString *dvcgrpName;
  110. @property (copy, nonatomic) NSString *deviceCount;
  111. @property (copy, nonatomic) NSString *defaultYn;
  112. @property (copy, nonatomic) NSArray<DeviceModel> *devices;
  113. //UI용으로 사용
  114. @property (assign, nonatomic) BOOL expanded;
  115. @property (assign, nonatomic) BOOL unfold;
  116. @end
  117. @interface GroupsListModel : JDJSONModel
  118. @property (copy, nonatomic) NSArray<GroupsModel> *groups;
  119. @end
  120. @protocol DeviceIconModel;
  121. @interface DeviceIconModel : JDJSONModel
  122. @property (copy, nonatomic) NSString *imageSequence;
  123. @property (copy, nonatomic) NSString *imageFileName;
  124. @end
  125. @interface DeviceIconListModel : JDJSONModel
  126. @property (copy, nonatomic) NSArray<DeviceIconModel> *list;
  127. @end