[Symbian项目进展]网络流量曲线图,代码+效果图

网络流量图形显示实时监控 能够实时显示输入流量变化和输出流量变化,以及总的流量变化,完全开源,提供相关代码,便于个人改进。 立即下载
效果图如下:
 

实现方法:

1、创建一个计时器,请将其打开
2、写计时器活动对象的回调函数,在回调函数中刷新屏幕

实现代码如下:

创建计时器活动对象并且打开定时器:
    iPeriodicTimer = CPeriodic::NewL( CActive::EPriorityStandard );//创建活动对象
    StartTimer();//打开定时器

 

打开定时器代码:
1    if ( !iPeriodicTimer-> IsActive() )
2        
{
3        iPeriodicTimer->Start( 1, 1000000
, 
4                               TCallBack( CFirewallContainerState::Period, this
 ) );
5        }

6
第3行中的1000000是将频率设置成1秒,单位是微秒

回调函数Period()代码:
1 TInt CFirewallContainerState::Period( TAny*  aPtr)
2 
    {
3     ( static_cast<CFirewallContainerState*>( aPtr ) )->
DoPeriodTask();
4     return
 ETrue;
5 
    }  
6 

DoPeriodTask()函数代码:
 1 void  CFirewallContainerState::DoPeriodTask()
 2 
    {
 3 

 4     for ( TInt count = 0;count < iPointSet.Count();count++  )
 5 
        {
 6         iPointSet[count]->iX += 4
;
 7 
        }
 8     if(iPointSet.Count() > 100
)
 9 
        {
10 
        iPointSet.Reset() ;
11 
        }
12     TRect rect =
 Rect();
13     TInt y = GetRandY( rect.iBr.iY / 2
 );        
14         //设置曲线的Y值的最大值

15     TPoint* p = new(ELeave)TPoint(0 ,y);
16 
    iPointSet.Append(p);
17 
    
18     // Update the screen

19     CWindowGc& gc =  SystemGc();
20     gc.Activate( *
DrawableWindow() );
21 
    UpdateDisplay();
22 
    gc.Deactivate();
23 
    }
24 

刷屏函数UpdateDispaly()代码:
void CFirewallContainerState::UpdateDisplay() const
    
{
        
        CWindowGc
& gc =
 SystemGc();
        gc.Clear();
        gc.SetPenStyle( CGraphicsContext::ENullPen );
        gc.SetBrushColor( KRgbBlack );
        gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
        TRect rect 
= TRect(Rect().iTl.iX, Rect().iTl.iY, Rect().iBr.iX, Rect().iBr.iY / 2
);
        gc.DrawRect(rect);
        TSize PenSize(
1,1
);

        gc.SetPenSize(PenSize);
        gc.SetPenColor(KRgbGreen);
        gc.SetPenStyle(CGraphicsContext::ESolidPen);
        TInt RowCount 
= rect.iBr.iY / KRowWidth + 1
;
        TInt ColCount 
= rect.iBr.iX / KColWidth + 1
;
        
//画横线

        for(TInt count = 0; count < RowCount; count++)
            
{
            TPoint p1(
0,count*
KRowWidth);
            TPoint p2(rect.iBr.iX,count
*
KRowWidth);
            gc.DrawLine(p1,p2);
            }

        
//画最下面的横线
        TPoint pBl(rect.iTl.iX,rect.iBr.iY);
        TPoint pBr(rect.iBr.iX,rect.iBr.iY);
        gc.DrawLine(pBl,pBr);
        
        
        
//画竖线

        for(TInt count = 0; count < ColCount; count++)
            
{
            TPoint p1(count
*KColWidth,0
);
            TPoint p2(count
*
KColWidth,rect.iBr.iY);
            gc.DrawLine(p1,p2);
            }

        
//画右边的竖线
        TPoint pTr(rect.iBr.iX, rect.iTl.iY);
        gc.DrawLine(pTr, pBr);
        
        
//画曲线

        gc.SetPenColor(KRgbYellow);
        TInt count ;
        
for(count=0;count < iPointSet.Count()-1;count++
)
            
{
            gc.DrawLine(
*iPointSet[count],*iPointSet[count+1
]);
            
if (iPointSet.Count() == 100) count = 0
 ;
            }

            
        
//显示状态信息
        
//显示当前流量信息

        gc.SetPenColor(KRgbBlack);
        gc.UseFont( iCoeEnv
->
NormalFont() );
        gc.SetPenColor(KRgbBlack);
        TName msgCurrStorm ;
        CEikonEnv::Static()
->
ReadResource(msgCurrStorm , R_STR_MSG_STATE_CURRENT_FLOW );
        
if (iPointSet.Count() > 0
) 
            
{
            msgCurrStorm.AppendNum(Rect().iBr.iY 
/ 2 - iPointSet[count]->
iY) ;
            msgCurrStorm.Append(_L(
" KB"
)) ;
            }

            
//将当前点的纵坐标作为模拟流量值显示
        
        gc.DrawText( msgCurrStorm, TPoint(Rect().iTl.iX 
+ 10,Rect().iBr.iY / 2 + 30
)) ;
        
        
//判断是否设置了实时监控功能

        TName msgRealtime ;
        
if (iUi->iSettingData->
iIsRealtime)
            
{
            CEikonEnv::Static()
->
ReadResource(msgRealtime , R_STR_MSG_STATE_REALTIME_ON );
            }

        
else
            
{
            CEikonEnv::Static()
->
ReadResource(msgRealtime , R_STR_MSG_STATE_REALTIME_OFF );
            }

        gc.DrawText( msgRealtime, TPoint(Rect().iTl.iX 
+ 10,Rect().iBr.iY / 2 + 60)) ;
        
//无规则匹配时,默认的动作

        TName msgDefaultaction ;
//        gc.UseFont( iCoeEnv->NormalFont() );

        switch (iUi->iSettingData->iDefaultAction)
            
{
            
case 0
:
                CEikonEnv::Static()
->
ReadResource(msgDefaultaction , R_STR_MSG_STATE_DEFAULTACTION_0 );
                
break
 ;
            
case 1
:
                CEikonEnv::Static()
->
ReadResource(msgDefaultaction , R_STR_MSG_STATE_DEFAULTACTION_1 );
                
break
 ;
            
case 2
:
                CEikonEnv::Static()
->
ReadResource(msgDefaultaction , R_STR_MSG_STATE_DEFAULTACTION_2 );
                
break
 ;
            
default
:
                
break
 ;
            }

        gc.DrawText( msgDefaultaction, TPoint(Rect().iTl.iX 
+ 10,Rect().iBr.iY / 2 + 90)) ;

    }

 

转载自:http://www.cnblogs.com/jason-jiang/archive/2006/12/03/580870.html

不止是回退SDK:深入解读UE5.2编译时那个烦人的C4756警告与INFINITY宏的变迁 本文深入解析了UE5.2源码编译时出现的C4756警告及其背后的技术原因,探讨了Windows SDK中INFINITY宏的变迁对Unreal Engine的影响。文章详细介绍了微软修改INFINITY定义的技术考量,并提供了UE5.2应对此类问题的灵活解决方案,包括通过BuildConfiguration.xml文件精确控制工具链版本,确保构建系统的可重复性和可配置性。 阅读详情

相关推荐

Autodesk全家桶安装总报错1603?一个服务设置搞定3dsMax和CAD安装回滚问题

本文详细解析了Autodesk全家桶安装过程中常见的1603错误,特别是3ds Max和CAD安装回滚问题。通过调整AdskLicensingService服务的账户权限,提供四步修复法和安装流程优化策略,帮助用户彻底解决安装难题,提升Autodesk软件的安装成功率。

weixin_30955617的博客 1122

Wireshark流量图

选择要监控的网卡,输入过滤条件。

一起coding,一起嗨。 3158

5种主流触觉传感器对比:GelSight、DIGIT、Taxim、GelSlim和TACTO如何选?

本文深度解析了GelSight、DIGIT、Taxim、GelSlim和TACTO五款主流触觉传感器的技术原理与核心特性。通过对比视觉传感与电学传感两大技术路径,为机器人灵巧抓取、精密检测等应用场景提供清晰的选型决策指南,帮助开发者根据项目需求在分辨率、响应速度、集成度与成本之间找到最佳平衡。

Black的专栏 931

网络流常用示意图及基本概念

网络:网络是一个有向有权图,包含一个源点和一个汇点,没有反平行边。 网络流:是定义在网络边集上的一个非负函数,表示边上的流量。 网络最大流:在满足容量约束和流量守恒的前提下,在流网络中找到一个净输出最大的网络流。 可行流:容量约束、流量守恒。

hnjzsyjyj的专栏 1071

SAP 小结

关于SAP 开发的实习就要告一段落了,从刚开始接触,到现在已经6个月了,想要很简要的把自己对SAP的理解写出来,便于以后查阅(不定期更新)。 1. 什么是SAP? 广义的SAP,可以指代SAP公司以及SAP的各种产品,它的意义要在特定语境下才能确定。一般我们所说的SAP特指SAP ERP。 SAP ERP(enterprise resource planning)是一个企业信息系统。通过这个系

Remy的博客 1955

单路径微分相除和微分自乘相减算法(PGC-SDD-DSM)

PGC-SDD-DSM算法通过融合单路微分相除和差分自乘,解决了传统PGC解调技术对调制深度和光强干扰敏感的问题,显著提升了解调稳定性和抗失真能力。其高信噪比、低谐波失真以及对参数变化的鲁棒性,使其在光纤传感领域具有重要应用价值。PGC-SDD-DSM算法在计算复杂度方面具有显著的优势,主要体现在其高稳定性和低谐波失真上。这些优势使其在光纤光学干涉传感器中表现出色,尤其是在面对光强干扰和调制深度变化时。

百态·数智思维 | 聚焦大数据、量化与未来AI 841

计算机网络流量图分析,网络流量的检测与分析

摘要:计算机网络技术的飞速发展,以及网络规模的不断扩大,导致了网络结构的日趋复杂化.因此,计算机网络管理已经成为了网络研究领域的热点,而对于基于TCP/IP协议的网络,简单网络管理协议SNMP(Simple Network Management Protocol)已经作为事实上的协议标准被广泛使用.所以,研究一种基于标准协议的网络管理工具,方便网络管理员管理网络并提高网络的吞吐量就是本课题研究的目...

weixin_39653717的博客 807

通过Langchain实现大模型完成测试用例生成的代码(可集成到各种测试平台)

代码中使用的是讯飞spark3.0版本,其中版本在的控制已经封装到了langchain对应的讯飞的iflytek的类中,可以在调用的时候显示控制,默认是spark2.0版本。

Criss@陈磊 2362

终于有文章讲清楚网络流量分析该怎么做了!从零基础到精通,收藏这篇就够了!

总的来说,企业想做网络流量数据分析,

喜欢Python编程的程序员柚柚呀 812

127. 答网友疑问:ABAP Function Module 如何支持内表结构不确定的动态输入参数

ABAP RTTI 的全称是 Runtime Type Identification. 使用 RTTI,ABAP 开发人员可以在运行时获取关于数据对象的各种信息,包括其数据类型、字段列表(如果数据是Structure 或者内表的话)以及这些字段的技术属性,比如字段名称,字段数据类型,长度等等。对于这些字段信息,ABAP 提供了一组特殊的类和接口,包括 CL_ABAP_TYPEDESCR、CL_ABAP_STRUCTDESCR、CL_ABAP_TABLEDESCR 等等。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1763

Marvell 88Q6113 如何制作一个完整的量产固件88Q6113_flash.bin并进行烧录

本章节介绍如何基于Marvell工具链,制作一个完整的量产固件88Q6113_flash.bin,集成用户自定义的配置文件 config.bin,用于88Q6113的Flash烧录。注:Marvell 88Q5072 与 Marvell 88Q6113 的配置流程是一样的。

老板来份猪脚拼叉烧的博客 2011

Symbian项目进展]网络流量曲线图,代码+效果图

 效果图如下:实现方法:1、创建一个计时器,请将其打开2、写计时器活动对象的回调函数,在回调函数中刷新屏幕实现代码如下:创建计时器活动对象并且打开定时器:    iPeriodicTimer = CPeriodic::NewL( CActive::EPriorityStandard );//创建活动对象    StartTimer();//打开定时器 打开定时器代码:1    if ( !

wistaria2002的专栏 727

微信小程序爬虫终极指南:以电商小程序抓包与逆向分析为例(最新版)

在2026年的移动互联网生态中,微信小程序已经成为电商交易的核心载体之一。据统计,超过78%的头部电商平台都推出了微信小程序版本,其用户活跃度甚至超过原生App。对于数据从业者而言,小程序端往往藏着比Web端更丰富的接口数据——包括但不限于商品详情、价格波动、用户评价、库存变化、秒杀活动信息等。与传统的Web爬虫不同,微信小程序爬虫面临着三大核心挑战无URL地址栏:无法通过浏览器直接查看网络请求wx.request封装:所有请求均通过微信原生API发起,难以直接拦截然而,

2201_76125261的博客 539

网络流量曲线图,代码+效果图

http://www.cnblogs.com/jason-jiang/archive/2006/12/03/580870.html 实现方法:1、创建一个计时器,请将其打开2、写计时器活动对象的回调函数,在回调函数中刷新屏幕实现代码如下:创建计时器活动对象并且打开定时器:    iPeriodicTimer = CPeriodic::NewL( CActive::EPrioritySt

大浪捉鱼 2453

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍。

代码讲故事 1210

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

计算机网络流量图阅读与理解,计算机网络流量监控的设计与实现

摘要:网络管理的重要工作是进行实时网络监控,网络监控主要是进行网络流量,状态,行为信息的采集,将采集的信息进行统计和分析,得到网络的流量状态数据,采集的网络流量信息包括了动态信息和静态信息两部分,本文在此基础上,进行了网络流量监控管理系统的研究. 本文首先对计算机网络流量的相关课题背景进行研究,分析了网络流量监控的研究现状,提出了论文主要内容和研究目标;接着介绍了网络流量监控系统业务的概念与发展,...

weixin_28807463的博客 434

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

网络流量监控曲线图版+源代码

VC++ 6.0网络曲线图控件及实例源码,可监控连入网络、连出网络的流量多少,曲线根据流量自动绘制生成,里面的代码关键文件,都有中文注释,便于您学习和调试程序。通过本网络监控程序您可了解一下:得到当前的接口名字,为性能数据缓冲,从网络对象(索引是510)查询性能数据,遍历整个实列等相关内容。 项目源代码: 部分代码: 程序运行截图: ...

C++学习群:1037025565 1343

请求流向示意图

weixin_38521984的博客 485

对数据曲线总结特征归类

一、需求 公司中出现一个需求,在大量的流量图中,希望给流量图分析归类,总结流量图的一些特点。流量图的横坐标是时间,基本单位是分钟,纵坐标就是流量,是每分钟获取一次流量,进而形成流量图。 二、解决思路 进过几天的思考和查阅资料,有了基本的解决思路。给流量图做分析归类,粗略一点说就是自己做各种形状的标尺图然后与现有的流量图进行一一比对,这种类型的归为一类,另一种类型的归为一类。思路如下: 为了实现更加的泛型化,对拿到的流量图第一步进行的操作就是使流量图更加平滑,去除掉一些特定点,将图像模糊化,也就是滤波降噪处

yeah_you_are的博客 610

8. 网络流

最大流算法 文章目录最大流算法Ford Fulkerson框架Edmonds-KapDinicMPM   Ford Fulkerson框架   Edmonds-Kap   Dinic   MPM

Debroon 1270

南北流量和东西流量

该命名来自于绘制典型network diagrams的习惯。在图表中(网络拓扑图),通常核心网络组件绘制在顶部(NORTH),客户端绘制在底部(SOUTH),而数据中心内的不同服务器水平(EAST-WEST)绘制。 南北流量(NORTH-SOURTH-TRAFFIC):客户端到服务器之间通信的流量。 东西流量(EAST-WEST-TRAFFIC):指的是服务器和服务器之间的流量 ...

随笔记录-分享&记忆 989

Wireshark-IO曲线图

基本IO Graphs: IO graphs是一个非常好用的工具。基本的Wireshark IO graph会显示抓包文件中的整体流量情况,通常是以每秒为单位(报文数或字节数)。默认X轴时间间隔是1秒,Y轴是每一时间间隔的报文数。如果想要查看每秒bit数或byte数,点击“Unit”,在“Y Axis”下拉列表中选择想要查看的内容。这是一种基本的应用,对于查看流量中的波峰/波谷很有帮助。要进一步查看,点击图形中的任意点就会看到报文的细节。 为了讲解方便,点击示例报文包,或用自己的wireshar

Coding··· 5632

App Inventor 2 实现商业级APP启动屏幕效果(SplashScreen)

实现的功能包括:启动App时展示启动屏,右上角展示5秒倒计时,中途可点击跳过。倒计时结束或点击跳过,则跳转到主界面。代码逻辑:每隔1秒触发后,将倒计时秒数变量 -1,并更新到文本中;倒计时使用“传感器 -> 计时器”组件,设置计时间隔为1000ms,即1秒。Screen1作为启动屏幕使用,新增其他屏幕作为主界面。界面布局比较常规,详细请参考源码。

AppInventor2中文网(https://www.fun123.cn)技术。 1024

图解 Kubernetes 网络流量流转路径

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !本文翻译自 https://learnk8s.io/kubernetes-network-packets,并没有逐字翻译,带入了些自己的理解。阅读本文,你可以了解在 Kubernetes 内外,数据包是如何转发的,从原始的 Web 请求开始,到托管应用程序的容器。Kubernetes 网络要求在深入了解在 Kuber...

easylife206的专栏 836

网络中的东西向和南北向

东西(左右)是各个数据中心中的服务器之间的流量。(内部服务器之间的流量)将网络拓扑当成地图看,上北下南,左西右东;一般南北(上下)是客户端与数据中心的流量。

ajax_beijing_java的博客 1153
上一篇: Symbian游戏编程入门 (四)图形显示 ------很棒的文章
下一篇: Symbian屏幕双缓冲和DSA
WaveDHW
博客等级 码龄20年 455粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值