我正在学习Tiny OS教程第4课“ Mote-PC串行通信和SerialForwarder”,我被困在上面说的那条线上
“一旦安装了TestSerial,就需要运行相应的Java应用程序,该应用程序通过串行端口与之通信。这是在构建TinyOS应用程序时构建的。在应用程序目录中,键入
$ java TestSerial
但是,当我键入此命令时,会遇到以下错误
Error: Could not find or load main class TestSerial
我尝试了几种方法来解决此问题,但没有帮助。
我尝试过的解决方案:
1)将CLASSPATH设置为我当前所在的目录
导出CLASSPATH =。:: / home / wsn / tinyos-main / apps / tests / TestSerial
2)将CLASSPATH设置为tinyos.jar所在的目录
出口CLASSPATH =。:: / home / wsn / tinyos-main / support / sdk / java / tinyos.jar
3)使用
java -cp . TestSerial
运行命令但是我一直有同样的错误
还有其他更好的解决方法吗?
我在Fedora OS上使用虚拟机
我正在尝试在mib520平台上运行该程序,并且使用了虹膜微粒
我的Java版本
openjdk版本“ 1.8.0_31”
OpenJDK运行时环境(内部版本1.8.0_31-b13)
OpenJDK服务器VM(内部版本25.31-b07,混合模式)
感谢您的帮助
最佳答案
当您必须运行make命令时,必须跳过该步骤。
导航到apps / tests / TestSerial文件夹,然后键入make [platform]
(例如make telosb,make iris e.t.c),将要运行的makefile将是TestSerial文件夹中的makefile,其定义如下:
COMPONENT=TestSerialAppC
TOSMAKE_PRE_EXE_DEPS += TestSerial.class
TOSMAKE_CLEAN_EXTRA = *.class TestSerialMsg.java
TestSerial.class: $(wildcard *.java) TestSerialMsg.java
javac -target 1.4 -source 1.4 *.java
TestSerialMsg.java:
nescc-mig java $(CFLAGS) -java-classname=TestSerialMsg TestSerial.h test_serial_msg -o $@
TINYOS_ROOT_DIR?=../../..
include $(TINYOS_ROOT_DIR)/Makefile.include
因此,makefile会编译TestSerial.java。之后,您可以继续安装应用程序,然后运行TestSerial应用程序。
因此,例如一步一步走在虹膜上
导航到
apps/tests/TestSerial
文件夹通过键入
make iris
来创建应用程序连接您的节点,然后键入
motelist
。此命令将列出所有连接的节点。微粒的名称应在“设备”部分下列出。请注意此内容,以在接下来的两个步骤中使用。通过键入命令
make iris install.1 bsl, [DEVICE NAME]
安装您的应用程序。这将制作程序并将其上传到设备。通过运行
java TestSerial -comm serial@[DEVICE NAME]:iris
运行TestSerial应用程序如果您使用其他平台(例如telosb),则只需用telosb替换上面命令中所有出现的iris。
关于java - 在Tiny OS中使用Java从串行端口读取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55252098/