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

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

3天内不再提示

英创信息威廉希尔官方网站 串口WiFi在WinCE工控主板上的编程方法

英创信息威廉希尔官方网站 来源:英创信息威廉希尔官方网站 作者:英创信息威廉希尔官方网站 2020-02-05 11:14 次阅读

ETA6103工作时,对软件来说,完全当作串口来操作,发送AT指令建立互联网连接。配置信息网络数据传输均通过一个串口传输。为方便用户编程,英创公司封装了一个CUartWifi类,提供了配置无线网络和建立TCP/UDP传输的公共函数,用户不用关心具体的AT指令即可进行开发。

使用说明

参考例程uart_wifi,工程中添加Serial.h , Serial.cpp, ETA6103.h, ETA6103.cpp共4个文件。

添加引用#include "ETA6103.h"

即可创建类并使用CUartWifi myWifi;

WiFi连接管理

参考例程APConnect,该例程简单展示如何进行AP连接的管理

调用Open,AutoCfg方法初始化模块

调用GetAPList方法查询附近的AP

调用ConnectAP方法连接AP

调用SetDefAP设置上电后默认连接的AP(不能在该AP无法连接时设置)

调用DisconnectAP方法断开AP连接

调用GetCurIP查询AP分配到的IP地址

UDP通信

参考例程Udp。

调用Open,AutoCfg方法初始化模块

CUartWifi m_ETA6103;

m_ETA6103.Open();

m_ETA6103.AutoCfg();

调用ConnectUdp打开UDP连接,并创建线程用来等待消息接收

ip = “192.168.201.248”;

rport = 6000;

lport = 5000;

bRet = m_ETA6103.ConnectUdp(0, ip, rport, lport);

m_hRecvThread = CreateThread(0, 0, RecvTread,this, 0, NULL);

向远端发送数据

charstr[32] = “test udp”;

len = strlen(str);

bRet = m_ETA6103.SendMsg(0, str, len);

接收线程处理

DWORD CUdpDlg::RecvTread(LPVOID lparam)

{

CUdpDlg *pDlg = (CUdpDlg*)lparam;

DWORD dwLen;

charrecvBuf[1024];

while(!pDlg->m_bThreadStop)

{

pDlg->m_ETA6103.WaitMsg(); //等待消息

if(dwRet == WAIT_OBJECT_0)

{

pDlg->m_ETA6103.ReadMsg(0, recvBuf, 1023, &dwLen);

//读数据

while(dwLen>0)

{

//处理代码

pDlg->m_ETA6103.ReadMsg(0, recvBuf, 1024, &dwLen);

//循环读直到读完buffer

}

}

}//while(!pDlg->m_bThreadStop)

return0;

};

TCP客户端通信

参考例程TcpClient。

调用Open,AutoCfg方法初始化模块

CUartWifi m_ETA6103;

m_ETA6103.Open();

m_ETA6103.AutoCfg();

调用ConnectUdp打开UDP连接,并创建线程用来等待消息接收

ip = “192.168.201.248”;

port = 6000;

bRet = m_ETA6103. ConnectTcpServer (0, ip, port);

m_hRecvThread = CreateThread(0, 0, RecvTread,this, 0, NULL);

向远端发送数据

charstr[32] = “test tcpclient”;

len = strlen(str);

bRet = m_ETA6103.SendMsg(0, str, len);

接收线程处理

DWORD CUdpDlg::RecvTread(LPVOID lparam)

{

CUdpDlg *pDlg = (CUdpDlg*)lparam;

DWORD dwLen;

charrecvBuf[1024];

while(!pDlg->m_bThreadStop)

{

pDlg->m_ETA6103.WaitMsg(); //等待消息

if(dwRet == WAIT_OBJECT_0)

{

pDlg->m_ETA6103.ReadMsg(0, recvBuf, 1023, &dwLen);

//读数据

while(dwLen>0)

{

//处理代码

pDlg->m_ETA6103.ReadMsg(0, recvBuf, 1024, &dwLen);

//循环读直到读完buffer

}

}

}//while(!pDlg->m_bThreadStop)

return0;

};

可以看到,TCP客户端的使用和UDP几乎一样,只是连接时调用的函数不一样

TCP服务端通信

参考例程TcpClient。

调用Open,AutoCfg方法初始化模块

CUartWifi m_ETA6103;

m_ETA6103.Open();

m_ETA6103.AutoCfg();

调用CreateTcpServer打开服务端连接,并创建线程用来侦听客户端连接和数据接收

port = 6000;

bRet = m_ETA6103. CreateTcpServer(port);

m_hRecvThread = CreateThread(0, 0, RecvTread,this, 0, NULL);

向对应的客户端发送数据

charstr[32] = “test tcpserver”;

intid = 1; //向链接号为1的客户端发送信息

len = strlen(str);

bRet = m_ETA6103.SendMsg(id, str, len);

接收线程处理

在例程中,将客户端连接和消息接收,封装到同一个事件中,然后通过标记位判断事件的类型,客户可以根据需要,修改封装代码,改为各自事件分别处理,或者修改为多个线程来处理连接事件,和消息接收事件。

DWORD CTcpServerDlg::RecvTread(LPVOID lparam)

{

CTcpServerDlg *pDlg = (CTcpServerDlg*)lparam;

DWORD dwLen;

charrecvBuf[1024];

DWORD dwRet;

intlen;

inti;

intn;

while(!pDlg->m_bThreadStop)

{

dwRet = pDlg->m_ETA6103.WaitMsg();

if(dwRet == WAIT_OBJECT_0)

{

for(i=0; i<5; i++)

{

if(pDlg->m_ETA6103.m_link[i].eventFlag & EVT_STAT) //状态变化

{

if(pDlg->m_ETA6103.m_link[i].stat == 0)//close

{

//用户断开代码处理

}

else//connected

{

//用户连接代码处理

}

}

if(pDlg->m_ETA6103.m_link[i].eventFlag & EVT_RECV) //数据接收

{

pDlg->m_ETA6103.ReadMsg(i, recvBuf, 1020, &dwLen);

while(dwLen>0)

{

//数据接收代码处理

pDlg->m_ETA6103.ReadMsg(0, recvBuf, 1024, &dwLen);

}

}

if(pDlg->m_ETA6103.m_link[i].eventFlag & EVT_ERR) //错误事件

{

//错误事件代码处理

}

pDlg->m_ETA6103.m_link[i].eventFlag = 0;

}

}

}//while(!pDlg->m_bThreadStop)

return0;

}

速度测试例程

例程TestSpeed用于测试文件接收速度。通过SetCurUart可以设置波特率(最大460800,建议默认115200),用户可以选定最适合自己应用的配置。

注意,在高速传输过程中,如果接收BUFFER收满来不及处理,将发生数据丢包。建议参考例程,在对应位置添加处理代码。

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

    关注

    7

    文章

    6085

    浏览量

    35331
收藏 人收藏

    评论

    相关推荐

    OpenHarmony测试RS232/RS485串口方法,触觉智能SBC3528工控主板演示

    为大家介绍鸿蒙系统下,没有串口工具的情况下如何测试RS232/RS485,触觉智能SBC3528工控主板演示
    的头像 发表于 12-17 14:29 229次阅读
    OpenHarmony测试RS232/RS485<b class='flag-5'>串口</b><b class='flag-5'>方法</b>,触觉智能SBC3528<b class='flag-5'>工控</b><b class='flag-5'>主板</b>演示

    国产工控主板有什么优势、特点?

    随着国产工控主板的发展,国内企业也不断开发新的工控主板,为了满足国内企业的发展需求,一些国产工控
    的头像 发表于 11-15 10:11 136次阅读

    ​什么是国产工控主板,国产工控主板的特点有哪些?

    什么是国产工控主板呢?国产工控主板是工业计算机的主板,是一种计算机系统的硬件设备,是专门为工业控制场景设计和生产的电路板。它在国内的研发和制
    的头像 发表于 11-07 10:29 196次阅读

    国产工控主板,信产业发展新引擎

    在当今科技飞速发展的时代,信产业正成为国家战略的重要支撑。而我们的国产工控主板,以其卓越的性能和可靠的品质,为信产业的发展注入强大动力。国产工控
    的头像 发表于 11-06 10:29 224次阅读

    中科达荣获2024年软件和信息威廉希尔官方网站 服务优秀企业

    近日,由中国电子信息行业联合会主办的第二十六届中国国际软件博览会(简称“软博会”)天津国家会展中心成功举行。在此次盛会上,中国电子信息行业联合会发布了“2024年软件和信息威廉希尔官方网站 服务企
    的头像 发表于 10-30 11:44 485次阅读

    工控主板有哪些特点?

     工控主板是用于工业控制领域的专用主板,具有以下特点: 稳定性:工控主板通常经过严格的测试和优化,具有较高的稳定性和可靠性,能够
    的头像 发表于 10-10 08:55 322次阅读

    国产化背景下的工控主板发展现状

    ,是信息威廉希尔官方网站 应用创新产业的简称,于2016年“信工委会”(信息威廉希尔官方网站 应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键威廉希尔官方网站 的研发
    的头像 发表于 09-21 16:15 401次阅读

    工控主板环保智能设备中的应用

    工控主板环保智能设备中的应用,对于环境监测、资源管理、污染控制等方面起到了至关重要的作用。以下是工控主板
    的头像 发表于 07-17 15:54 327次阅读
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>在</b>环保智能设备中的应用

    安卓工控主板冶金行业的应用特点

    安卓工控主板冶金行业的应用,体现了其极端环境下的高适应性和在数据处理、实时监控、自动化控制方面的优势。以下是安卓工控
    的头像 发表于 07-03 15:16 341次阅读

    使用工控主板时该注意哪些事项?

    最近大家都在频繁问一个问题就是工控主板什么人为情况下容易出现故障,从而造成工控主板的损坏,那今天小编就来讲讲,我们
    的头像 发表于 06-05 16:01 411次阅读
    使用<b class='flag-5'>工控</b><b class='flag-5'>主板</b>时该注意哪些事项?

    工控主板容易出现故障的原因有哪些?

    最近大家都在频繁问一个问题就是工控主板什么人为情况下容易出现故障,从而造成工控主板的损坏,那今天小编就来讲讲,我们
    的头像 发表于 05-17 10:57 383次阅读

    工控主板的性能指标有哪些?

    工控主板是工业控制领域中的关键组成部分,它承载着工控系统的核心功能。因此,工控主板的性能指标是评估其质量和性能的重要标准。本文将介绍
    的头像 发表于 05-10 16:27 904次阅读
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>的性能指标有哪些?

    工控主板和普通主板的区别有哪些

    工控主板和普通主板是两种计算机硬件领域中常见的主板类型,它们设计、功能和用途上有着明显的区别
    的头像 发表于 04-25 16:54 1297次阅读
    <b class='flag-5'>工控</b><b class='flag-5'>主板</b>和普通<b class='flag-5'>主板</b>的区别有哪些

    购买工控主板的三大误区

    最近有很多人问我什么样的工控主板算好的,有没有一个统一的标准。工控主板作为整机的核心组成部分,性能稳定上有着至关重要的作用,那今天小编就来
    的头像 发表于 04-16 16:40 349次阅读

    RK3588安卓主板 机器人NVR边缘计算工业工控

    音诺恒基于瑞芯微RK3588平台推出了面向工业工控、智能设备、边缘计算的专用主板YNH-733,该主板设计美观轻薄小巧,旗舰高性能核心处理器,赋予强大的功能算力,可驱动8K屏,板载VByone/VGA/HDMI IN/USB/
    的头像 发表于 04-15 15:38 587次阅读
    RK3588安卓<b class='flag-5'>主板</b> 机器人NVR边缘计算工业<b class='flag-5'>工控</b>