Python学习二

本文详细解析了OpenVisualizer系统中,从仿真节点数据到最终显示状态信息的完整流程,包括moteProbe.py、moteConnector.py、moteStatus.py等关键模块的作用以及串口数据格式解析过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、OpenVisualiz**流程

a)仿真节点数据-->moteProbe.py-->moteConnector.py-->moteStatus.py
b)openvisualizerWeb.py 调用OpenVisualizerApp.py ,通过moteview.tmpl显示
 OpenVisualizerApp.py中getMoteState函数通过调用moteStatus类获取状态数据

2、moteStatus.py中

class moteState 有许多状态属性(ST_ASN、ST_ISSYNC);析构函数表示状态属性获取;

  registrations    = [
                {
                    'sender'      : 'moteConnector@{0}'.format(self.moteConnector.serialport),
                    'signal'      : 'fromMote.status',
                    'callback'    : self._receivedStatus_notif,
                },
            ]

3、moteConnector.py将数据发送给OpenParser.py( 其 继承了Parser )

      a)   # local variables
         self.parser                    = OpenParser.OpenParser()

      b)  def _sendToParser(self,data):

                input = data

               (eventSubType,parsedNotif)  = self.parser.parseInput(input)

4、串口格式

7E 44 31 00 84 3C 00 00 005E 02 35 31 88 9C 5E DE C7 7E 
节点之间的超声测距信息。7E:协议栈帧格式开始,44帧格式符 ;31 00 :31号节点通过串口向上位机发送的数据;

84 3C 00 00 00 :5个字节的asn(低位在前高位在后),相当于时间戳,asn变化一相当于15ms,精确度符合要求;
5E:串口的帧开始符;02: 表示测距数据;35 31:表示35和31号节点之间的测距,35号节点发超声,31号节点收超声; 5E:串口帧结束; 
DE C7:CRC校验;7E:协议栈帧结束(只需解析黄色部分)

以上格式可能跟自己定义有关

参考1:https://openwsn.atlassian.net/wiki/display/OW/Serial+Format#SerialFormat-SERFRAME_MOTE2PC_DATAFrame

参考2:drivers/common/openserial.c 中:

            openserial_printStatus()+openserial_printData(uint8_t* buffer, uint8_t length)


     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值