Guest User

gree.h

a guest
Jan 13th, 2017
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. #pragma once
  2.  
  3. namespace GREE {
  4.  
  5. enum {
  6.       HDR_MARK                          = 9000
  7.     , HDR_SPACE                         = 4500
  8.     , BIT_MARK                          = 650
  9.     , ONE_SPACE                         = 1690
  10.     , ZERO_SPACE                        = 600
  11.     , TAIL_SPACE                        = 21000
  12.  
  13. //  , BIT_MARK                          = 600
  14. //  , ONE_SPACE                         = 1690
  15. //  , GREE_ZERO_SPACE                   = 600
  16.  
  17.     , MODE_AUTO                         = 0b000
  18.     , MODE_COOL                         = 0b100
  19.     , MODE_DRY                          = 0b010
  20.     , MODE_FAN                          = 0b110
  21.     , MODE_HEAT                         = 0b001
  22.  
  23.     , FAN_AUTO                          = 0b00
  24.     , FAN_LOW                           = 0b10
  25.     , FAN_MEDIUM                        = 0b01
  26.     , FAN_HIGH                          = 0b11
  27.  
  28.     , ON                                = 1
  29.     , OFF                               = 0
  30. };
  31.  
  32. enum TEMP {
  33.       TEMP_16C                          = 0b0000
  34.     , TEMP_17C                          = 0b1000
  35.     , TEMP_18C                          = 0b0100
  36.     , TEMP_19C                          = 0b1100
  37.     , TEMP_20C                          = 0b0010
  38.     , TEMP_21C                          = 0b1010
  39.     , TEMP_22C                          = 0b0110
  40.     , TEMP_23C                          = 0b1110
  41.     , TEMP_24C                          = 0b0001
  42.     , TEMP_25C                          = 0b1001
  43.     , TEMP_26C                          = 0b0101
  44.     , TEMP_27C                          = 0b1101
  45.     , TEMP_28C                          = 0b0011
  46.     , TEMP_29C                          = 0b1011
  47.     , TEMP_30C                          = 0b0111
  48.  
  49.     , TEMP_UNIQUE                       = 0b1111
  50.  
  51.     , TEMP_MIN                          = 16
  52.     , TEMP_MAX                          = 30
  53.     , TEMP_RANGE                        = TEMP_MAX - TEMP_MIN
  54.     , TEMP_CNT                          = TEMP_RANGE + 1
  55. };
  56.  
  57. enum TEMP_TAIL_SHIFT {
  58.       SHIFT_INVALID                     = 0
  59.     , SHIFT_AUTO                        = TEMP_RANGE - (28 - TEMP_MIN) // not sure
  60.     , SHIFT_COOL                        = TEMP_RANGE - (27 - TEMP_MIN)
  61.     , SHIFT_DRY                         = TEMP_RANGE - (26 - TEMP_MIN)
  62.     , SHIFT_FAN                         = TEMP_RANGE - (25 - TEMP_MIN)
  63.     , SHIFT_HEAT                        = TEMP_RANGE - (24 - TEMP_MIN)
  64. };
  65.  
  66. enum TEMP_TAIL_UNIQUE {
  67.       UNIQUE_TEMP_INVALID               = 0
  68.     , UNIQUE_TEMP_AUTO                  = 27 - TEMP_MIN // not sure
  69.     , UNIQUE_TEMP_COOL                  = 26 - TEMP_MIN
  70.     , UNIQUE_TEMP_DRY                   = 25 - TEMP_MIN
  71.     , UNIQUE_TEMP_FAN                   = 24 - TEMP_MIN
  72.     , UNIQUE_TEMP_HEAT                  = 23 - TEMP_MIN
  73. };
  74.  
  75. enum TEMP_TAIL_UNIQUE_SHIFTED {
  76.       UNIQUE_TEMP_SHIFTED_INVALID       = 0
  77.     , UNIQUE_TEMP_SHIFTED_AUTO          = 19 - TEMP_MIN // not sure
  78.     , UNIQUE_TEMP_SHIFTED_COOL          = 20 - TEMP_MIN
  79.     , UNIQUE_TEMP_SHIFTED_DRY           = 21 - TEMP_MIN
  80.     , UNIQUE_TEMP_SHIFTED_FAN           = 22 - TEMP_MIN
  81.     , UNIQUE_TEMP_SHIFTED_HEAT          = 23 - TEMP_MIN
  82. };
  83.  
  84. extern TEMP temp[TEMP_CNT];
  85.  
  86. struct packet_struct {
  87.     u32 tail                            : 10;
  88.     u32 light                           : 1;
  89.     u32 turbo                           : 1;
  90.     u32 timer                           : 8;
  91.     u32 temp                            : 4;
  92.     u32 sleep                           : 1;
  93.     u32 swing                           : 1;
  94.     u32 fan                             : 2;
  95.     u32 power                           : 1;
  96.     u32 mode                            : 3;
  97. };
  98.  
  99. union packet {
  100.     u32 storage;
  101.     packet_struct bit;
  102. };
  103.  
  104. void send_ac_packet                     (const packet packet, IRsend &irsend);
  105.  
  106. };
  107.  
  108. //
  109. //
  110. //
Add Comment
Please, Sign In to add comment