CommandClassControlView.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. //
  2. // CommandClassControlView.h
  3. // kneet
  4. //
  5. // Created by Jason Lee on 3/16/15.
  6. // Copyright (c) 2015 ntels. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #define kfSwitchLabelPadding 20.0f
  10. #define kfCommandClassSwitchLeftPadding 30.0f
  11. #define kfCommandClassSwitchRightPadding 40.0f
  12. #define kfCommandClassLockRightPadding 20.0f
  13. #define kfControlDefaultWidth 134.0f
  14. #define kfControlMaxWidth IPHONE_WIDTH - 120.0f
  15. #define kfControlDefaultHeight 32.0f
  16. #import "DeviceModel.h"
  17. typedef void(^NodeCommandCompletionBlock)(id result);
  18. typedef void(^NodeCommandFailureBlock)(id error);
  19. @interface CommandClassControlView : UIView {
  20. @protected
  21. NSString *_requestValueForOn, *_requestValueForOff;
  22. BOOL _enable, _isConditionMode, _isConditionTypeMode;
  23. DeviceModel *_device;
  24. NodeModel *_node;
  25. }
  26. @property (strong, nonatomic) DeviceModel *device;
  27. @property (strong, nonatomic) NodeModel *node;
  28. @property (assign, nonatomic) BOOL enable;
  29. @property (assign, nonatomic) BOOL isConditionMode;
  30. @property (assign, nonatomic) BOOL isConditionTypeMode;
  31. + (CommandClassControlView *)viewForCommandClass:(CmdClsType)cmdClsType;
  32. + (void)requestNodeCommand:(NSDictionary *)parameters requestValue:(NSString *)requestValue completionHandler:(NodeCommandCompletionBlock)completion failureHandler:(NodeCommandFailureBlock)failure;
  33. - (NSDictionary *)parameterForNodeCommand;
  34. - (CGSize)sizeForIntrinsic;
  35. - (CGSize)sizeForIntrinsicForItemCount:(NSInteger)count;
  36. - (void)updateThingsViewContoller;
  37. @end
  38. @class CustomSwitch;
  39. @class CustomButton;
  40. @interface CommandClassSwitchView : CommandClassControlView {
  41. @protected
  42. NSString *_sOn, *_sOff;
  43. }
  44. @property (assign, nonatomic) BOOL isON;
  45. @property (weak, nonatomic) IBOutlet CustomButton *btnSwitch;
  46. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnSwitchWidth;
  47. - (IBAction)btnSwitchTouched:(id)sender;
  48. @end
  49. @interface CommandClassSwitchMultiLevelView : CommandClassControlView {
  50. NSTimer *_pressTimer;
  51. @protected
  52. CGFloat _minValue, _maxValue, _currentValue, _step;
  53. }
  54. @property (weak, nonatomic) IBOutlet CustomButton *btnLabel;
  55. @property (weak, nonatomic) IBOutlet CustomButton *btnPlus;
  56. @property (weak, nonatomic) IBOutlet CustomButton *btnMinus;
  57. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnLabelWidth;
  58. - (IBAction)btnPlusTouchDown:(id)sender;
  59. - (IBAction)btnPlusTouchUp:(id)sender;
  60. - (IBAction)btnMinusTouchDown:(id)sender;
  61. - (IBAction)btnMinusTouchUp:(id)sender;
  62. @end
  63. @interface CommandClassThermostatModeView : CommandClassControlView {
  64. NSArray *_modeArray;
  65. NSInteger _modeIndex;
  66. NSTimer *_pressTimer;
  67. }
  68. @property (weak, nonatomic) IBOutlet CustomButton *btnLabel;
  69. @property (weak, nonatomic) IBOutlet CustomButton *btnNext;
  70. @property (weak, nonatomic) IBOutlet CustomButton *btnPrev;
  71. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnLabelWidth;
  72. - (IBAction)btnNextTouchDown:(id)sender;
  73. - (IBAction)btnNextTouchUp:(id)sender;
  74. - (IBAction)btnPrevTouchDown:(id)sender;
  75. - (IBAction)btnPrevTouchUp:(id)sender;
  76. @end
  77. @interface CommandClassThermostatFanModeView : CommandClassThermostatModeView
  78. @end
  79. @interface CommandClassThermostatSetPointView : CommandClassControlView {
  80. @protected
  81. CGFloat _minValue, _maxValue, _currentValue, _step;
  82. NSTimer *_pressTimer;
  83. }
  84. @property (weak, nonatomic) IBOutlet CustomButton *btnLabel;
  85. @property (weak, nonatomic) IBOutlet CustomButton *btnUp;
  86. @property (weak, nonatomic) IBOutlet CustomButton *btnDown;
  87. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnLabelWidth;
  88. - (IBAction)btnUpTouchDown:(id)sender;
  89. - (IBAction)btnUpTouchUp:(id)sender;
  90. - (IBAction)btnDownTouchDown:(id)sender;
  91. - (IBAction)btnDownTouchUp:(id)sender;
  92. @end
  93. @interface CommandClassLockView : CommandClassSwitchView {
  94. @protected
  95. NSString *_sLocked, *_sUnlocked;
  96. }
  97. @property (assign, nonatomic) BOOL isLocked;
  98. @property (weak, nonatomic) IBOutlet CustomButton *btnLabel;
  99. @property (weak, nonatomic) IBOutlet CustomButton *btnLock;
  100. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnLabelWidth;
  101. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnLockWidth;
  102. - (IBAction)btnLockTouched:(id)sender;
  103. @end
  104. @interface CommandClassAVPlaybackView : CommandClassControlView
  105. @property (assign, nonatomic) BOOL isPlay;
  106. @property (weak, nonatomic) IBOutlet CustomButton *btnPlayback;
  107. - (IBAction)btnPlaybackTouched:(id)sender;
  108. @end
  109. #pragma mark - Sensors
  110. @class CustomLabel;
  111. @interface CommandClassSensorBinaryView : CommandClassControlView
  112. @property (weak, nonatomic) IBOutlet CustomLabel *lblControl;
  113. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintControlLabelWidth;
  114. @end
  115. @interface CommandClassSensorMultiLevelView : CommandClassSensorBinaryView
  116. @end
  117. @interface CommandClassMeterCurrentView : CommandClassControlView
  118. @property (weak, nonatomic) IBOutlet CustomLabel *lblMeter;
  119. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintControlLabelWidth;
  120. @end
  121. @interface CommandClassMeterTotalView : CommandClassMeterCurrentView
  122. @end
  123. @interface CommandClassCameraStreamView : CommandClassControlView
  124. @property (weak, nonatomic) IBOutlet CustomLabel *lblCamera;
  125. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintControlLabelWidth;
  126. @end
  127. @interface CommandClassSpeedControlView : CommandClassControlView {
  128. NSArray *_modeArray;
  129. NSInteger _modeIndex;
  130. NSTimer *_pressTimer;
  131. }
  132. @property (weak, nonatomic) IBOutlet CustomButton *btnLabel;
  133. @property (weak, nonatomic) IBOutlet CustomButton *btnNext;
  134. @property (weak, nonatomic) IBOutlet CustomButton *btnPrev;
  135. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnLabelWidth;
  136. - (IBAction)btnNextTouchDown:(id)sender;
  137. - (IBAction)btnNextTouchUp:(id)sender;
  138. - (IBAction)btnPrevTouchDown:(id)sender;
  139. - (IBAction)btnPrevTouchUp:(id)sender;
  140. @end