CommandClassControlView.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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 120.0f
  14. #define kfControlMaxWidth IPHONE_WIDTH - 120.0f
  15. #define kfControlDefaultHeight 35.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. __weak CustomButton *_btnSwitch;
  44. __weak CustomLabel *_lblContentValueMsg;
  45. }
  46. @property (assign, nonatomic) BOOL isON;
  47. @property (weak, nonatomic) IBOutlet CustomButton *btnSwitch;
  48. @property (weak, nonatomic) IBOutlet CustomLabel *lblContentValueMsg;
  49. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnSwitchWidth;
  50. - (IBAction)btnSwitchTouched:(id)sender;
  51. @end
  52. @interface CommandClassSwitchMultiLevelView : CommandClassControlView {
  53. NSTimer *_pressTimer;
  54. @protected
  55. CGFloat _minValue, _maxValue, _currentValue, _step;
  56. }
  57. @property (weak, nonatomic) IBOutlet CustomButton *btnLabel;
  58. @property (weak, nonatomic) IBOutlet CustomButton *btnPlus;
  59. @property (weak, nonatomic) IBOutlet CustomButton *btnMinus;
  60. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintBtnLabelWidth;
  61. - (IBAction)btnPlusTouchDown:(id)sender;
  62. - (IBAction)btnPlusTouchUp:(id)sender;
  63. - (IBAction)btnMinusTouchDown:(id)sender;
  64. - (IBAction)btnMinusTouchUp:(id)sender;
  65. @end
  66. @interface CommandClassValveView : CommandClassSwitchView {
  67. @protected
  68. }
  69. @property (assign, nonatomic) BOOL isOpened;
  70. @end
  71. #pragma mark - Sensors
  72. @class CustomLabel;
  73. @interface CommandClassSensorBinaryView : CommandClassControlView
  74. @property (weak, nonatomic) IBOutlet CustomLabel *lblControl;
  75. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintControlLabelWidth;
  76. @end
  77. @interface CommandClassSensorMultiLevelView : CommandClassSensorBinaryView
  78. @end
  79. @interface CommandClassMeterCurrentView : CommandClassControlView
  80. @property (weak, nonatomic) IBOutlet CustomLabel *lblMeter;
  81. @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintControlLabelWidth;
  82. @end
  83. @interface CommandClassMeterTotalView : CommandClassMeterCurrentView
  84. @end