mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2024-12-28 07:47:35 +03:00
Merge branch 'dev' into feat/unirf-protocols
This commit is contained in:
commit
5b6f2cb80d
20
CHANGELOG.md
20
CHANGELOG.md
@ -1,10 +1,18 @@
|
||||
### New changes
|
||||
* Wifi Marauder app update (by @0xchocolate)
|
||||
* Updated Universal remote assets (by @Amec0e)
|
||||
* Fixed music player
|
||||
* Fixed typos in subghz encoders
|
||||
* OFW: New NFC info screens
|
||||
* OFW: U2F fixes
|
||||
* New universal remote for projectors
|
||||
* OFW: New LF-RFID subsystem (New protocols, Animal tags support)
|
||||
* Updated universal remote assets (by @Amec0e)
|
||||
* Renamed UniRF Remix -> Sub-GHz Remote
|
||||
* Replaced Hex/Dec converter with Multi Converter plugin [(by theisolinearchip)](https://github.com/theisolinearchip/flipperzero_stuff)
|
||||
* New update screen, readme pictures (by @Svaarich)
|
||||
* Fixed crash if Center button is pressed on the "update success" screen via screensharing
|
||||
* Temporary disabled one log call in picopass plugin to fix crash/freeze on Read screen
|
||||
* OFW: Picopass load/info/delete
|
||||
* OFW: SubGhz: add protocol Magellen
|
||||
* OFW: Fix mifare ultralight/ntag unlock
|
||||
* OFW: Dolphin level thresholds update
|
||||
* OFW: Add MFC 1/4K 4/7bUID to "Add Manually"
|
||||
* OFW: Other fixes and changes
|
||||
|
||||
**Note: Prefer installing using web updater or by self update package, all needed assets will be installed**
|
||||
|
||||
|
@ -32,6 +32,9 @@ Our Discord Community:
|
||||
* Picopass/iClass plugin included in releases
|
||||
* Recompiled IR TV Universal Remote for ALL buttons
|
||||
* Universal A/C and Audio(soundbars, etc.) remote
|
||||
* Universal remote for Projectors
|
||||
* BadUSB keyboard layouts
|
||||
* Customizable Flipper name
|
||||
* Other small fixes and changes throughout
|
||||
|
||||
See changelog in releases for latest updates!
|
||||
@ -88,7 +91,7 @@ See changelog in releases for latest updates!
|
||||
|
||||
### **Plugins**
|
||||
|
||||
## [- Configure UniversalRF Remix App](https://github.com/Eng1n33r/flipperzero-firmware/blob/dev/documentation/UniRFRemix.md)
|
||||
## [- Configure Sub-GHz Remote App](https://github.com/Eng1n33r/flipperzero-firmware/blob/dev/documentation/SubGHzRemotePlugin.md)
|
||||
|
||||
## [- Barcode Generator](https://github.com/Eng1n33r/flipperzero-firmware/blob/dev/documentation/BarcodeGenerator.md)
|
||||
|
||||
|
@ -61,9 +61,9 @@ static bool desktop_view_slideshow_input(InputEvent* event, void* context) {
|
||||
furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_SHORT);
|
||||
} else if(event->type == InputTypeRelease) {
|
||||
furi_timer_stop(instance->timer);
|
||||
if(!slideshow_is_one_page(model->slideshow)) {
|
||||
/*if(!slideshow_is_one_page(model->slideshow)) {
|
||||
furi_timer_start(instance->timer, DESKTOP_SLIDESHOW_POWEROFF_LONG);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
view_commit_model(instance->view, update_view);
|
||||
|
@ -35,6 +35,11 @@ void LfRfidAppSceneWrite::on_enter(LfRfidApp* app, bool /* need_restore */) {
|
||||
popup->set_icon(0, 3, &I_RFIDDolphinSend_97x61);
|
||||
|
||||
app->view_controller.switch_to<PopupVM>();
|
||||
|
||||
size_t size = protocol_dict_get_data_size(app->dict, app->protocol_id);
|
||||
app->old_key_data = (uint8_t*)malloc(size);
|
||||
protocol_dict_get_data(app->dict, app->protocol_id, app->old_key_data, size);
|
||||
|
||||
lfrfid_worker_start_thread(app->lfworker);
|
||||
lfrfid_worker_write_start(
|
||||
app->lfworker, (LFRFIDProtocol)app->protocol_id, lfrfid_write_callback, app);
|
||||
@ -76,4 +81,8 @@ void LfRfidAppSceneWrite::on_exit(LfRfidApp* app) {
|
||||
app->view_controller.get<PopupVM>()->clean();
|
||||
lfrfid_worker_stop(app->lfworker);
|
||||
lfrfid_worker_stop_thread(app->lfworker);
|
||||
|
||||
size_t size = protocol_dict_get_data_size(app->dict, app->protocol_id);
|
||||
protocol_dict_set_data(app->dict, app->protocol_id, app->old_key_data, size);
|
||||
free(app->old_key_data);
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ ReturnCode picopass_detect_card(int timeout) {
|
||||
|
||||
err = rfalPicoPassPollerCheckPresence();
|
||||
if(err != ERR_RF_COLLISION) {
|
||||
FURI_LOG_E(TAG, "rfalPicoPassPollerCheckPresence error %d", err);
|
||||
//FURI_LOG_E(TAG, "rfalPicoPassPollerCheckPresence error %d", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,6 @@ App(
|
||||
"dialogs",
|
||||
],
|
||||
icon="A_UniRFRemix_14",
|
||||
stack_size=2 * 1024,
|
||||
stack_size=4 * 1024,
|
||||
order=11,
|
||||
)
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.9 KiB |
@ -522,9 +522,17 @@ static void lfrfid_worker_mode_write_process(LFRFIDWorker* worker) {
|
||||
&read_result);
|
||||
|
||||
if(state == LFRFIDWorkerReadOK) {
|
||||
protocol_dict_get_data(worker->protocols, protocol, read_data, data_size);
|
||||
bool read_success = false;
|
||||
|
||||
if(memcmp(read_data, verify_data, data_size) == 0) {
|
||||
if(read_result == protocol) {
|
||||
protocol_dict_get_data(worker->protocols, protocol, read_data, data_size);
|
||||
|
||||
if(memcmp(read_data, verify_data, data_size) == 0) {
|
||||
read_success = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(read_success) {
|
||||
if(worker->write_cb) {
|
||||
worker->write_cb(LFRFIDWorkerWriteOK, worker->cb_ctx);
|
||||
}
|
||||
|
@ -112,8 +112,11 @@ static bool subghz_protocol_encoder_came_get_upload(SubGhzProtocolEncoderCame* i
|
||||
instance->encoder.size_upload = size_upload;
|
||||
}
|
||||
//Send header
|
||||
instance->encoder.upload[index++] =
|
||||
level_duration_make(false, (uint32_t)subghz_protocol_came_const.te_short * 36);
|
||||
instance->encoder.upload[index++] = level_duration_make(
|
||||
false,
|
||||
((instance->generic.data_count_bit == subghz_protocol_came_const.min_count_bit_for_found) ?
|
||||
(uint32_t)subghz_protocol_came_const.te_short * 39 :
|
||||
(uint32_t)subghz_protocol_came_const.te_short * 76));
|
||||
//Send start bit
|
||||
instance->encoder.upload[index++] =
|
||||
level_duration_make(true, (uint32_t)subghz_protocol_came_const.te_short);
|
||||
@ -213,8 +216,8 @@ void subghz_protocol_decoder_came_feed(void* context, bool level, uint32_t durat
|
||||
SubGhzProtocolDecoderCame* instance = context;
|
||||
switch(instance->decoder.parser_step) {
|
||||
case CameDecoderStepReset:
|
||||
if((!level) && (DURATION_DIFF(duration, subghz_protocol_came_const.te_short * 51) <
|
||||
subghz_protocol_came_const.te_delta * 51)) { //Need protocol 36 te_short
|
||||
if((!level) && (DURATION_DIFF(duration, subghz_protocol_came_const.te_short * 56) <
|
||||
subghz_protocol_came_const.te_delta * 47)) {
|
||||
//Found header CAME
|
||||
instance->decoder.parser_step = CameDecoderStepFoundStartBit;
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ bool subghz_protocol_encoder_chamb_code_deserialize(void* context, FlipperFormat
|
||||
FURI_LOG_E(TAG, "Deserialize error");
|
||||
break;
|
||||
}
|
||||
if(instance->generic.data_count_bit <
|
||||
if(instance->generic.data_count_bit >
|
||||
subghz_protocol_chamb_code_const.min_count_bit_for_found) {
|
||||
FURI_LOG_E(TAG, "Wrong number of bits in key");
|
||||
break;
|
||||
@ -441,7 +441,7 @@ bool subghz_protocol_decoder_chamb_code_deserialize(void* context, FlipperFormat
|
||||
if(!subghz_block_generic_deserialize(&instance->generic, flipper_format)) {
|
||||
break;
|
||||
}
|
||||
if(instance->generic.data_count_bit <
|
||||
if(instance->generic.data_count_bit >
|
||||
subghz_protocol_chamb_code_const.min_count_bit_for_found) {
|
||||
FURI_LOG_E(TAG, "Wrong number of bits in key");
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user