mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 20:49:49 +04:00
cli_vcp: handle tx/rx before connext/disconnect
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
#define VCP_IF_NUM 0
|
#define VCP_IF_NUM 0
|
||||||
#define VCP_MESSAGE_Q_LEN 8
|
#define VCP_MESSAGE_Q_LEN 8
|
||||||
|
|
||||||
|
#define CLI_VCP_TRACE
|
||||||
#ifdef CLI_VCP_TRACE
|
#ifdef CLI_VCP_TRACE
|
||||||
#define VCP_TRACE(...) FURI_LOG_T(__VA_ARGS__)
|
#define VCP_TRACE(...) FURI_LOG_T(__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
@@ -195,6 +196,17 @@ static void cli_vcp_internal_event_happened(void* context) {
|
|||||||
CliVcpInternalEvent event = furi_thread_flags_wait(CliVcpInternalEventAll, FuriFlagWaitAny, 0);
|
CliVcpInternalEvent event = furi_thread_flags_wait(CliVcpInternalEventAll, FuriFlagWaitAny, 0);
|
||||||
furi_check(!(event & FuriFlagError));
|
furi_check(!(event & FuriFlagError));
|
||||||
|
|
||||||
|
if(event & CliVcpInternalEventRx) {
|
||||||
|
VCP_TRACE(TAG, "Rx");
|
||||||
|
cli_vcp_maybe_receive_data(cli_vcp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(event & CliVcpInternalEventTxDone) {
|
||||||
|
VCP_TRACE(TAG, "TxDone");
|
||||||
|
cli_vcp->is_currently_transmitting = false;
|
||||||
|
cli_vcp_maybe_send_data(cli_vcp);
|
||||||
|
}
|
||||||
|
|
||||||
if(event & CliVcpInternalEventDisconnected) {
|
if(event & CliVcpInternalEventDisconnected) {
|
||||||
if(!cli_vcp->is_connected) return;
|
if(!cli_vcp->is_connected) return;
|
||||||
FURI_LOG_D(TAG, "Disconnected");
|
FURI_LOG_D(TAG, "Disconnected");
|
||||||
@@ -234,17 +246,6 @@ static void cli_vcp_internal_event_happened(void* context) {
|
|||||||
cli_main_motd, NULL, cli_vcp->shell_pipe, cli_vcp->main_registry, &cli_main_ext_config);
|
cli_main_motd, NULL, cli_vcp->shell_pipe, cli_vcp->main_registry, &cli_main_ext_config);
|
||||||
cli_shell_start(cli_vcp->shell);
|
cli_shell_start(cli_vcp->shell);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(event & CliVcpInternalEventRx) {
|
|
||||||
VCP_TRACE(TAG, "Rx");
|
|
||||||
cli_vcp_maybe_receive_data(cli_vcp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(event & CliVcpInternalEventTxDone) {
|
|
||||||
VCP_TRACE(TAG, "TxDone");
|
|
||||||
cli_vcp->is_currently_transmitting = false;
|
|
||||||
cli_vcp_maybe_send_data(cli_vcp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ============
|
// ============
|
||||||
|
|||||||
Reference in New Issue
Block a user