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

    文章

    6087

    浏览量

    35672
收藏 人收藏

    评论

    相关推荐

    瑞芯微RK3399开发板Android7.1修改网络优先级方法,触觉智能SBC3968开发板演示

    本文介绍Android7.1修改网络优先级方法,基于触觉智能SBC3968主板,搭载瑞芯微RK3399芯片,底板具备千兆网口、USB、HDMI、TYPE-C、音频等接口。可适用于工业主
    的头像 发表于 10-09 11:37 357次阅读
    瑞芯微RK3399开发板Android7.1修改<b class='flag-5'>网络</b><b class='flag-5'>优先级</b>方法,触觉智能SBC3968开发板演示

    使用CH32V103C8TC设置中断优先级分组时,编译报错的原因?

    使用CH32V103C8TC设置中断优先级分组时,设置为NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);编译报错 而使用NVIC_PriorityGroupConfig(NVIC_
    发表于 09-27 06:03

    freertos中断优先级在哪设置

    FreeRTOS是一个流行的实时操作系统,它广泛应用于嵌入式系统开发。在FreeRTOS中,中断优先级是一个重要的概念,因为它决定了中断处理的顺序和响应时间。 1. 理解中断优先级 在讨论如何设置
    的头像 发表于 09-02 14:17 809次阅读

    APS智能优化排产软件的优先级应用

    资源、订单需求和约束条件,自动计算出最优的生产计划。在这个过程中,订单排产的优先规则起着至关重要的作用。1.交期优先级交期优先级是订单排产中最基本的优先规则。根据
    的头像 发表于 06-26 17:43 466次阅读
    APS智能优化排产软件的<b class='flag-5'>优先级</b>应用

    ESP32S2如何设置中断优先级

    ESP32S2有六中断, 如何设置中断优先级? 比如在GPIO例程里 ,这种中断优先级是如何设置的呢? 中断寄存器列表里 ,只有简称,哪里
    发表于 06-21 07:59

    请问有什么方法降低WIFI中断的优先级

    因为项目对时序输出要求比较严格,WIFI中断优先级比硬件定时器中断优先级要高,在定时器中断里面对GPIO管脚控制被延长执行,请问有什么方法降低WIFI中断的优先级
    发表于 06-19 07:37

    systick的中断优先级是否应该设置为最高优先级的嵌套中断?

    最近在学习ucosii有这样一个疑问,关于stm32的systick作为ucosii的基准时钟,systick的中断优先级是否应该设置为最高优先级的嵌套中断。理由是什么?各位大侠求指教!!!
    发表于 05-16 06:44

    stm32的中断优先级分组了之后还能改分组吗?

    如标题所示,stm32的中断优先级分组了之后还能改分组吗? 比如我要使用外部中断EXIT2,3,我在配置的时候配置了优先级分组2组,然后配置了EXIT2,3,如果我下面又想开外部中断的EXIT4,5的话,我是不是必须还的要使用优先级
    发表于 05-13 08:40

    创建了两个task如果一个优先级高 一个优先级低,高优先级的那个一直在做,什么时候会调度到低优先级的呢?

    创建了两个task如果一个优先级高一个优先级低, 我看到任务的函数都是用死循环做的,那个高优先级的那个一直在做,什么时候会调度到低优先级的呢?
    发表于 05-13 07:13

    STM8中断优先级不够怎么解决?

    STM8L 中,中断优先级通过下面函数设置,但此处仅 ITC_PriorityLevel_1,ITC_PriorityLevel_2,ITC_PriorityLevel_3总共才3个中断优先级
    发表于 05-06 06:54

    求助,关于stm32F4中断优先级0无法抢占的问题求解

    使用F407遇到一个抢占优先级的问题: 现设置优先级分组 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);也就是15个优先级分组。
    发表于 04-23 07:26

    关于stm32cube中freertos的优先级设置问题求解

    在用stm32cube中freertos,在配置界面里设置为12任务优先级,但是在cube中配置每个任务优先级时还是只能选择7种优先级,分
    发表于 04-22 07:25

    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