summaryrefslogtreecommitdiff
path: root/Bus/Horloge/HorlogeDlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Bus/Horloge/HorlogeDlg.cpp')
-rw-r--r--Bus/Horloge/HorlogeDlg.cpp347
1 files changed, 0 insertions, 347 deletions
diff --git a/Bus/Horloge/HorlogeDlg.cpp b/Bus/Horloge/HorlogeDlg.cpp
deleted file mode 100644
index b6ac3d9..0000000
--- a/Bus/Horloge/HorlogeDlg.cpp
+++ /dev/null
@@ -1,347 +0,0 @@
-// HorlogeDlg.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "Horloge.h"
-#include "HorlogeDlg.h"
-#include "HorlogeParseCmdLine.h"
-
-#include "IvyApplication.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CHorlogeDlg dialog
-
-CHorlogeDlg::CHorlogeDlg(CWnd* pParent /*=NULL*/)
- : CDialog(CHorlogeDlg::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CHorlogeDlg)
- m_busnumber = _T("");
- m_big_speed = FALSE;
- m_filename = _T("");
- //}}AFX_DATA_INIT
- // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- GetSystemTime(&current_time);
- GetSystemTime(&start_time);
- bus = NULL;
- rate = 1.0;
-}
-
-void CHorlogeDlg::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CHorlogeDlg)
- DDX_Control(pDX, IDC_SETTIME, m_setTime);
- DDX_Control(pDX, IDC_APPLIST, m_applist);
- DDX_Control(pDX, IDC_SPEED, m_Speed);
- DDX_Control(pDX, IDC_TIME, m_Time);
- DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber);
- DDX_Check(pDX, IDC_BIGSPEED, m_big_speed);
- DDX_Text(pDX, IDC_FILENAME, m_filename);
- //}}AFX_DATA_MAP
- DDX_Control(pDX, IDC_FILEPROGRESS, file_progress);
-}
-
-BEGIN_MESSAGE_MAP(CHorlogeDlg, CDialog)
- //{{AFX_MSG_MAP(CHorlogeDlg)
- ON_WM_PAINT()
- ON_WM_QUERYDRAGICON()
- ON_BN_CLICKED(IDC_IVYSTART, OnIvystart)
- ON_BN_CLICKED(IDC_PAUSE, OnPause)
- ON_BN_CLICKED(IDC_START, OnStart)
- ON_NOTIFY(DTN_DATETIMECHANGE, IDC_SETTIME, OnDatetimechangeSettime)
- ON_BN_CLICKED(IDC_BACKWARD, OnBackward)
- ON_BN_CLICKED(IDC_FORWARD, OnForward)
- ON_BN_CLICKED(IDC_BACK_5, OnBack5)
- ON_BN_CLICKED(IDC_BACK_2, OnBack2)
- ON_BN_CLICKED(IDC_BACK_1, OnBack1)
- ON_BN_CLICKED(IDC_FORW_1, OnForw1)
- ON_BN_CLICKED(IDC_FORW_2, OnForw2)
- ON_BN_CLICKED(IDC_FORW_5, OnForw5)
- ON_BN_CLICKED(IDC_FILE, OnFile)
- ON_BN_CLICKED(IDC_NORMAL_SPEED, OnNormalSpeed)
- ON_LBN_DBLCLK(IDC_APPLIST, OnDblclkApplist)
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CHorlogeDlg message handlers
-
-BOOL CHorlogeDlg::OnInitDialog()
-{
- CDialog::OnInitDialog();
-
- // Set the icon for this dialog. The framework does this automatically
- // when the application's main window is not a dialog
- //SetIcon(m_hIcon, TRUE); // Set big icon
- SetIcon(m_hIcon, FALSE); // Set small icon
-
- ((CButton*)GetDlgItem(IDC_FORWARD))->SetIcon( AfxGetApp()->LoadIcon(IDI_FORWARD));
- ((CButton*)GetDlgItem(IDC_BACKWARD))->SetIcon(AfxGetApp()->LoadIcon(IDI_BACKWARD));
- ((CButton*)GetDlgItem(IDC_PAUSE))->SetIcon(AfxGetApp()->LoadIcon(IDI_PAUSE));
- ((CButton*)GetDlgItem(IDC_START))->SetIcon(AfxGetApp()->LoadIcon(IDI_START));
- ((CButton*)GetDlgItem(IDC_NORMAL_SPEED))->SetIcon(AfxGetApp()->LoadIcon(IDI_NORMAL_SPEED));
-
-
- m_Time.Format(TEXT("%02d:%02d:%02d"), 0,0,0);
- m_Speed.Format(TEXT("%.2f"), rate );
- m_setTime.GetTime(&current_time);
-
- bus = new Ivy( "Horloge","Horloge READY",this,TRUE);
-
- // parse command Line Info
- HorlogeParseCmdLine cmd;
- cmd.m_busNumber = bus->GetDomain( NULL );
-
- AfxGetApp()->ParseCommandLine( cmd );
-
- // Set Argument from Command Line
- m_busnumber = cmd.m_busNumber;
-
-
- bus->BindMsg("^ClockEvent Time=([0-9]+):([0-9]+):([0-9]+) Rate=([-.0-9]+) Bs=([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyClockEvent ));
- bus->BindMsg("^ClockDatas Time=([0-9]+):([0-9]+):([0-9]+) Rate=([-.0-9]+) Bs=([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyClockEvent ));
- bus->BindMsg("^FileReadEvent Type=REJEU Name=([^ ]+) StartTime=([0-9]+):([0-9]+):([0-9]+) EndTime=([0-9]+):([0-9]+):([0-9]+)", BUS_CALLBACK_OF(CHorlogeDlg, IvyFileReadEvent ));
- bus->BindMsg("^rejeu READY", BUS_CALLBACK_OF(CHorlogeDlg, IvyRejeuReady));
-
- m_busnumber = bus->GetDomain( CStringA( m_busnumber ) );
- UpdateData(FALSE);
-
- // force bus start in case of start
- if ( cmd.m_start )
- OnIvystart();
-
- return TRUE; // return TRUE unless you set the focus to a control
-}
-
-// If you add a minimize button to your dialog, you will need the code below
-// to draw the icon. For MFC applications using the document/view model,
-// this is automatically done for you by the framework.
-
-void CHorlogeDlg::OnPaint()
-{
- if (IsIconic())
- {
- CPaintDC dc(this); // device context for painting
-
- SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
-
- // Center icon in client rectangle
- int cxIcon = GetSystemMetrics(SM_CXICON);
- int cyIcon = GetSystemMetrics(SM_CYICON);
- CRect rect;
- GetClientRect(&rect);
- int x = (rect.Width() - cxIcon + 1) / 2;
- int y = (rect.Height() - cyIcon + 1) / 2;
-
- // Draw the icon
- dc.DrawIcon(x, y, m_hIcon);
- }
- else
- {
- CDialog::OnPaint();
- }
-}
-
-// The system calls this to obtain the cursor to display while the user drags
-// the minimized window.
-HCURSOR CHorlogeDlg::OnQueryDragIcon()
-{
- return (HCURSOR) m_hIcon;
-}
-
-void CHorlogeDlg::OnIvystart()
-{
- UpdateData(TRUE);
- bus->stop();
- m_busnumber = bus->GetDomain( CStringA( m_busnumber ) );
- bus->start( CStringA(m_busnumber));
- m_applist.ResetContent();
- UpdateData(FALSE);
-}
-void CHorlogeDlg::OnApplicationConnected(IvyApplication *app)
-{
- m_applist.AddString( CString(app->GetName()) );
-}
-void CHorlogeDlg::OnApplicationDisconnected(IvyApplication *app)
-{
- m_applist.DeleteString(m_applist.FindString(0, CString(app->GetName())) );
-}
-
-void CHorlogeDlg::OnDblclkApplist()
-{
- CString name;
- int sel = m_applist.GetCurSel();
- m_applist.GetText( sel, name );
- IvyApplication *app = bus->GetApplication( CStringA(name) );
- if ( app )
- {
- bus->SendDieMsg(app);
- m_applist.DeleteString( sel );
- }
-
-}
-
-void CHorlogeDlg::IvyClockEvent( IvyApplication *app, int argc, const char **argv )
-{
- // Ivy ClockEvent Time=10:23:45 Rate=3 Bs=0
- current_time.wHour = atoi( *argv++ );
- current_time.wMinute = atoi( *argv++ );
- current_time.wSecond = atoi( *argv++ );
- rate = atof( *argv++ );
- int BigSpeed = atoi( *argv++ );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
- m_Speed.Format(TEXT("%.2f"), rate );
- m_big_speed = BigSpeed;
- m_setTime.SetTime(&current_time);
- CTime cur_time( current_time );
- CTime sta_time( start_time );
- CTimeSpan span = cur_time - sta_time;
- file_progress.SetPos( span.GetTotalSeconds() );
- TRACE("CHorlogeDlg::IvyClockEvent %d\n", span.GetTotalSeconds() );
- UpdateData(FALSE);
-}
-void CHorlogeDlg::IvyFileReadEvent( IvyApplication *app, int argc, const char **argv )
-{
- // Ivy FileReadEvent Type=REJEU Name=/home/fcolin/asterix/EAF3534D.rej StartTime=19:57:00 EndTime=20:09:59
- const char* name = *argv++;
- int hh_start = atoi( *argv++ );
- int mm_start = atoi( *argv++ );
- int ss_start = atoi( *argv++ );
- int hh_end = atoi( *argv++ );
- int mm_end = atoi( *argv++ );
- int ss_end = atoi( *argv++ );
-
- start_time.wHour = hh_start;
- start_time.wMinute = mm_start;
- start_time.wSecond = ss_start;
- current_time = start_time;
-
- long start = (( hh_start * 60 ) + mm_start ) * 60 + ss_start;
- long end = (( hh_end * 60 ) + mm_end ) * 60 + ss_end;
-
- TRACE("CHorlogeDlg::IvyFileReadEvent range 0 %d\n", end - start );
- file_progress.SetRange32(0, end - start );
- file_progress.SetStep( 1 );
- file_progress.SetPos( 0 );
-
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
- VERIFY(m_setTime.SetTime(&current_time));
- m_filename = name;
- bus->SendMsg("SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- UpdateData(FALSE);
-}
-void CHorlogeDlg::IvyRejeuReady( IvyApplication *app, int argc, const char **argv )
-{
- bus->SendMsg("GetClockDatas");
-}
-
-void CHorlogeDlg::OnPause()
-{
- bus->SendMsg("ClockPause");
-}
-
-void CHorlogeDlg::OnStart()
-{
- bus->SendMsg("ClockStart");
-}
-
-void CHorlogeDlg::OnBackward()
-{
- rate -= 0.5;
- m_Speed.Format(TEXT("%.2f"), rate );
- bus->SendMsg("SetClock Rate=%.2f",rate);
-}
-
-void CHorlogeDlg::OnForward()
-{
- rate += 0.5;
- m_Speed.Format(TEXT("%.2f"), rate );
- bus->SendMsg("SetClock Rate=%.2f",rate);
-}
-void CHorlogeDlg::OnNormalSpeed()
-{
- rate = 1.0;
- m_Speed.Format(TEXT("%.2f"), rate );
- bus->SendMsg("SetClock Rate=%.2f",rate);
-}
-
-
-void CHorlogeDlg::OnDatetimechangeSettime(NMHDR* pNMHDR, LRESULT* pResult)
-{
- m_setTime.GetTime(&current_time);
- bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
- *pResult = 0;
-}
-
-
-void CHorlogeDlg::OnBack5()
-{
- CTime new_time( current_time );
- new_time -= CTimeSpan( 0, 0, 5, 0 );
- new_time. GetAsSystemTime(current_time);
- bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
-}
-
-void CHorlogeDlg::OnBack2()
-{
- CTime new_time( current_time );
- new_time -= CTimeSpan( 0, 0, 2, 0 );
- new_time. GetAsSystemTime(current_time);
- bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
-}
-
-void CHorlogeDlg::OnBack1()
-{
- CTime new_time( current_time );
- new_time -= CTimeSpan( 0, 0, 1, 0 );
- new_time. GetAsSystemTime(current_time);
- bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
-}
-
-void CHorlogeDlg::OnForw1()
-{
- CTime new_time( current_time );
- new_time += CTimeSpan( 0, 0, 1, 0 );
- new_time. GetAsSystemTime(current_time);
- bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
-}
-
-void CHorlogeDlg::OnForw2()
-{
- CTime new_time( current_time );
- new_time += CTimeSpan( 0, 0, 2, 0 );
- new_time. GetAsSystemTime(current_time);
- bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
-}
-
-void CHorlogeDlg::OnForw5()
-{
- CTime new_time( current_time );
- new_time += CTimeSpan( 0, 0, 5, 0 );
- new_time. GetAsSystemTime(current_time);
- bus->SendMsg( "SetClock Time=%d:%d:%d", current_time.wHour, current_time.wMinute, current_time.wSecond );
- m_Time.Format(TEXT("%02d:%02d:%02d"), current_time.wHour, current_time.wMinute, current_time.wSecond);
-}
-
-void CHorlogeDlg::OnFile()
-{
- CFileDialog file(TRUE,TEXT(".rej"),NULL, OFN_FILEMUSTEXIST,TEXT("Rejeu Files (*.rej)|*.rej|All Files (*.*)|*.*||"));
- if ( file.DoModal() == IDOK )
- {
- bus->SendMsg( "FileRead Type=rejeu Name=%S", file.GetPathName() );
- }
-}
-