设为首页收藏本站

 找回密码
 立即注册

用新浪微博登录

只需一步,快速搞定

搜索
热搜: 活动 交友 discuz
查看: 1928|回复: 0

Tinyos 下 python 串口通信 uart serial

[复制链接]

1188

主题

1204

帖子

6125

积分

荣誉会员

北林Linux小组

积分
6125
QQ
发表于 2015-5-12 09:06:36 | 显示全部楼层 |阅读模式
先建立serialforwarder端口:
---------------------------------------------------------------------------
linux下运行:java net.tinyos.sf.SerialForwarder -comm serial@/dev/ttyUSB0:telosb
windows下运行:java net.tinyos.sf.SerialForwarder -comm serial@com1:telosb

修改Makefile文件,用mig生成串口通信数据包格式
---------------------------------------------------------------------------
COMPONENT=TestSerialAppC
BUILD_EXTRA_DEPS += TestSerialMsg.py
CLEAN_EXTRA = TestSerialMsg.py

TestSerialMsg.java:
mig java -target=null $(CFLAGS) -java-classname=TestSerialMsg TestSerial.h test_serial_msg -o $@

TestSerialMsg.py:
mig python -target=null $(CFLAGS) -python-classname=TestSerialMsg TestSerial.h test_serial_msg -o $@

include $(MAKERULES)

写test.py程序
---------------------------------------------------------------------------
#!/usr/bin/env python

# This is a quick and dirty example of how to use the MoteIF interface in
# Python

from TestSerialMsg import *
from tinyos.message import MoteIF
from time import sleep

class MyClass:
        def __init__(self):
                # Create a MoteIF
                self.mif = MoteIF.MoteIF()
                # Attach a source to it
                self.source = self.mif.addSource("sf@localhost:9002")
                # SomeMessageClass.py would be generated by MIG
                self.mif.addListener(self, TestSerialMsg)

        # Called by the MoteIF's receive thread when a new message
        # is received
        def receive(self, src, msg):
                print "Received message: ", msg.get_counter()
        
        def sendTask(self):
                ts = TestSerialMsg()
                counter = 0
                while True:
                        counter = counter + 1
                        print "send packet",counter
                        
                        ts.set_counter(counter)
                        
                        #sendMsg(self, dest, addr, amType, group, msg)
                        self.mif.sendMsg(self.source, 0, ts.get_amType(), 0, ts)
                        sleep(1)


if __name__ == "__main__":
        print "Running"
        m = MyClass()
        m.sendTask()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|北林linux用户组 ( 京ICP备14050379号-1|人工智能

GMT+8, 2019-10-21 16:27 , Processed in 0.145175 second(s), 32 queries .

Powered by 北林Linux用户组

© 2014-2019 YTC