Просмотр исходного кода

[FL-1441] ApiHalVcp: use DTR signal for ready flag. Fix memory leak in subghz. (#519)

* ApiHalVcp: use DTR signal for ready flag. Fix memory leak in subghz.
* Backport VCP fix to F5
あく 4 лет назад
Родитель
Сommit
9e69164b1b

+ 4 - 0
applications/subghz/subghz.c

@@ -134,6 +134,10 @@ SubGhz* subghz_alloc() {
 void subghz_free(SubGhz* subghz) {
     furi_assert(subghz);
 
+    // Packet Test
+    view_dispatcher_remove_view(subghz->view_dispatcher, SubGhzViewStatic);
+    subghz_static_free(subghz->subghz_static);
+
     // Packet Test
     view_dispatcher_remove_view(subghz->view_dispatcher, SubGhzViewTestPacket);
     subghz_test_packet_free(subghz->subghz_test_packet);

+ 2 - 2
firmware/targets/f5/api-hal/api-hal-vcp.c

@@ -43,9 +43,9 @@ void _api_hal_vcp_deinit() {
 void _api_hal_vcp_control_line(uint8_t state) {
     // bit 0: DTR state, bit 1: RTS state
     // bool dtr = state & 0b01;
-    bool rts = state & 0b10;
+    bool dtr = state & 0b1;
 
-    if (rts) {
+    if (dtr) {
         if (!api_hal_vcp->alive) {
             api_hal_vcp->alive = true;
             _api_hal_vcp_rx_callback(&ascii_soh, 1); // SOH

+ 2 - 2
firmware/targets/f6/api-hal/api-hal-vcp.c

@@ -43,9 +43,9 @@ void _api_hal_vcp_deinit() {
 void _api_hal_vcp_control_line(uint8_t state) {
     // bit 0: DTR state, bit 1: RTS state
     // bool dtr = state & 0b01;
-    bool rts = state & 0b10;
+    bool dtr = state & 0b1;
 
-    if (rts) {
+    if (dtr) {
         if (!api_hal_vcp->alive) {
             api_hal_vcp->alive = true;
             _api_hal_vcp_rx_callback(&ascii_soh, 1); // SOH