MonitorDlg.cpp
上传用户:pumpssky
上传日期:2007-12-07
资源大小:110k
文件大小:3k
源码类别:

MacOS编程

开发平台:

C/C++

  1. // MonitorDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "gmark.h"
  5. #include "MonitorDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CMonitorDlg dialog
  13. CMonitorDlg::CMonitorDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CMonitorDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CMonitorDlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. }
  20. void CMonitorDlg::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(CMonitorDlg)
  24. // NOTE: the ClassWizard will add DDX and DDV calls here
  25. //}}AFX_DATA_MAP
  26. }
  27. BEGIN_MESSAGE_MAP(CMonitorDlg, CDialog)
  28. //{{AFX_MSG_MAP(CMonitorDlg)
  29. // NOTE: the ClassWizard will add message map macros here
  30. //}}AFX_MSG_MAP
  31. END_MESSAGE_MAP()
  32. /////////////////////////////////////////////////////////////////////////////
  33. // CMonitorDlg message handlers
  34. void CMonitorDlg::UpdateGpsData(GPS_DATA *gpsData)
  35. {
  36. TCHAR sTemp[100];
  37. /************ Longitude ****************************/
  38. swprintf(sTemp, _T("%f"), gpsData->Longitude);
  39. SetDlgItemText(IDC_EDIT_LON, sTemp);
  40. swprintf(sTemp, _T("%d"), gpsData->LonDeg);
  41. SetDlgItemText(IDC_EDIT_LON_DEG, sTemp);
  42. swprintf(sTemp, _T("%d"), gpsData->LonMin);
  43. SetDlgItemText(IDC_EDIT_LON_MIN, sTemp);
  44. swprintf(sTemp, _T("%f"), gpsData->LonSec);
  45. SetDlgItemText(IDC_EDIT_LON_SEC, sTemp);
  46. /************ Latitude ****************************/
  47. swprintf(sTemp, _T("%f"), gpsData->Latitude);
  48. SetDlgItemText(IDC_EDIT_LAT, sTemp);
  49. swprintf(sTemp, _T("%d"), gpsData->LatDeg);
  50. SetDlgItemText(IDC_EDIT_LAT_DEG, sTemp);
  51. swprintf(sTemp, _T("%d"), gpsData->LatMin);
  52. SetDlgItemText(IDC_EDIT_LAT_MIN, sTemp);
  53. swprintf(sTemp, _T("%f"), gpsData->LatSec);
  54. SetDlgItemText(IDC_EDIT_LAT_SEC, sTemp);
  55. /************ number of satellites ***************/
  56. swprintf(sTemp, _T("%d"), gpsData->SatCount);
  57. SetDlgItemText(IDC_EDIT_SATNUM, sTemp);
  58. /************ mode of position *******************/
  59. swprintf(sTemp, _T("%d"), gpsData->Status);
  60. SetDlgItemText(IDC_EDIT_STATUS, sTemp);
  61. swprintf(sTemp, _T("%f"), gpsData->X);
  62. SetDlgItemText(IDC_EDIT_X, sTemp);
  63. swprintf(sTemp, _T("%f"), gpsData->Y);
  64. SetDlgItemText(IDC_EDIT_Y, sTemp);
  65. swprintf(sTemp, _T("%f"), gpsData->PDOP);
  66. SetDlgItemText(IDC_EDIT_PDOP, sTemp);
  67. swprintf(sTemp, _T("%f"), gpsData->HDOP);
  68. SetDlgItemText(IDC_EDIT_HDOP, sTemp);
  69. swprintf(sTemp, _T("%f"), gpsData->VDOP);
  70. SetDlgItemText(IDC_EDIT_VDOP, sTemp);
  71. }
  72. void CMonitorDlg::UpdateGpsMsg(const char *msg)
  73. {
  74. TCHAR wBuff[GPS_MAX_NEMASIZE+1];
  75. // Convert from MultiByte to UNICODE
  76.     mbstowcs(wBuff, msg, GPS_MAX_NEMASIZE);
  77.     // Display the received data
  78. AddText2Edit( IDC_EDIT_GPSMSG, wBuff );
  79. }
  80. void CMonitorDlg::UpdateRtcmData(const char *rtcm)
  81. {
  82. TCHAR wBuff[GPS_MAX_NEMASIZE+1];
  83. // Convert from MultiByte to UNICODE
  84.     mbstowcs(wBuff, rtcm, GPS_MAX_NEMASIZE);
  85. SetDlgItemText( IDC_EDIT_RECV, wBuff );
  86. }
  87. void CMonitorDlg::AddText2Edit(int idc, LPCTSTR text)
  88. {
  89.     CString szText;
  90. CEdit *pEdit = (CEdit *)GetDlgItem(IDC_EDIT_GPSMSG);
  91. GetDlgItemText(IDC_EDIT_GPSMSG, szText);
  92. szText += text;
  93. SetDlgItemText(IDC_EDIT_GPSMSG, szText);
  94. int nCount = pEdit->GetLineCount();
  95. if(nCount>6)
  96. {
  97. SetDlgItemText(IDC_EDIT_GPSMSG, text);
  98. }
  99. }