




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、物联网与信息系统前沿实验报告邵孟旋 实验二1. 分析 /examples/hello-world/ 下的程序原码如下:PROCESS宏完成两个功能:(1) 声明一个函数,该函数是进程的执行体,即进程的 thread 函数指 针所指的函数(2) 定义一个进程结构体AUTOSTART_PROCESSES 宏实际上是定义一个指针数组,存放 Contiki 系统运行时需自动启动的进程。PT_THREAD宏用于声明一个protothread,即进程的执行主体。PROCESS_BEGIN()进程的主体函数从这里开始PROCESS_END()进程的主体函数从这里结束2. 实验过程及结果编译 hello_wo
2、rld仿真节点的运行实验三1. 程序分析:UDPsever初始化 RPLDAG/检查 ADDR_MANUAL 是否已经成功设置 uip_ds6_addr_add(&ipaddr,0,ADDR_MANUAL); root_if=uip_ds6_addr_lookup(&ipaddr);if(root_if!=NULL) rpl_dag_t*dag;/将服务器的 IP 地址作为初始 DAG 的根 dag=rpl_set_root(RPL_DEFAULT_INSTANCE,(uip_ip6addr_t*)&ipadd r);uip_ip6addr(&ipaddr,0x
3、aaaa,0,0,0,0,0,0,0); rpl_set_prefix(dag,&ipaddr,64);PRINTF("createdanewRPLdagn");else PRINTF("failedtocreateanewRPLDAGn");创建 UDP 连接/向客户端的端口创建新的 UDP 连接 server_conn=udp_new(NULL,UIP_HTONS(UDP_CLIENT_PORT),NU LL);if(server_conn=NULL) PRINTF("NoUDPconnectionavailable,exiting
4、theprocess!n"); PROCESS_EXIT();udp_bind(server_conn,UIP_HTONS(UDP_SERVER_PORT);PRINTF("Createdaserverconnectionwithremoteaddress");PRINT6ADDR(&server_conn->ripaddr);PRINTF("local/remoteport%u/%un",UIP_HTONS(server_conn->lport), UIP_HTONS(server_conn->rport);包的接受
5、和处理while(1)PROCESS_YIELD();/如果有包if(ev=tcpip_event) tcpip_handler();elseif(ev=sensors_event&&data=&button_sensor) PRINTF("Initiaingglobalrepairn");rpl_repair_root(RPL_DEFAULT_INSTANCE);/如果有包,调用这个函数staticvoidtcpip_handler(void)char*appdata;if(uip_newdata()appdata=(char*)uip_appda
6、ta; appdatauip_datalen()=0;/printthedataofpacketPRINTF("DATArecv'%s'from",appdata);PRINTF("%d",UIP_IP_BUF->srcipaddr.u8sizeof(UIP_IP_BUF->srcipaddr.u8)-1);PRINTF("n");UDPClient:建立 UDP 连接/* 远程主机的新连接 */client_conn=udp_new(NULL,UIP_HTONS(UDP_SERVER_PORT),NU L
7、L);if(client_conn=NULL)PRINTF("NoUDPconnectionavailable,exitingtheprocess!n");PROCESS_EXIT(); udp_bind(client_conn,UIP_HTONS(UDP_CLIENT_PORT);PRINTF("Createdaconnectionwiththeserver");PRINT6ADDR(&client_conn->ripaddr); PRINTF("local/remoteport%u/%un", UIP_HTONS(c
8、lient_conn->lport),UIP_HTONS(client_conn->rport);发包/根据 SEND_INTERVAL 设置时间间隔etimer_set(&periodic,SEND_INTERVAL);while(1)PROCESS_YIELD();if(ev=tcpip_event)tcpip_handler();/每个时间间隔就发一个包if(etimer_expired(&periodic)etimer_reset(&periodic);ctimer_set(&backoff_timer,SEND_TIME,send_pack
9、et,NULL); staticvoidsend_packet(void*ptr)staticintseq_id;charbufMAX_PAYLOAD_LEN;seq_id+;PRINTF("DATAsendto%d'Hello%d'n",server_ipaddr.u8sizeof(server_ipaddr.u8)-1,seq_id); sprintf(buf,"Hello%dfromtheclient",seq_id);/通过client_conn向UDP服务器发包uip_udp_packet_sendto(client_conn,buf,strlen(buf),&server_ipaddr,UIP_HTONS(UDP_SERVER_PORT);2. 实验过程及结果:编译/examples/ipv6/rpl-udp 目录下的 udp-server.c禾口 udp-client.c运行 Cooja 仿真环境3. 问题:1. 问:节点获取 ip 地址了吗?是什么?获取了 IP 地址,为 fe80:0000:0212:7408:0008:0808;2. 节点之间有通讯吗?有通讯,因为有 DATAsend3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年03月国家应急管理部国家减灾中心(卫星减灾应用中心)拟聘人员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年上海市15区高三语文二模试题汇编之文言文二(教师版)
- 镇江市属学校2024-2025学年学业水平考试英语试题模拟卷(四)含答案
- 四川大学锦江学院《中学化学微格教学》2023-2024学年第二学期期末试卷
- 云南师范大学《大学体育(健身气功)》2023-2024学年第二学期期末试卷
- 烟台南山学院《网络攻击与防范》2023-2024学年第二学期期末试卷
- 福建省福州第八中学2025届高三下学期第二次诊断性测验化学试题含解析
- 北京信息科技大学《兽医生物制品学B》2023-2024学年第二学期期末试卷
- 江西师范高等专科学校《中西医结合耳鼻喉科学》2023-2024学年第一学期期末试卷
- 医院护理应知应会冲刺题试题题库及答案
- 鼻窦炎的术后护理
- 无人机航空保险
- 食堂餐厅服务方案投标方案(技术标)
- 2023e签宝-在线汽车租赁合同电子签约
- 《铝型材挤压机专用油》
- Creo-7.0基础教程-配套课件
- 胆源性胰腺炎教学查房记录
- 融资租赁实际利率计算表
- 3.4函数的应用-函数的零点与方程的解教学设计-2022-2023学年高一上学期数学人教A版(2019)必修第一册
- 赣州明氏宗亲奖学金、助学金基金管理办法
- 五氟乙氧基环三磷腈的合成方法研究华中师范大学
评论
0/150
提交评论