2017.7.24 mdns移植到407

来源:互联网 发布:阿里云域名过户流程 编辑:程序博客网 时间:2024/06/08 17:53

一、
(1)明确近期工作任务;
博世项目(移植库函数后以太网相关功能确认(MQTT、modbus tcp)、新增部分代码标准化及模块化、MQTT(加密及非加密)与tls modbus tcp同时运行是否存在异常、关于加密签名确认)
(2) 理解:
近期主要学习了解MQTT 与Modbus tcp 相关知识,在没有TLS加密情况下先跑起来,观察相关现象。
了解 加密相关知识。
二、具体工作
下午将 lwip2.02 移植到407相关代码中。
主要步骤为
(1)将lwip2.02/src中文件全部替代工程中同名文件。在工程中将/src中的所有.c文件全部添加到LWIP目录下。删除报警的几个文件。
(2)将mdns.c 和相关的H文件添加到工程根目录下。在工程的USER文件夹下导入mdns.c文件。
(3)在lwipopt.h文件适当位置添加一下代码。使能编译mdns.c。

#define LWIP_IGMP                       1#define LWIP_MDNS_RESPONDER             1#define LWIP_NUM_NETIF_CLIENT_DATA      (LWIP_MDNS_RESPONDER)

(4)在stm32F4XX_hal_etc.c文件下 更改为该定义。
如果不更改,会有设备只能收到单播,但会将224.0.0.251地址的数据过滤掉。

macinit.MulticastFramesFilter = ETH_MULTICASTFRAMESFILTER_NONE;

三、存在的问题
在transport.c文件中一下代码会报错,但正常工程没有报错,

/*extern ssl_context ssl_client;int transport_sendPacketBuffer(int sock, unsigned char* buf, int buflen){    int rc = 0;    //rc = write(sock, buf, buflen);    rc = ssl_write(&ssl_client, buf, buflen);;    return rc;}int transport_getdata(unsigned char* buf, int count){    //int rc = recv(mysock, buf, count, MSG_DONTWAIT);    //int rc = recv(mysock, buf, count, 0);    //printf("received %d bytes count %d\n", rc, (int)count);    int rc = ssl_read(&ssl_client, buf, count);    return rc;}*/

目前办法更改为一下代码

int transport_sendPacketBuffer(int sock, unsigned char* buf, int buflen){    int rc = 0;    rc = write(sock, buf, buflen);    return rc;}int transport_getdata(unsigned char* buf, int count){    int rc = recv(mysock, buf, count, MSG_DONTWAIT);    //int rc = recv(mysock, buf, count, 0);    //printf("received %d bytes count %d\n", rc, (int)count);    return rc;}

目前可能的原因是 ssl相关代码 有问题,需要进一步测试。。。。

原创粉丝点击