DeviceModel.h 5.2 KB

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