0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术WinCE主板多网络优先级设置介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-06 11:19 次阅读

当在WinCE系统中添加一个网卡时,操作系统会自动生成相关的路由信息,利用CE系统自带的route命令可以查看系统当前所有的路由记录。下图是预装WEC7的ESM6802工控主板的路由表,其中Destination和Netmask为0.0.0.0的记录表明这是系统缺省路由,缺省路由的意思是当要发送数据包的目标网络地址不在系统的路由记录中时,系统会将该数据包通过缺省路由对应的接口(网卡)发送出去。

路由记录中的Metric为跃点数,当系统中有多个缺省路由时,数据包会通过Metric更低的接口传输。如果系统中有多个网络接口,则可利用Metric来选择网络数据的优先传输路径。使用WinCE系统自带route命令即可修改路由记录的Metric值,但通过命令行执行route命令相对来讲不够直观,因此我们实现了一个带界面的路由表编辑程序GRoute,如下图是在ESM6802上运行GRoute后,程序显示的系统路由表,路由表中同时指明了每条记录对应的网络接口名称。GRoute程序支持添加、修改和删除路由记录等功能。

上图GRoute程序显示的路由表中,网络目标和网络掩码为0.0.0.0的缺省路由ENET1和ENET2是ESM6802的两个以太网接口,除此之前还有3条缺省路由:

COM1:当WinCE主板通过ActiveSync与电脑连接时生成的虚拟网络连接,实际使用时可忽略。

HUAWEI EM770W MODEM:华为EM770W 3G模块拨号上网后生成的路由记录。

ETA6210 WIFI MODEM:ETA6210 WiFi模块连接到网络后生成的路由路由记录。

上面的缺省路由记录中,有线以太网NENT1、NENT2和Metric分别为21和31,WiFi连接和EM770W 3G拨号连接的Metric为11。基于当前的路由表,网络数据会优先选择3G拨号连接或WiFi网络路径。在实际应用中,通常希望数据优先从有线以太网接口传输,然后是WiFi,最后才走4G/3G网络,此时就需要手动修改路由表以实现选路需求。为了方便用户使用, GRoute程序直接提供了网络优先级配置功能,如下图,一旦勾选了“配置网络优先级”,GRoute程序会自动修改WiFi和PPP拨号连接的Metric值,实现网络优先级的配置。

当网络状态发生变化时(比如PPP拨号断线重连),系统会重新生成新的路由记录,可以在勾选GRoute程序“配置网络优先级”的同时勾选“定时刷新”功能,GRoute程序就会每隔几秒检查一下路由表并配置网络优先级。

GRoute也可以作为控制台程序启动运行,当通过命令行执行GRoute程序并带上刷新时间参数时, GRoute启动后不显示界面,保持在后台每隔一定时间检查/设置网络优先级。

在应用程序中可以通过CreateProcess启动GRoute程序,此时同样需要带上刷新时间参数,如果用户不希望GRoute在屏幕上显示任何信息,可以增加/d或-d参数,相关的信息就会从系统的COM_DBG口输出。应用程序中调用GRoute方法比下:

PROCESS_INFORMATION procInfo;

TCHAR szCmdLine[20] = L"5 -d"; // 注意参数之间需要至少一个空格分隔

if( !CreateProcess( L"\\edisk\\groute.exe", szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &procInfo ) )

TRACE( L"CreateProcess failure!" );

WinCE自带的tracer命令用于跟踪网络数据的传输路径,可以验证上面设置Metric值选路的方法是否有效,感兴趣的用户可以自行测试。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6062

    浏览量

    34590
收藏 人收藏

    评论

    相关推荐

    STM32F103的寄存器NVIC_IPRx抢占优先级和子优先级是怎么设置的?

    STM32F103的寄存器NVIC_IPRx有些不明白,抢占优先级和子优先级是怎么设置的? 如果,中断分组2,抢占优先级3,子优先级3
    发表于 03-27 07:48

    Hightec对芯片中断优先级分配时,中断号越高中断优先级越高吗?

    请问大佬,Hightec对芯片中断优先级分配时,中断号越高中断优先级越高吗?看网上的帖子说中断号越低优先级越高。
    发表于 02-27 06:13

    RTTnano的用户main函数中的优先级是多少?

    RTTnano 的用户main函数中的优先级是多少?为什么会出现创建新的task之后,main函数会抢占掉低优先级的task,例如RT_THREAD_PRIORITY_MAX设置为8 ,低于3
    发表于 02-26 08:01

    M0516中断优先级怎么设置

    新唐M0516中断优先级设置,有没有示例,没找到相关接口,谢谢!
    发表于 01-16 07:25

    python中运算符的优先级大小

    Python中运算符的优先级决定了表达式中各个运算符的计算顺序。了解运算符的优先级对于正确理解和编写复杂的表达式非常重要。本文将详细介绍Python中运算符的优先级,并给出一些示例来帮
    的头像 发表于 11-29 16:21 485次阅读

    单片机的中断优先级是怎么确定的?

    单片机的中断优先级是怎么确定的,如果设定优先级后怎么确定设定的对不对?
    发表于 11-03 06:32

    freertos中的任务优先级通过什么函数设置

    任务优先级怎么设置成最高
    发表于 11-02 07:40

    ucos怎么设置任务的优先级

    这个优先级怎么设置
    发表于 10-30 06:18

    STM8中断优先级怎么设置

    STM8中断优先级怎么设置
    发表于 10-25 06:49

    谈谈MCU看门狗任务优先级设置

    一个学员在学习 uCOS 系统过程中,对看门狗任务的优先级产生了疑惑,到底该把喂狗任务优先级设置成最高还是最低好?
    发表于 09-15 09:32 360次阅读

    到底该把喂狗任务优先级设置成最高还是最低好?

    一个学员在学习 uCOS 系统过程中,对看门狗任务的优先级产生了疑惑,到底该把喂狗任务优先级设置成最高还是最低好?
    的头像 发表于 09-13 09:10 557次阅读

    求助,新唐M0516中断优先级设置有没有示例?

    新唐M0516中断优先级设置,有没有示例,没找到相关接口,谢谢!
    发表于 08-24 07:29

    请问M0系列的中断优先级在哪儿设置啊?

    M0系列的中断优先级在哪儿设置
    发表于 06-16 07:52

    m029lan中断优先级设置与实际对不上是什么原因?

    优先级有0-3,共4,0最高,3最低。现在用函数:NVIC_SetPriority(UART0_IRQn, 1);本想设置串口优先级为1,可实查看时,成了***?
    发表于 06-16 06:19

    什么是优先级反转

    假设现在有三个任务TaskA(优先级高)、TaskB(优先级中)、TaskC(优先级低),一个信号量(Semaphore),此信号量用于任务之间争夺某个资源。在某一时刻,高优先级的Ta
    的头像 发表于 04-24 13:01 1571次阅读
    什么是<b class='flag-5'>优先级</b>反转