Example #1
0
void CChartDlg::OnButtonClicked(GtkWidget *pBtn)
{
	double zoom;

	if (pBtn==GTK_WIDGET(m_ShowChart)) {
		m_DisplayMode = DISPLAY_CHART;
		g_Project->SetInt("ChartDlg", "Mode", m_DisplayMode);
		UpdateImage();
		UpdateChart();
	} else
	if (pBtn==GTK_WIDGET(m_ShowImage)) {
		m_DisplayMode = DISPLAY_IMAGE;
		g_Project->SetInt("ChartDlg", "Mode", m_DisplayMode);
		UpdateImage();
		UpdateChart();
	} else
	if (pBtn==GTK_WIDGET(m_ShowMixed)) {
		m_DisplayMode = DISPLAY_FULL;
		g_Project->SetInt("ChartDlg", "Mode", m_DisplayMode);
		UpdateImage();
		UpdateChart();
	} else
	if (pBtn==GTK_WIDGET(m_ZoomIn)) {
		zoom = cmpack_chart_view_get_zoom(CMPACK_CHART_VIEW(m_Chart));
		cmpack_chart_view_set_zoom(CMPACK_CHART_VIEW(m_Chart), zoom + 5.0);
	} else 
	if (pBtn==GTK_WIDGET(m_ZoomOut)) {
		zoom = cmpack_chart_view_get_zoom(CMPACK_CHART_VIEW(m_Chart));
		cmpack_chart_view_set_zoom(CMPACK_CHART_VIEW(m_Chart), zoom - 5.0);
	} else 
	if (pBtn==GTK_WIDGET(m_ZoomFit)) {
		cmpack_chart_view_set_auto_zoom(CMPACK_CHART_VIEW(m_Chart), TRUE);
	}
}
Example #2
0
void __fastcall TfrmMain::SaveToESPECClick(TObject *Sender)
{
	if ( SerialPort == NULL ) return;
	if ( SerialPort->isOpen == false ) return;
    
    char WriteBuffer[256] = {0};
    char ReadBuffer[256] = {0};

  // ----- Чтение базовых параметров профиля --------
    SerialPort->WriteBuffer("PRGM DATA WRITE,PGM: 1,EDIT START\r\n");   Sleep(50);
    SerialPort->ReadBuffer (ReadBuffer);

    for ( int i = 0; i < 9; i++)
    {                     
        UpdateChart(i);
        
        AnsiString s1 = IntToStr(i+1);
        AnsiString s2 = FloatToStrF(EspecProfile[0][i]->temper, ffFixed, 10,1);
        AnsiString s3 = ( EspecProfile[0][i]->Ramp == true) ? "ON" : "OFF";

        AnsiString s4 = "";
        AnsiString s41 = IntToStr(EspecProfile[0][i]->hi);
        AnsiString s42 = IntToStr(EspecProfile[0][i]->mi);
        if ( s41.Length() == 1 ) s4 = s4 + "0";
        s4 = s4 + s41 + ":";
        if ( s42.Length() == 1 ) s4 = s4 + "0";
        s4 = s4 + s42;

        AnsiString s5 = ( EspecProfile[0][i]->Ramp == false) ? "ON" : "OFF";
        sprintf(WriteBuffer, "PRGM DATA WRITE,PGM: 1,STEP %s,TEMP%s,TRAMP%s,TIME%s,GRANTY%s,REF9\r\n", s1.c_str(), s2.c_str(), s3.c_str(), s4.c_str(), s5.c_str() );
        SerialPort->WriteBuffer(WriteBuffer);   Sleep(50);
        SerialPort->ReadBuffer (ReadBuffer);
    }

    SerialPort->WriteBuffer("PRGM DATA WRITE,PGM: 1,END,HOLD\r\n");   Sleep(50);
    SerialPort->ReadBuffer (ReadBuffer);

    SerialPort->WriteBuffer("PRGM DATA WRITE,PGM: 1,EDIT END\r\n");   Sleep(50);
    SerialPort->ReadBuffer (ReadBuffer);

    UpdateChart(-1);

    ShowMessage("Program Saved");

//<LF>
//PRGM DATA WRITE,PGM: 1,STEP 2,TEMP50.0,TRAMPON,TIME00:25,GRANTYOFF,REF9<LF>
//PRGM DATA WRITE,PGM: 1,STEP 3,TEMP50.0,TRAMPOFF,TIME02:00,GRANTYON,REF9<LF>
//PRGM DATA WRITE,PGM: 1,STEP 4,TEMP-40.0,TRAMPON,TIME01:30,GRANTYOFF,REF9<LF>
//PRGM DATA WRITE,PGM: 1,STEP 5,TEMP-40.0,TRAMPOFF,TIME02:00,GRANTYON,REF9<LF>
//PRGM DATA WRITE,PGM: 1,STEP 6,TEMP50.0,TRAMPON,TIME01:30,GRANTYOFF,REF9<LF>
//PRGM DATA WRITE,PGM: 1,STEP 7,TEMP50.0,TRAMPOFF,TIME02:00,GRANTYON,REF9<LF>
//PRGM DATA WRITE,PGM: 1,STEP 8,TEMP25.0,TRAMPON,TIME00:25,GRANTYOFF,REF9<LF>
}
Example #3
0
CScopeWindow::CScopeWindow (UG_S16 sPosX0, UG_S16 sPosY0, CRecorder *pRecorder, CScopeConfig *pConfig)
:	m_pRecorder (pRecorder),
	m_pConfig (pConfig),
	m_nChannelEnable (0),
	m_pTimeLine (0)
{
	assert (m_pRecorder != 0);

	UG_WindowCreate (&m_Window, m_ObjectList, s_ObjectCount, Callback);
	UG_WindowSetStyle (&m_Window, WND_STYLE_2D | WND_STYLE_HIDE_TITLE);
	UG_WindowResize (&m_Window, sPosX0, sPosY0, sPosX0+WIDTH-1, sPosY0+HEIGHT-1);

	UG_TextboxCreate (&m_Window, &m_Textbox1, TXB_ID_0, 5, 5, 149, 25);
	UG_TextboxSetFont (&m_Window, TXB_ID_0, &FONT_10X16);
	UG_TextboxSetText (&m_Window, TXB_ID_0, "TinyScope Pi");
	UG_TextboxSetBackColor (&m_Window, TXB_ID_0, C_LIGHT_GRAY);
	UG_TextboxSetForeColor (&m_Window, TXB_ID_0, C_BLACK);
	UG_TextboxSetAlignment (&m_Window, TXB_ID_0, ALIGN_CENTER);

	UG_WindowShow (&m_Window);

	UG_Update ();

	UpdateChart ();
}
Example #4
0
void CChartDlg::DeleteAll()
{
	while(m_Datasel.GetCount() > 0)
	{
		m_Datasel.DeleteString(0);
	}
	UpdateChart();
}
Example #5
0
void CChartDlg::OnEnChangeEdit3()
{
	// TODO:  If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.

	// TODO:  Add your control notification handler code here
	UpdateChart();
}
Example #6
0
void __fastcall TfrmMain::ListBox1Click(TObject *Sender)
{
   if ( ListBox1->ItemIndex == -1 ) return;

   TEspec *es = (TEspec *) ListBox1->Items->Objects[ListBox1->ItemIndex];

   rbRamp->Checked = es->Ramp;
   //rbSoak->Checked = es->Soak;
   eTempr->Text = FloatToStrF( es->temper, ffFixed, 20, 1 );
   eTime->Text = IntToStr( es->hi*60 + es->mi );


   UpdateChart(ListBox1->ItemIndex);
}
Example #7
0
void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
   if ( ListBox1->ItemIndex == -1 ) return;

   TEspec *es = (TEspec *) ListBox1->Items->Objects[ListBox1->ItemIndex];

   es->Ramp = rbRamp->Checked;
   //es->Soak = rbSoak->Checked;

   int tt = StrToInt(eTime->Text);
   es->hi = tt / 60;
   es->mi = tt - es->hi * 60;
   es->temper = StrToFloat(eTempr->Text);

   UpdateChart(-1);
}
Example #8
0
//---------------------------------------------------------------------------
void __fastcall TfrmMain::bPNewClick(TObject *Sender)
{
    for ( int i = 0; i < 9; i++)
    {
       //EspecProfile[0][i]->Soak   = true;
       EspecProfile[0][i]->Ramp   = false;
       EspecProfile[0][i]->hi     = 2;
       EspecProfile[0][i]->mi     = 0;
       EspecProfile[0][i]->temper = 25.0;
    }

    ListBox1->Items->Clear();
    for ( int i = 0; i < 9; i++)
    {
        ListBox1->Items->AddObject(AnsiString("Step ") + IntToStr(i+1), (TObject*)EspecProfile[0][i]);
        __asm nop;
    }

    UpdateChart(-1);
}
Example #9
0
void __fastcall TfrmMain::cbProfileListChange(TObject *Sender)
{
    if ( cbProfileList->ItemIndex == -1 ) return;

    TEspec **ep = (TEspec **)cbProfileList->Items->Objects[cbProfileList->ItemIndex];

    for ( int i = 0; i < 9; i++)
    {
       //EspecProfile[0][i]->Soak   = ep[i]->Soak;
       EspecProfile[0][i]->Ramp   = ep[i]->Ramp;
       EspecProfile[0][i]->hi     = ep[i]->hi;
       EspecProfile[0][i]->mi     = ep[i]->mi;
       EspecProfile[0][i]->temper = ep[i]->temper;
    }

    ListBox1->Items->Clear();
    for ( int i = 0; i < 9; i++)
        ListBox1->Items->AddObject("Step " + IntToStr(i+1), (TObject*)EspecProfile[0][i]);

    UpdateChart(-1);
}
Example #10
0
void CChartDlg::OnBnClickedAutoupdate()
{
	// TODO: 在此添加控件通知处理程序代码
	//auto size the chart
	int nCount = m_Datasel.GetSelCount();
	if(nCount <= 0)
		return;
	CArray<int,int> aryListBoxSel;
	aryListBoxSel.SetSize(nCount);
	m_Datasel.GetSelItems(nCount, aryListBoxSel.GetData()); 

	int nTotal = nCount;
	CString sCurr;
	double new_base=0;
	
	while(nCount > 0)
	{
		m_Datasel.GetText(nTotal-nCount--,sCurr);
		new_base += atof(sCurr);
	}
	new_base = new_base/nTotal;

	nCount = nTotal;
	double new_vary=0;
	while(nCount > 0)
	{
		m_Datasel.GetText(nTotal-nCount--,sCurr);
		new_vary += (atof(sCurr)-new_base)*(atof(sCurr)-new_base);
	}
	new_vary = sqrt(new_vary/nTotal);

	m_dBase = new_base;
	m_dVary = new_vary;
	UpdateData(FALSE);
	UpdateChart();
}
Example #11
0
//---------------------------------------------------------------------------
void __fastcall TfrmMain::LoadFromESPECClick(TObject *Sender)
{
	if ( SerialPort == NULL ) return;
	if ( SerialPort->isOpen == false ) return;

    cbProfileList->ItemIndex = -1;

    bPNewClick(Sender);

    char WriteBuffer[256] = {0};
    char ReadBuffer [256] = {0};



  // ----- Чтение базовых параметров профиля --------
    SerialPort->WriteBuffer("PRGM DATA?,PGM: 1\r\n");   Sleep(50);
    SerialPort->ReadBuffer (ReadBuffer);
  // ----- Расшифровка и вывод на екран -------
    sscanf(ReadBuffer, "%d,COUNT(%d.%d.%d),END(HOLD)", &CountProfileStep, &BeginRepeatPos, &EndRepeatPos, &ProfilRepeatCount);
	Label2->Caption   = CountProfileStep;
	CSpinEdit1->Value = BeginRepeatPos;
	CSpinEdit2->Value = EndRepeatPos;
    CSpinEdit3->Value = ProfilRepeatCount;

  // ----- Чтение информации по каждому из шагов профиля --------
    for ( int i = 1; i < CountProfileStep + 1; i++)
    {
        sprintf(WriteBuffer, "PRGM DATA?,PGM: 1,STEP %d\r\n\0", i);
        SerialPort->WriteBuffer(WriteBuffer);      Sleep(50);
        SerialPort->ReadBuffer (ReadBuffer);

      // ----- Убиваю слово тайм ---
        int bufflen = strlen(ReadBuffer);
        for ( int i = 0; i < bufflen - 4; i++)
        {
           if ( ReadBuffer[i] == ',' || ReadBuffer[i] == ':') ReadBuffer[i] = ' ';
           /*if ( ReadBuffer[i] == ',' ) ReadBuffer[i] = ' ';
           if ( ReadBuffer[i] == 'T' && ReadBuffer[i+1] == 'I' &&ReadBuffer[i+2] == 'M' &&ReadBuffer[i+3] == 'E' )
           {
              ReadBuffer[i+0] = ' ';
              ReadBuffer[i+1] = ' ';
              ReadBuffer[i+2] = ' ';
              ReadBuffer[i+3] = ' ';
              for ( int k = i; k < bufflen; k++) if ( ReadBuffer[k] == ':' ) ReadBuffer[k] = ' ';
           } */
        }  
      // ----- Расшифровка и вывод на екран -------
        char s[64]={0};
        char Ramp[4]={0}, Garanty[4]={0};
        float Temperature;
        int hour, min;

        //sscanf(ReadBuffer, "1 TEMP%f TEMP RAMP %s HUMI OFF     %s%s GRANTY %s REF9", &Temperature, Ramp, hour, min, Garanty);
        sscanf(ReadBuffer, "%s TEMP%f TEMP RAMP %s HUMI OFF TIME%d %d GRANTY %s REF9", s, &Temperature, Ramp, &hour, &min, Garanty);

        EspecProfile[0][i-1]->Ramp   = ( strcmp(Ramp, "ON") == 0 );
        //EspecProfile[[0]i-1]->Soak   = !EspecProfile[0][i-1]->Ramp;
        EspecProfile[0][i-1]->temper = Temperature;
        EspecProfile[0][i-1]->hi = hour;
        EspecProfile[0][i-1]->mi = min;

        UpdateChart(-1);

        Application->ProcessMessages();
    }
    ListBox1->ItemIndex = 0;
    ListBox1Click(Sender);
    // ---adds
    UpdateChart(-1);

    // ---adds
    ShowMessage("Program Loaded");
}
Example #12
0
void CChartDlg::Execute(const CSelection &sel, int aperIndex)
{
	int	res = 0;
	const gchar *tmp_file;
	GtkTreePath *refpath;
	GError *error = NULL;

	m_Selection = sel;
	m_Tags = *g_Project->Tags();
	
	cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Chart), NULL);
	cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Chart), NULL);
	if (m_ChartData) {
		g_object_unref(m_ChartData);
		m_ChartData = NULL;
	}
	if (m_ImageData) {
		g_object_unref(m_ImageData);
		m_ImageData = NULL;
	}
	m_Phot.Clear();
	m_Catalog.Clear();
	m_Image.Clear();

	m_RefType = g_Project->GetReferenceType();
	switch (m_RefType)
	{
	case REF_FRAME:
		// Load reference frame
		refpath = g_Project->GetReferencePath();
		if (refpath) {
			gchar *pht_file = g_Project->GetPhotFile(refpath);
			if (pht_file) {
				GError *error = NULL;
				if (m_Phot.Load(pht_file, &error)) {
					m_Phot.SelectAperture(aperIndex);
					UpdateChart();
					gchar *fts_file = g_Project->GetImageFile(refpath);
					if (fts_file) {
						if (m_Image.Load(fts_file, CMPACK_BITPIX_AUTO, &error)) 
							UpdateImage();
						g_free(fts_file);
					}
				} 
				if (error) {
					ShowError(m_pParent, error->message);
					g_error_free(error);
					res = -1;
				}
				g_free(pht_file);
			}
			gtk_tree_path_free(refpath);
		}
		break;

	case REF_CATALOG_FILE:
		// Load catalog file
		tmp_file = g_Project->GetTempCatFile()->FullPath();
		if (m_Catalog.Load(tmp_file, &error)) {
			UpdateChart();
			gchar *fts_file = SetFileExtension(tmp_file, FILE_EXTENSION_FITS);
			if (fts_file) {
				if (m_Image.Load(fts_file, CMPACK_BITPIX_AUTO, &error)) 
					UpdateImage();
				g_free(fts_file);
			}
		}
		if (error) {
			ShowError(m_pParent, error->message);
			g_error_free(error);
			res = -1;
		}
		break;

	default:
		ShowError(m_pParent, "No reference file.");
		res = -1;
	}

	if (res==0) {
		gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(m_ShowImage), 
			m_DisplayMode==DISPLAY_IMAGE);
		gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(m_ShowChart), 
			m_DisplayMode==DISPLAY_CHART);
		gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(m_ShowMixed), 
			m_DisplayMode==DISPLAY_FULL);
		gtk_widget_set_sensitive(GTK_WIDGET(m_ShowImage), 
			m_Image.Width()>0 && m_Image.Height()>0);
		gtk_widget_set_sensitive(GTK_WIDGET(m_ShowMixed), 
			m_Image.Width()>0 && m_Image.Height()>0);
		gtk_dialog_run(GTK_DIALOG(m_pDlg));
	}
}
Example #13
0
void CChartDlg::OnLbnSelchangeList1()
{
	// TODO: Add your control notification handler code here
	UpdateChart();
}
Example #14
0
void PortsManager::ChangeSelected(int id)
{
	int port = GetPortFromList(id);
	m_selectedPort = port;
	UpdateChart();
}
void CMatchingDlg::UpdatePreview(bool force_update)
{
	int frame_id, state;
	CImage img;
	GtkTreeIter iter;
	GtkTreeModel *model;

	if (m_SelectMode == REFERENCE_FRAME) {
		// Reference frame
		GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(m_FrameView));
		if (gtk_tree_selection_get_selected(sel, &model, &iter)) {
			gtk_tree_model_get(model, &iter, FCOL_ID, &frame_id, FCOL_STATE, &state, -1);
			if (force_update || m_FrameID!=frame_id) {
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
				m_FrameID = frame_id;
				if (m_DMFrame == DISPLAY_CHART && (state & CFILE_PHOTOMETRY)) {
					gchar *pht_file = g_Project->GetPhotFile(frame_id);
					CPhot pht;
					if (pht_file && pht.Load(pht_file))
						UpdateChart(pht);
					g_free(pht_file);
				} else 
				if (state & CFILE_CONVERSION) {
					gchar *fts_file = g_Project->GetImageFile(frame_id);
					if (fts_file && img.Load(fts_file)) 
						UpdateImage(img);
					g_free(fts_file);
				} else {
					gchar *src_file = g_Project->GetSourceFile(frame_id);
					if (src_file && img.Load(src_file)) 
						UpdateImage(img);
					g_free(src_file);
				}
			}
		} else {
			if (force_update || m_FrameID>=0) {
				m_FrameID = -1;
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
			}
		}
	} else {
		// Catalog file
		GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(m_CatalogView));
		if (gtk_tree_selection_get_selected(sel, &model, &iter)) {
			gchar *fname;
			gtk_tree_model_get(GTK_TREE_MODEL(m_Catalogs), &iter, CCOL_FILENAME, &fname, -1);
			gchar *fpath = g_build_filename(gtk_entry_get_text(GTK_ENTRY(m_PathEntry)), fname, NULL);
			if (force_update || StrCmp0(m_CatFile, fpath)!=0) {
				g_free(m_CatFile);
				m_CatFile = g_strdup(fpath);
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
				CCatalog cat;
				if (cat.Load(m_CatFile)) 
					UpdateChart(cat);
				if (m_DMCatalog == DISPLAY_IMAGE) {
					gchar *fts_file = SetFileExtension(m_CatFile, FILE_EXTENSION_FITS);
					if (img.Load(fts_file)) 
						UpdateImage(img);
					g_free(fts_file);
				}
			}
			g_free(fpath);
			g_free(fname);
		} else {
			if (force_update || m_CatFile) {
				g_free(m_CatFile);
				m_CatFile = NULL;
				g_free(m_SelectionName);
				m_SelectionName = NULL;
				cmpack_chart_view_set_model(CMPACK_CHART_VIEW(m_Preview), NULL);
				cmpack_chart_view_set_image(CMPACK_CHART_VIEW(m_Preview), NULL);
				if (m_ChartData) {
					g_object_unref(m_ChartData);
					m_ChartData = NULL;
				}
				if (m_ImageData) {
					g_object_unref(m_ImageData);
					m_ImageData = NULL;
				}
			}
		}
	}
}
Example #16
0
void PortsManager::Update()
{
	PortSet newPorts = GetNowPorts();
	Ports tmp(m_ports.size()+newPorts.size());
	PortsIterator end=std::set_difference (m_ports.begin(), m_ports.end(), newPorts.begin(), newPorts.end(), tmp.begin());
	for(PortsIterator it = tmp.begin();it!=end;it++)
	{
		USHORT port = it->GetPort();
		//USHORT netPort = htons(port);
		m_helper->WriteIo(DEL_PORT, &port, sizeof(port));
		m_traces.erase(m_traces.find(UsageTrace(port)));
	}
	end=std::set_difference (newPorts.begin(), newPorts.end(), m_ports.begin(), m_ports.end(), tmp.begin());
	m_ports = newPorts;
	for(PortSet::iterator iter = m_ports.begin(); iter!=m_ports.end(); iter++){
		UpdatePort(iter);
	}
	for(int i = 0; i<m_list->GetItemCount(); i++)
	{
		TCHAR szBuffer[1024];
		int port = GetPortFromList(i);
		PortSet::iterator iter = m_ports.find(Port(port, 0));
		if(iter!=m_ports.end())
		{
			wsprintf(szBuffer, _T("%ld"), iter->GetUsage());
			m_list->SetItem(i, 1, LVIF_TEXT, szBuffer, 0, 0, 0, 0);
			switch (iter->GetState()) {
            case MIB_TCP_STATE_CLOSED:
				wsprintf(szBuffer, _T("CLOSED"));
                break;
            case MIB_TCP_STATE_LISTEN:
				wsprintf(szBuffer, _T("LISTEN"));
                break;
            case MIB_TCP_STATE_SYN_SENT:
				wsprintf(szBuffer, _T("SYN-SENT"));
                break;
            case MIB_TCP_STATE_SYN_RCVD:
				wsprintf(szBuffer, _T("SYN-RECEIVED"));
                break;
            case MIB_TCP_STATE_ESTAB:
				wsprintf(szBuffer, _T("ESTABLISHED"));
                break;
            case MIB_TCP_STATE_FIN_WAIT1:
				wsprintf(szBuffer, _T("FIN-WAIT-1"));
                break;
            case MIB_TCP_STATE_FIN_WAIT2:
				wsprintf(szBuffer, _T("FIN-WAIT-2"));
                break;
            case MIB_TCP_STATE_CLOSE_WAIT:
				wsprintf(szBuffer, _T("CLOSE-WAIT"));
                break;
            case MIB_TCP_STATE_CLOSING:
				wsprintf(szBuffer, _T("CLOSING"));
                break;
            case MIB_TCP_STATE_LAST_ACK:
				wsprintf(szBuffer, _T("LAST-ACK"));
                break;
            case MIB_TCP_STATE_TIME_WAIT:
				wsprintf(szBuffer, _T("TIME-WAIT"));
                break;
            case MIB_TCP_STATE_DELETE_TCB:
				wsprintf(szBuffer, _T("DELETE-TCB"));
                break;
            default:
				wsprintf(szBuffer, _T("UNKNOWN"));
                break;
            }
		m_list->SetItem(i, 2, LVIF_TEXT, szBuffer, 0, 0, 0, 0);
		}
		else
		{
			m_list->DeleteItem(i);
			i--;
		}
	}
	for(PortsIterator it = tmp.begin();it!=end;it++)
	{
		int i = m_list->GetItemCount();
		TCHAR szBuffer[1024];
		unsigned short port = ntohs(it->GetPort());
		wsprintf(szBuffer, _T("%u"), port);
		m_list->InsertItem(i, szBuffer);
		wsprintf(szBuffer, _T("%ld"), it->GetUsage());
		m_list->SetItem(i, 1, LVIF_TEXT, szBuffer, 0, 0, 0, 0);
		
		switch (it->GetState()) {
            case MIB_TCP_STATE_CLOSED:
				wsprintf(szBuffer, _T("CLOSED"));
                break;
            case MIB_TCP_STATE_LISTEN:
				wsprintf(szBuffer, _T("LISTEN"));
                break;
            case MIB_TCP_STATE_SYN_SENT:
				wsprintf(szBuffer, _T("SYN-SENT"));
                break;
            case MIB_TCP_STATE_SYN_RCVD:
				wsprintf(szBuffer, _T("SYN-RECEIVED"));
                break;
            case MIB_TCP_STATE_ESTAB:
				wsprintf(szBuffer, _T("ESTABLISHED"));
                break;
            case MIB_TCP_STATE_FIN_WAIT1:
				wsprintf(szBuffer, _T("FIN-WAIT-1"));
                break;
            case MIB_TCP_STATE_FIN_WAIT2:
				wsprintf(szBuffer, _T("FIN-WAIT-2"));
                break;
            case MIB_TCP_STATE_CLOSE_WAIT:
				wsprintf(szBuffer, _T("CLOSE-WAIT"));
                break;
            case MIB_TCP_STATE_CLOSING:
				wsprintf(szBuffer, _T("CLOSING"));
                break;
            case MIB_TCP_STATE_LAST_ACK:
				wsprintf(szBuffer, _T("LAST-ACK"));
                break;
            case MIB_TCP_STATE_TIME_WAIT:
				wsprintf(szBuffer, _T("TIME-WAIT"));
                break;
            case MIB_TCP_STATE_DELETE_TCB:
				wsprintf(szBuffer, _T("DELETE-TCB"));
                break;
            default:
				wsprintf(szBuffer, _T("UNKNOWN"));
                break;
            }
		m_list->SetItem(i, 2, LVIF_TEXT, szBuffer, 0, 0, 0, 0);
	}
	UpdateChart();
	m_helper->ReadIo(GET_TOTAL, &m_totalPacket, sizeof(ULONG));
}
Example #17
0
void CChartDlg::AddData(CString newValue)
{
	m_Datasel.InsertString(0,newValue);
	m_Datasel.SetSel(0);
	UpdateChart();
}