Garmin Fleet Management Controller  2.19.0
CFileTransferProgressDlg.cpp
Go to the documentation of this file.
1 /*********************************************************************
2 *
3 * MODULE NAME:
4 * CFileTransferProgressDlg.cpp
5 *
6 * Copyright 2008-2011 by Garmin Ltd. or its subsidiaries.
7 *---------------------------------------------------------------------
8 * $NoKeywords$
9 *********************************************************************/
10 #include "stdafx.h"
11 #include "CFmiApplication.h"
13 #include "CFmiPcAppDlg.h"
14 #include "Event.h"
15 
16 IMPLEMENT_DYNAMIC( CFileTransferProgressDlg, CDialog )
17 
18 BEGIN_MESSAGE_MAP( CFileTransferProgressDlg, CDialog )
19  ON_BN_CLICKED( IDC_FILE_PROGRESS_BTN_STOP, OnBnClickedStop )
20  ON_MESSAGE( WM_EVENT( EVENT_FMI_FILE_TRANSFER_PROGRESS ), OnFileTransferProgress )
21  ON_MESSAGE( WM_EVENT( EVENT_FMI_FILE_TRANSFER_STATE_CHANGED ), OnFileTransferStateChange )
22 END_MESSAGE_MAP()
23 
24 //----------------------------------------------------------------------
28 //----------------------------------------------------------------------
29 CFileTransferProgressDlg::CFileTransferProgressDlg
30  (
31  CWnd * aParent,
32  FmiApplicationLayer & aCom
33  )
34  : CDialog( IDD_FILE_TRANSFER_PROGRESS, aParent )
35  , mCom( aCom )
36  , mTransferStatus( _T("") )
37 {
38  mStopButtonClicked = FALSE;
39 }
40 
41 //----------------------------------------------------------------------
43 //----------------------------------------------------------------------
45 {
46 }
47 
48 //----------------------------------------------------------------------
51 //----------------------------------------------------------------------
53  (
54  CDataExchange * aDataExchange
55  )
56 {
57  CDialog::DoDataExchange( aDataExchange );
58  DDX_Text( aDataExchange, IDC_FILE_PROGRESS_TXT_STATUS, mTransferStatus );
59  DDX_Control( aDataExchange, IDC_FILE_PROGRESS_PROGRESS_BAR, mProgressBar );
60 }
61 
62 //----------------------------------------------------------------------
67 //----------------------------------------------------------------------
69 {
70  CDialog::OnInitDialog();
71 
72  // display the current mTransferStatus
73  OnFileTransferStateChange( 0, NULL );
74 
75  return TRUE;
76 } /* OnInitDialog() */
77 
78 //----------------------------------------------------------------------
83 //----------------------------------------------------------------------
84 afx_msg LRESULT CFileTransferProgressDlg::OnFileTransferStateChange( WPARAM, LPARAM )
85 {
86  switch ( mCom.mFileTransferState )
87  {
88  //set mTransferStatus
90  GetDlgItem( IDOK )->EnableWindow( TRUE );
91  mTransferStatus.Format( _T("No Transfer") );
92  break;
94  GetDlgItem( IDOK )->EnableWindow( FALSE );
95  mTransferStatus.Format( _T("Starting Transfer") );
96  break;
98  GetDlgItem( IDOK )->EnableWindow( FALSE );
99  mProgressBar.SetRange32( 0, mCom.mFileTransferSize );
100  mProgressBar.SetPos( 0 );
101  break;
103  GetDlgItem( IDOK )->EnableWindow( TRUE );
104  GetDlgItem( IDC_FILE_PROGRESS_BTN_STOP )->EnableWindow( FALSE );
105  mTransferStatus.Format( _T("Done") );
106  break;
108  GetDlgItem( IDC_FILE_PROGRESS_BTN_STOP )->EnableWindow( FALSE );
109  if( mStopButtonClicked )
110  mTransferStatus.Format( _T("Canceled at user request") );
111  else
112  mTransferStatus.Format( _T("Failed") );
113  GetDlgItem( IDOK )->ShowWindow( SW_HIDE );
114  GetDlgItem( IDCANCEL )->ShowWindow( SW_SHOW );
115  break;
116  default:
117  break;
118  }
119  UpdateData( FALSE );
120  return 0;
121 }
122 
123 //----------------------------------------------------------------------
128 //----------------------------------------------------------------------
129 afx_msg LRESULT CFileTransferProgressDlg::OnFileTransferProgress( WPARAM, LPARAM )
130 {
131  //update progress bar
133 
134  //update label
135  mTransferStatus.Format
136  (
137  _T("Sent %u/%u bytes"),
140  );
141  UpdateData( FALSE );
142 
143  return 0;
144 
145 } /* OnFileTransferStateChange() */
146 
147 //----------------------------------------------------------------------
150 //----------------------------------------------------------------------
152 {
155 } /* OnBnClickedStop() */
156 
#define IDC_FILE_PROGRESS_BTN_STOP
Definition: resource.h:228
Modal dialog displaying the status of the file transfer.
uint32 mFileTransferBytesDone
Number of bytes of the file that have been transferred so far.
#define FALSE
Definition: garmin_types.h:46
uint32 mFileTransferSize
Total number of bytes in the file being transferred.
#define TRUE
Definition: garmin_types.h:45
CProgressCtrl mProgressBar
The progress bar.
#define IDC_FILE_PROGRESS_TXT_STATUS
Definition: resource.h:231
Serial communication controller for Garmin and FMI packets.
afx_msg LRESULT OnFileTransferProgress(WPARAM, LPARAM)
Handler for File Transfer Progress event.
CString mTransferStatus
Current status of the transfer, as a string.
#define IDC_FILE_PROGRESS_PROGRESS_BAR
Definition: resource.h:230
transfer_state mFileTransferState
State of the current file transfer (in progress, completed, etc.)
#define IDD_FILE_TRANSFER_PROGRESS
Definition: resource.h:31
BOOL mStopButtonClicked
If TRUE, the Stop button was clicked.
afx_msg void OnBnClickedStop()
Click handler for the Stop button.
FmiApplicationLayer & mCom
Reference to the FMI communication controller.
virtual void DoDataExchange(CDataExchange *aDataExchange)
Perform dialog data exchange and validation.
virtual ~CFileTransferProgressDlg()
Destructor.
BOOL OnInitDialog()
Initialize the dialog.
#define WM_EVENT(_event)
Translation from an application event to the corresponding Windows message.
void stopFileTransfer()
Stop a file transfer protocol.
afx_msg LRESULT OnFileTransferStateChange(WPARAM, LPARAM)
Handle a File Transfer State Change event.