@@ -37,6 +37,7 @@ struct BarCodeScript {
37
37
uint8_t file_buf [FILE_BUFFER_LEN ];
38
38
uint8_t buf_len ;
39
39
bool is_file_end ;
40
+ FuriHalSerialHandle * serial_handle ;
40
41
};
41
42
42
43
/**
@@ -57,26 +58,29 @@ static void scan_sound() {
57
58
/**
58
59
*
59
60
*/
60
- static void usb_uart_serial_init () {
61
+ static void usb_uart_serial_init (BarCodeScript * bc_script ) {
61
62
furi_hal_usb_unlock ();
62
63
Cli * cli = furi_record_open (RECORD_CLI );
63
64
cli_session_close (cli );
64
65
furi_record_close (RECORD_CLI );
65
66
furi_check (furi_hal_usb_set_config (& usb_cdc_single , NULL ) == true);
66
- furi_hal_console_disable ();
67
- furi_hal_uart_set_br (FuriHalUartIdUSART1 , UART_BAUD );
67
+
68
+ bc_script -> serial_handle = furi_hal_serial_control_acquire (FuriHalSerialIdUsart );
69
+
70
+ furi_hal_serial_init (bc_script -> serial_handle , UART_BAUD );
68
71
}
69
72
70
73
/**
71
74
*
72
75
*/
73
- static void usb_uart_serial_deinit () {
76
+ static void usb_uart_serial_deinit (BarCodeScript * bc_script ) {
74
77
furi_hal_usb_unlock ();
75
78
furi_check (furi_hal_usb_set_config (& usb_cdc_single , NULL ) == true);
76
79
Cli * cli = furi_record_open (RECORD_CLI );
77
80
cli_session_open (cli , & cli_vcp );
78
81
furi_record_close (RECORD_CLI );
79
- furi_hal_console_enable ();
82
+ furi_hal_serial_deinit (bc_script -> serial_handle );
83
+ furi_hal_serial_control_release (bc_script -> serial_handle );
80
84
}
81
85
/**
82
86
*
@@ -121,7 +125,7 @@ static int32_t bc_scanner_worker(void* context) {
121
125
//uint8_t buff[5] = {'p', 'r', 'i', 'v', 'k'};
122
126
//uint8_t state = 99;
123
127
124
- usb_uart_serial_init ();
128
+ usb_uart_serial_init (bc_script );
125
129
126
130
while (1 ) {
127
131
//state = furi_hal_cdc_get_ctrl_line_state(FuriHalUartIdUSART1);
@@ -192,7 +196,7 @@ static int32_t bc_scanner_worker(void* context) {
192
196
}
193
197
}
194
198
195
- usb_uart_serial_deinit ();
199
+ usb_uart_serial_deinit (bc_script );
196
200
storage_file_close (script_file );
197
201
storage_file_free (script_file );
198
202
FURI_LOG_I (WORKER_TAG , "End" );
0 commit comments