java - Tiny OS中使用java读取串口数据

标签 java classpath tinyos

我正在学习 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 操作系统的虚拟机
我正在尝试在 mib520 平台上运行该程序,并且我使用 iris motes

我的java版本

openjdk版本“1.8.0_31”
OpenJDK 运行时环境(版本 1.8.0_31-b13)
OpenJDK 服务器虚拟机(版本 25.31-b07,混合模式)

最佳答案

当您必须运行 make 命令时,您一定跳过了该步骤。

导航到 apps/tests/TestSerial 文件夹并输入 make [platform] (例如 make telosb、make iris 等),将运行的 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 应用程序。

例如,一步一步地在虹膜微粒上,您会

  1. 导航至 apps/tests/TestSerial 文件夹

  2. 通过输入 make iris 来创建应用程序

  3. 连接您的 mote,然后输入 motelist。此命令将列出所有连接的节点。您的节点名称应列在“设备”部分下。请注意这一点,以便在接下来的两个步骤中使用。

  4. 通过输入命令 make iris install.1 bsl, [DEVICE NAME] 安装您的应用程序。这将制作您的程序并将其上传到您的设备。

  5. 通过运行 java TestSerial -comm serial@[DEVICE NAME]:iris

    来运行 TestSerial 应用程序

如果您使用其他平台,例如 telosb,则只需将上述命令中出现的所有 iris 替换为 telosb。

关于java - Tiny OS中使用java读取串口数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252098/

相关文章:

java - 在包中使用外部类文件

java - 如何在java中获取httpResponse的一部分

java - 在java中后台运行线程

java - 如何防止Java为较新的SDK编译部分代码?

cryptography - 使用 Tossim 安装 TinyECC

python - NesC/GMP undefined symbol

c - C 中 printf 字符串格式的奇怪行为

java - 如何在android/java中使用recyclerview和picasso显示图像?

java - 尝试解压缩 7-Zip 存档(二进制模式)时出现异常

java - 无法找到ListOrderedMap?