From e269607a12b65ec307a4a06f3d9ef2202367cde0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=BA=D0=BE=D0=B2=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Thu, 9 Apr 2015 08:53:05 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@82 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- src/io/pibasetransfer.cpp | 19 ++++++++++++++----- utils/system_daemon/daemon.cpp | 1 - 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/io/pibasetransfer.cpp b/src/io/pibasetransfer.cpp index 1098171c..6d09854a 100644 --- a/src/io/pibasetransfer.cpp +++ b/src/io/pibasetransfer.cpp @@ -116,8 +116,8 @@ void PIBaseTransfer::received(PIByteArray data) { case pt_Start: if (is_pause && (is_sending || is_receiving)) { if (header.session_id == h.session_id) { - resumed(); is_pause = false; + resumed(); return; } } @@ -160,14 +160,20 @@ void PIBaseTransfer::received(PIByteArray data) { break; case pt_Pause: if (header.session_id == h.session_id) { - if (!is_pause && pause_tm.elapsed_s() < timeout_) { +// piCout << "receive pause"; + if (!is_pause && pause_tm.elapsed_s() < timeout_/10) { +// piCout << "resume"; sendReply(pt_Start); return; } - if (is_pause && pause_tm.elapsed_s() > timeout_/10) sendReply(pt_Pause); - pause_tm.reset(); if (!is_pause) paused(); is_pause = true; + if (is_receiving && pause_tm.elapsed_m() > 10) { +// piCout << "send pause"; + sendReply(pt_Pause); + } + if (is_sending) send_tm.reset(); + pause_tm.reset(); } break; default: break; @@ -196,6 +202,8 @@ bool PIBaseTransfer::send_process() { --i; piMSleep(1); if (is_pause) { + piMSleep(10); +// piCout << "send pause"; sendReply(pt_Pause); if (pause_tm.elapsed_s() > timeout())return finish_send(false); } @@ -224,6 +232,7 @@ bool PIBaseTransfer::send_process() { } if (is_pause) { piMSleep(10); +// piCout << "send pause"; sendReply(pt_Pause); if (pause_tm.elapsed_s() > timeout())return finish_send(false); else continue; @@ -458,7 +467,7 @@ void PIBaseTransfer::finish_receive(bool ok, bool quet) { void PIBaseTransfer::diagChanged(PIDiagnostics::Quality new_quality, PIDiagnostics::Quality old_quality) { if (is_receiving) { if (new_quality == PIDiagnostics::Failure) { - //piCout << "disconnected!"; + piCout << "disconnected!"; stopReceive(); } } diff --git a/utils/system_daemon/daemon.cpp b/utils/system_daemon/daemon.cpp index b726d545..c974da95 100644 --- a/utils/system_daemon/daemon.cpp +++ b/utils/system_daemon/daemon.cpp @@ -45,7 +45,6 @@ Daemon::TileFileProgress::TileFileProgress(): PIScreenTile() { buttons = new TileButtons("fd_buttons"); buttons->content << TileButtons::Button("Pause", CellFormat()); buttons->content << TileButtons::Button("Cancel", CellFormat()); - buttons->content << TileButtons::Button("Pause", CellFormat()); buttons->back_format.color_back = label_file->back_format.color_back = label_speed->back_format.color_back = Yellow; label_file->back_format.color_char = label_speed->back_format.color_char = Black; label_file->content.resize(1);