Update came_atomo.c

invert data to upload
This commit is contained in:
r3df0xx
2022-06-06 16:25:46 +03:00
parent 42bf635ab3
commit 78de90d429
+9 -3
View File
@@ -143,6 +143,12 @@ static void subghz_protocol_encoder_came_atomo_get_upload(SubGhzProtocolEncoderC
uint32_t lo = pack[4] << 24 | pack[5] << 16 | pack[6] << 8 | pack[7];
instance->generic.data = (uint64_t)hi << 32 | lo;
FURI_LOG_I(TAG, "encrypted data: %02X %02X %02X %02X %02X %02X %02X %02X\n", pack[0], pack[1], pack[2], pack[3], pack[4], pack[5], pack[6], pack[7]);
uint64_t invert = instance->generic.data ^ 0xFFFFFFFFFFFFFFFF;
hi = invert >> 32;
lo = invert & 0xFFFFFFFF;
FURI_LOG_I(TAG, "inverted to upload: %02X %02X %02X %02X %02X %02X %02X %02X\n", (hi >> 24), ((hi >> 16) & 0xFF), ((hi >> 8) & 0xFF), (hi & 0xFF),
(lo >> 24), ((lo >> 16) & 0xFF), ((lo >> 8) & 0xFF), (lo & 0xFF));
//Send start bits Atomo
instance->encoder.upload[index++] =
level_duration_make(true, (uint32_t)subghz_protocol_came_atomo_const.te_long);
@@ -150,10 +156,10 @@ static void subghz_protocol_encoder_came_atomo_get_upload(SubGhzProtocolEncoderC
level_duration_make(false, (uint32_t)subghz_protocol_came_atomo_const.te_short);
for(uint8_t i = instance->generic.data_count_bit; i > 0; i--) {
if(!manchester_encoder_advance(&enc_state, !bit_read(instance->generic.data, i - 1), &result)) {
if(!manchester_encoder_advance(&enc_state, !bit_read(invert, i - 1), &result)) {
instance->encoder.upload[index++] =
subghz_protocol_encoder_came_atomo_add_duration_to_upload(result);
manchester_encoder_advance(&enc_state, !bit_read(instance->generic.data, i - 1), &result);
manchester_encoder_advance(&enc_state, !bit_read(invert, i - 1), &result);
}
instance->encoder.upload[index++] =
subghz_protocol_encoder_came_atomo_add_duration_to_upload(result);
@@ -165,7 +171,7 @@ static void subghz_protocol_encoder_came_atomo_get_upload(SubGhzProtocolEncoderC
}
//pause
instance->encoder.upload[index++] =
level_duration_make(false, (uint32_t)subghz_protocol_came_atomo_const.te_long * 60);
level_duration_make(false, (uint32_t)subghz_protocol_came_atomo_const.te_long * 57);
instance->encoder.size_upload = index;
}