Part Number:CC1312R7Other Parts Discussed in Thread:SYSCONFIG
亲爱的TI工程师,您好:
最近仔细查看了基于Wisun-fan SDK中的工程代码,搭建了py-spinel工具的使用环境,发现一切正常,并且py-spinel的脚本命令是结合工程(例如:ns_br_src)的ncp_base_mtd.cpp文件中调取其他函数实现的。
现在我想通过某些串口助手上位机替代py-spinel工具使用,在工程中通过识别串口的字符串来执行相应动作。
我已经做了类似于py-spinel工具的ncpversion, role, routerstate, 等参数获取功能。但任然有一些指令我不知道如何调取函数实现,例如ping 指令,或者一些数据发送指令。
我想要达到的目的是:在BR 或 Router中,通过串口输入字符串:“udp + dest_addr + data”,可以将data发送到对应的节点中
Yolande Wang:
您好,
建议您检查 ti_sisunfan 项目的文档以及在源码中搜索关键字试试。例如 ping, command, addr 等。
另外您可以尝试先运行demo,了解项目里是否已经实现了您想要实现的函数功能并调试。
,
Feng Bill:
hi Yolande:
我按照您的指示尝试搜索,但很抱歉我没有在ncp_base_mtd.cpp中搜索到关于ping指令的相关操作函数,我调试仿真了程序ns_br_src,发现用py-spinel工具输入ping指令会调用HandleDatagramFromStack()这个函数(如下图所示),但是这是开启了NCP功能时调取的,假设我没有开启NCP功能,边界路由器(br)会调用哪个函数发送数据到路由器节点?
据我了解在ns_coap_node中,路由器节点作为服务端可以用coap_service_request_send()函数进行数据发送,那么边界路由器作为客户端也可以使用coap_service_request_send这个函数发送数据吗
,
Yolande Wang:
您好,
由于您想创建工具替代 py-spinel ,我将咨询更加了解此例程的工程师,我已将您的问题升级到E2E论坛,有进展立即回复您。
,
Feng Bill:
好的谢谢您,期待您的回复!
,
Yolande Wang:
不客气
,
Yolande Wang:
您好,
我们有一种可用的 pyspinel 替代方案:wfantund 网络守护进程,您可以在 github 上找到它:(这个使用相同的 ns_br 十六进制文件)
https://github.com/TexasInstruments/ti-wisunfantund
不太明白你所说的“NCP功能未打开”是什么意思,我们只支持NCP模式下的BR。
您是否看过我们关于如何使用 CoAP 消息传递的 SimpleLink Academy 模块?详细介绍了任务3中如何从RN向BR发送数据。
https://dev.ti.com/tirex/explore/node?node=A__Ab5oYpAuOfLVRwkotwJZNQ__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST&placeholder=true
希望能够帮助到您。
,
Feng Bill:
非常感谢您的建议,但在此之前,我已经完成了您说的“使用 CoAP 消息传递的 SimpleLink Academy 模块?详细介绍了任务3中如何从RN向BR发送数据。”,我现在的疑惑是,怎样利用边界路由器节点(BR)发送我想要发送的任何数据到我指定的路由器节点(RN)上,例如我想从BR节点发送“Hello world”数据 到 连接到BR节点网络的某一个RN节点上?
,
Yolande Wang:
正在跟进您的问题,有进展立即回复您。
,
Yolande Wang:
从 BR 向 RN 发送数据包含在 Task 2 of the SLA I linked.。它使用 LED 资源,但您可以将类型从二进制切换为字符串以发送“Hello world”消息。
,
Feng Bill:
hi Yolande,感谢您对我的问题的跟进,您可以回复您所说的这个链接吗?抱歉我没有找到你的图片中的这个位置
,
Yolande Wang:
Hi Feng,
回复里的链接是:https://dev.ti.com/tirex/explore/node?node=A__Ab5oYpAuOfLVRwkotwJZNQ__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST&placeholder=true
另外,这个是英文论坛的链接,您可以看看:https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1308408/cc1312r7-about-the-implementation-of-the-alternative-to-py-spinel
,
Feng Bill:
好的,这将对我是很大的帮助,谢谢你Yolande
,
Yolande Wang:
不客气,能帮助到您就好。
如有需要,您也可以在英文论坛跟进问题,工程师会回复的。
,
Yolande Wang:
Hi Bill,
您的问题解决了吗?
如果没有,可以反馈一下您现在的问题吗?我再帮您寻找其他解决办法。
,
Feng Bill:
Hi Yolande,感谢您的问候
目前,节点与节点之间的通信我暂时采用的是UDP通信模式,我还想问两个问题:
1、使用UDP通信模式时,我发现:在用边界路由节点将其他节点组成网络后,将边界路由节点掉电停止工作,其他节点任然可以用UDP模式互相通信,这是否可以说明UDP通信模式不需要依赖于边界路由节点的存在?
2、关于路由表的更新:我发现在组网成功后,断开某一节点,在路由节点或其他节点中显示的路由表任然存在断开的节点信息,路由表未更新,我相知道可以用工程的哪个参数可以实时更新当前路由表的信息吗?
,
Yolande Wang:
明白您的需求,正在跟进您的问题,请等候一下。
,
Yolande Wang:
Hi Bill,
1. 如果某些设备断电,网络将使用替代路由。
2.设备关闭电源后,需要相当长的时间才会被视为“断开连接”。超时时间约为 15 分钟。
在下一个 SimpleLink F2 SDK(版本 7.40,预计于二月底发布)中,我们添加了一个 SysConfig 选项来缩短这个时间。
我不确定这是否能解决您的问题。
,
Feng Bill:
Hi Yolande,谢谢您的回复
对于问题1,我之前是参考的这篇文章:https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1067601/lp-cc1352p7-wi-sun-router-node-point-to-point-communication,
我看到技术工程师说到:“对于设备之间有多个跳点,通信需要通过BR。”结合我的现状,成功将设备组网后,将BR节点断开连接,剩下的节点任然可以通过UDP方式互相通信。因此我想问的是,如果网络中的设备使用UDP通信,通信是否可以不通过BR?
,
Yolande Wang:
好的,问题关键在于网络中的设备使用UDP通信,通信是否可以不通过BR?
我已同步过去,有进展回复您。
,
Yolande Wang:
您好,
您可以直接点击此链接查看E2E的回复,这样可以省去转述的时间和避免一些理解上的问题。
,
Feng Bill:
好的,辛苦你了Yolande,我现在直接可以在英文论坛与工程师直接交流,谢谢你对于我的帮助
,
Yolande Wang:
好的,不客气。
我会继续帮您跟进问题。