private void PBox_DataRate_Paint(object sender, PaintEventArgs e) { /* 最大レート走査 */ ulong rate_max = 1000; for (var index = 0; index < send_data_rate_buffer_.Length; index++) { if (rate_max < send_data_rate_buffer_[index]) { rate_max = send_data_rate_buffer_[index]; } if (rate_max < recv_data_rate_buffer_[index]) { rate_max = recv_data_rate_buffer_[index]; } } /* グラフ上限値を最大レートの1.2倍とする */ rate_max += rate_max / 10 * 2; /* 表示ポイント生成 */ var send_rate_points = new Point[send_data_rate_buffer_.Length]; var recv_rate_points = new Point[recv_data_rate_buffer_.Length]; var data_offset = data_rate_in_; for (var data_count = 0; data_count < send_data_rate_buffer_.Length; data_count++) { send_rate_points[data_count].X = DATA_RATE_GRAPH_REGION.Left + data_count; send_rate_points[data_count].Y = DATA_RATE_GRAPH_REGION.Bottom - (int)(send_data_rate_buffer_[data_offset] * (ulong)DATA_RATE_GRAPH_REGION.Height / rate_max); recv_rate_points[data_count].X = send_rate_points[data_count].X; recv_rate_points[data_count].Y = DATA_RATE_GRAPH_REGION.Bottom - (int)(recv_data_rate_buffer_[data_offset] * (ulong)DATA_RATE_GRAPH_REGION.Height / rate_max); data_offset++; data_offset %= send_data_rate_buffer_.Length; } e.Graphics.DrawLines(SEND_DATA_RATE_GRAPH_PEN, send_rate_points); e.Graphics.DrawLines(RECV_DATA_RATE_GRAPH_PEN, recv_rate_points); /* テキスト */ e.Graphics.DrawString( String.Format( "Send: {0,7}B/s\nRecv: {1,7}B/s", TextUtil.DecToText(send_data_rate_latest_), TextUtil.DecToText(recv_data_rate_latest_) ), DATA_RATE_FONT, DATA_RATE_FONT_BRUSH, (sender as Control).ClientRectangle, DATA_RATE_FONT_FORMAT); }
public void SetFormStatus(FormStatus status) { if (InvokeRequired) { BeginInvoke(new SetFormStatusHandler(SetFormStatus), status); return; } SetStatusText(status.MainStatusBar_Text); SetProgressBar(status.MainProgressBar_Visible, status.MainProgressBar_Value, 100); /* ステータスバーのカウンターを更新 */ DDBtn_DataRate.Text = String.Format("Rate: {0,7}B/s", TextUtil.DecToText(status.PacketBytePSec_All)); Label_PktCount_Cache.Text = String.Format("Cache: {0,9}", status.PacketCount_Cache); Label_PktCount_Raw.Text = String.Format("Raw: {0,9}", status.PacketCount_Raw); Label_PktCount_View.Text = String.Format("View: {0,9}", status.PacketCount_DrawAll); Label_PktCount_Busy.Text = String.Format("Busy: {0,9}", status.PacketCount_DrawBusy); /* 変換器のカウンターを更新 */ Panel_Center.UpdatePacketConverterView(); }