当前位置: 首页 > news >正文

郑州网站推广多少钱极路由4 做网站

郑州网站推广多少钱,极路由4 做网站,获取网站访问者qq号,企业微信小程序免费制作平台目录 一、问题概述 二、解决思路 三、代码实现 1.创建任务 2.UDP广播接收 一、问题概述 以前一直用RS232串口修改设备配置信息#xff0c;但是现场施工人员的232线太细#xff0c;经常容易断掉#xff0c;这次准备用网口去修改#xff0c;遇到了一个问题#xff0c;…目录 一、问题概述 二、解决思路 三、代码实现 1.创建任务 2.UDP广播接收 一、问题概述 以前一直用RS232串口修改设备配置信息但是现场施工人员的232线太细经常容易断掉这次准备用网口去修改遇到了一个问题那就是网口还需要TCP传输数据网口的ip是根据现场分配的所以你可能修改了网口ip以后如果下一次去维护却忘了设置的这个ip是什么这就很尴尬了。所以如何通过网络搜寻到自己的STM32设备就非常重要了。 二、解决思路 起初琢磨的是用扫描ip的软件来扫到自己的设备后来发现这个方法不太可行因为扫一次费的时间太长了而且只能扫到指定的网段我要知道设备的ip还用扫吗所以这个方案pass掉了。 后来在网上搜寻到的答案是用arp-a命令这个命令可以查询看本地局域网中的所有与本机通信的监控设备IP地址、mac地址等我们stm32设备的mac地址是自己设置的能看出来哪个是自己的设备但是这个功能不是很有实时性有时候设备关了很久还在这显示所以这个方法也不太靠谱。 最后感觉最近用有人的小软件搜索他们自己的设备嘎嘎快几乎就是秒搜到然后根据他们的说明文档和交互信息了解到了一个新思路UDP广播什么是UDP广播呢我认为就是主机像0.0.0.0到255.255.255.255所有的设备同时发送一个UDP咱们自己的设备接收到UDP指令以后可以顺便将自己的ip地址以及mac地址等基本信息一并传回来这样就可以快速找到自己的设备了因为第一次获取到了设备的mac地址所以后面再发送UDP广播的时候只要带上mac地址就知道我们要修改哪个设备哪个设备就进行相应的调整。 UDP广播可以用Packet Sender这个软件去发送注意发送UDP广播的电脑如果装着虚拟机呢需要在设备管理器里面禁用对应的网络适配器否则UDP广播很有可能发送不出来。 三、代码实现 代码方面这里只写UDP广播接收这一部分如果再想跑一个TCP可以再另跑一个任务就行了一个设备可以同时跑多个TCP或者UDP任务。 1.创建任务 #define UDP_PRIO 6 //任务堆栈大小 #define UDP_STK_SIZE 300 //任务控制块 OS_TCB UdpTaskTCB; //任务堆栈 CPU_STK UDP_TASK_STK[UDP_STK_SIZE];#define RCV_BUFFER_LEN 1024 unsigned char rec_buffer[RCV_BUFFER_LEN]{\n}; unsigned char rec_buffer1[RCV_BUFFER_LEN]{0X00,0x14,0x97,0x0F,0x1D,0xEA\n}; #define IP_addr_serv (192,168,1,255) #define ADD_TO_INT(d ,c ,b , a) (((unsigned long)((a) 0xff) 24) | ((unsigned long)((b) 0xff) 16) | ((unsigned long)((c) 0xff) 8) | (unsigned long)((d) 0xff))//创建UDP线程 //返回值:0 UDP创建成功 // 其他 UDP创建失败 u8 udp_demo_init(void) {OS_ERR err;CPU_SR_ALLOC();OS_CRITICAL_ENTER();//进入临界区//创建UDP任务OSTaskCreate((OS_TCB * )UdpTaskTCB, (CPU_CHAR * )udp task, (OS_TASK_PTR )udp_thread, (void * )0, (OS_PRIO )UDP_PRIO, (CPU_STK * )UDP_TASK_STK[0], (CPU_STK_SIZE)UDP_STK_SIZE/10, (CPU_STK_SIZE)UDP_STK_SIZE, (OS_MSG_QTY )0, (OS_TICK )0, (void * )0, (OS_OPT )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR,(OS_ERR * )err);OS_CRITICAL_EXIT(); //退出临界区return err; } 2.UDP广播接收 void udp_thread(void *arg) {OS_ERR err;int s, ei, temp;struct sockaddr_in serv, cli;int len; unsigned char optval 1; socklen_t client_addr_lensizeof(struct sockaddr);//必须初始化否则无法接收memset(serv, 0, sizeof(struct sockaddr_in));serv.sin_family AF_INET;serv.sin_port htons(1500); //本地端口serv.sin_addr.s_addr 0;s socket(AF_INET, SOCK_DGRAM , 0);setsockopt(s,SOL_SOCKET,SO_BROADCAST,( void *)optval,sizeof(optval));ei bind(s, (struct sockaddr*)serv, sizeof(struct sockaddr_in));while (1){ /* */len recvfrom( s, rec_buffer, RCV_BUFFER_LEN , 0,(struct sockaddr *) cli, client_addr_len );if(len 0) {len sendto(s , rec_buffer1 , strlen(rec_buffer1) , 0 ,(struct sockaddr*)cli , sizeof(cli));}OSTimeDlyHMSM(0,0,0,5,OS_OPT_TIME_HMSM_STRICT,err);}} 指定接收UDP广播端口为1500可以在 if(len 0) {}里面打断点接收到了就会进入断点。 希望这篇文章对您扫到自己的物联网设备有所帮助。
http://www.zqtcl.cn/news/972965/

相关文章:

  • 白名单查询网站网站建设改变某个表格大小
  • 青岛网站开发公司电话百度投放
  • 唐山玉田孤树做宣传上什么网站百度推广有效果吗
  • 亚马逊网站特点佛山营销型网页设计
  • 网站建设 长沙开福区做百度移动网站排名软
  • 广州购物网站建设在线解压网站
  • 网站建设教学方法探究购物网站开发中查看订单的实现逻辑
  • 网站建设漂亮的模板西安网络优化大的公司
  • 如何免费简单建一个网站河北优化网站获客qq
  • 如何给网站做seo东莞网站建设星河
  • 什么叫门户类网站哪个网站能帮助做路书
  • 网站建站基础娄底网站推广
  • WordPress网站仿制光明建网站的公司
  • 可以做企业网站昆明seo怎么做
  • 西安那里做网站媒体软文发稿
  • 怎样做网站呢wordpress首页幻灯片尺寸
  • 青岛即墨网站网页设计营销型网站规划建设的七大要素
  • WordPress建站经验固原市住房和城乡建设厅网站
  • 可以查企业信息的软件wordpress换模板 seo
  • 网站广告怎么做wordpress封面图七牛
  • 设计师网站上海建设银行内部网站6
  • 网站接广告平台wordpress悬浮下拉
  • 国内网站做国外服务器网站建设的cms系统
  • 社交信息共享网站开发外包网站建设规划书的空间
  • 广告网站建设方案沂源网站建设
  • 城建局官网整站seo排名外包
  • 网站运营团队各岗位的职责是什么辽宁建设工程信息网官网首页官方
  • 怎样做网站框架图流媒体网站开发
  • cnzz统计代码放在网站网站建设一般要多钱
  • 长春火车站附近宾馆discuz论坛