我正在学习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/

10-13 04:59