crankyoldgit / IRremoteESP8266

Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
GNU Lesser General Public License v2.1
2.84k stars 810 forks source link

Panasonic AC 128bit #2042

Open mrninhvn opened 8 months ago

mrninhvn commented 8 months ago

What brand/model IR demodulator are you using?

Panasonic CZ-RWS3

Information

I am trying to decode a Panasonic AC signal with 128bit length, format show as follow:

union PanasonicAc128Protocol {
  uint8_t raw[kPanasonicAc128StateLength];  ///< The state in IR code form.
  struct {
    // Byte 0-4
    uint8_t Header[5];
    // Byte 5
    uint8_t Type        :2;
    uint8_t Fan         :2;
    uint8_t             :1;
    uint8_t Mode        :3;
    // Byte 6
    uint8_t             :1;
    uint8_t Temp        :5;
    uint8_t             :1;
    uint8_t isAuto      :1;
    // Byte 7
    uint8_t             :8; // 0xC0
    // Byte 8-9
    uint8_t             :8; // 0x00
    uint8_t             :8; // 0x00
    // Byte 10
    uint8_t SwingV      :3;
    uint8_t             :5;
    // Byte 11 // Checksum
    uint8_t Check1      :8;
    // Byte 12
    uint8_t             :8; // 0x02
    // Byte 13
    uint8_t             :4;
    uint8_t             :1;
    uint8_t Sensor      :1;
    uint8_t Ion         :1;
    uint8_t             :1;
    // Byte 14
    uint8_t             :6;
    uint8_t Econo       :1;
    uint8_t             :1;
    // Byte 15
    uint8_t Check2      :8;
  };
};

I have problem with 2 byte checksum, the strange thing is that the checksum changes every 0x0F depending on the temperature level and mode, with no rule. Thís is a sample of full data: 0x40001481260D9AC00000003E02E7076D

Any idea?

mrninhvn commented 8 months ago

Here is full data CZ-RWS3 Datas.csv