问题标签 [lejos-nxj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
580 浏览

visual-studio - 如何在 Visual Studio 2005 中设置使用外部编译器的类 Java 语言 (LeJOS NXJ)?

最近,我安装了 JDK 和一个名为 LeJOS NXJ 的 Java 库,用于控制 LEGO Mindstorms 机器人。我希望能够设置语言以通过提供 J# 颜色编码的 Visual Studio 运行。编译程序的命令行是:

将程序部署或下载到控制器的命令行是:

如何设置让 Visual Studio 使用这些选项的方法?

0 投票
4 回答
581 浏览

java - 如何中断 Java 中的一系列过程?

我有一堆程序需要连续执行,直到它们全部执行,或者满足某个条件。这是在满足条件之前需要执行的基本代码:

到目前为止,我想到做我想做的唯一方法是:

false参数 togo()和指示它们应该立即返回,spin()以便检查条件。然而,这种方法让我觉得效率很低,因为同一个代码块必须重复 10 次。这可以通过异常或并发线程更有效地实现吗?

0 投票
4 回答
12370 浏览

firmware - Lego Mindstorms 1.0 和 2.0 有什么区别

我正在考虑购买一个思维风暴套件(我目前没有,但我在大学使用过 1.0),我有点不确定 2.0 相对于 1.0 的好处。我已经看到有关该主题的其他帖子都说通常 2.0 更好,但我对此有一些更具体的问题,我似乎无法找到任何答案。

除了您使用 2.0 套件获得的不同乐高积木和传感器之外,1.0 nxt 积木和 2.0 nxt 积木之间有什么区别吗?从我可以从其他来源确定的情况来看,除了安装的固件外,它们是相同的。我说我可以购买 1.0 套件并安装与 2.0 套件附带的相同固件,并且砖块将是相同的还是 1.0 砖块与 2.0 固件不兼容?

另外,我计划使用不同的编程语言,如 c 或 java,所以我需要为此安装特定的固件,如 librcx 或 lejos 对吗?因此,如果使用 c 或 java 而不是提供的乐高编码方法,我使用 1.0 还是 2.0(套件中的乐高部件除外)并不重要,对吗?

简而言之,假设我使用的是 librcx 或 lejos,并且我不关心传感器和乐高部件,那么购买 2.0 套件比 1.0 套件有什么好处吗?

提前致谢

0 投票
4 回答
445 浏览

java - 这是有效的 Java 代码吗?

我正在使用 Eclipse,它对以下代码非常满意:

但是,我正在运行它的平台在上面标记的行处崩溃。通过崩溃,想想相当于一个蓝屏死机。我的代码有什么问题,还是我需要为我的平台寻求 Java VM 的开发人员?


编辑:

好的,谢谢您的回复。原来是 Java VM 中的一个错误。引用开发者的话,'gloomyandy',

这是具有静态初始化程序的接口的一个已知问题。它已在当前的开发版本中修复...

0 投票
5 回答
118 浏览

java - 这段代码抛出 NullPointerException 是标准行为吗?

我在一些库代码中遇到了一个大问题,我将其固定为一个语句:

好的,代码实际上并不像那样,但它肯定会println使用 null 参数调用。这样做会导致我的整个应用程序抛出一个意想不到的NullPointerException.

一般来说,在这种情况下应该抛出这个异常,还是由于实例println的实现不佳而导致这种非标准行为?out

0 投票
1 回答
564 浏览

java - 需要帮助从输入流中读取数据

我有一个机器人和一个在 GUI 上运行的 GUI 应用程序。我在机器人端有一个 while 循环,它不断向 GUI 发送数据。

在我发送一个值之前,我首先发送一个值,GUI 将使用该值来确定它必须在之后读取多少个连续值,例如我发送类似的东西;

这里 GUI 读取 2,然后在情况 2 下,它将读取接下来的两个整数。

在 GUI 方面,我有 i while 循环,该循环位于从输入流连续读取的线程的 run() 中。

在 GUI 的循环内,我有一个 switch case 语句。

例子

t 没有按我的意愿工作。这就是我得到的:

在它读取第一个 int 后,我​​得到一系列从输入流中读取的数字。我不知道这些数字是从哪里来的。

我认为如果它无法读取我发送的数字,那么它必须阻止,但事实并非如此。

对于上面的示例,这就是我得到的:

2之后的所有数字,我不知道它们来自哪里。它不读取我发送的 2 之后的数字。

我试图插入一些 Thread.sleep(1000) 但不工作。

我究竟做错了什么?需要帮忙

代码

0 投票
1 回答
127 浏览

java - 在解决收藏问题时需要帮助和想法

我今天已经发布了一个问题。这个问题是关于同一个项目但不相关的。我正在为 Lego NXT Mindstorm 机器人开发一个应用程序。我有两个机器人和一个在 PC 上运行的 GUI。

在 leJOS NXJ 中,您只能使用一个输入阅读器。这意味着您不能将 PC 直接连接到两个机器人,让两个机器人直接相互连接。所以这就是我所做的。我已将 PC 直接连接到两个机器人,当两个机器人想要直接通信时,我通过 GUI 发送它们的消息。

GUI 和机器人之间以及机器人本身之间存在大量通信。出于这个原因,每当我将数据写入输出流时,似乎某些数据被其他数据覆盖,并且系统无法正常工作。

我被建议写一个类来保存一个集合(队列)对象,这样无论何时机器人想要发送一些东西,它都会将它添加到集合(队列)中,并且从那个保存集合对象的类中,会有一个方法,以便它不断检查集合,只要它不为空,它就会将集合中的数据发送到输出流。

这意味着每当集合中的数据被发送到输出流时,就有可能添加新数据。

有些人向我建议使用 ArrayBlockQueue 等。但是这些类在机器人使用的 class.jar 文件中不可用。

我在这个 jar 文件中知道的集合类是 Vectors 和 Queue。

我在问是否有人可以通过给我如何实现此类的想法来帮助我。类中的方法会不时检查集合中是否有数据,并将它们通过输出流发送。在发送时,可能正在添加新元素。

由于数据是从一个地方发送的,因此没有数据会覆盖另一个地方。在我看来这是个好主意。

欢迎您提出所有建议。

谢谢。

0 投票
1 回答
380 浏览

java - 再次需要帮助从 Inputstream 读取数据

昨天我发布了一个关于输入流读取问题的问题,我得到了帮助。

我发现自己处于类似的情况,但这次我知道我在做正确的事情,但它对我不起作用。

我正在从输入流中读取,但我得到了不同的值。无论我如何更改发送的数据,我都会得到与值相同的字符串(“toForklift-42”)。起初我用“toForklift-”作为我发送的值的前缀,但我已经将该字符串更改为不同的字符串,但我在括号中得到相同的字符串。我什至将数字 42 更改为不同的数字,但是当我运行程序时,我在控制台中得到了相同的字符串。以下是我发送的内容:as

发送和接收两个类。

我正在使用 leJOS NXJ NXTConnector 建立连接并打开流。

我需要你的帮助。我已经花了6个小时,但找不到原因。我不明白无论我发送什么我都会得到“toForklift-42”。

起初我尝试使用 writeInt() 方法发送 42,但后来在阅读器类方面我使用 readInt() 但我得到了类似的东西:

所以我改用字符串来找出原因,你瞧,不管我发送什么,我都会得到那个字符串。就像那个字符串在输入流中是固定的,什么都没有发送。我不知道发生了什么。

需要帮忙

0 投票
2 回答
7988 浏览

lejos-nxj - Lejos RGB 颜色传感器

有没有人有在 Lejos 编程语言中使用 NXT RGB 颜色传感器的代码示例。我尝试了 setType() 和 setMode() 的几种不同用法,但无济于事。

0 投票
4 回答
3079 浏览

java - 我可以将 JDK 与我的应用程序一起分发吗?

我正在开发一个名为Enchanting的应用程序。该应用程序基于Scratch,发出 Java 源代码并对其进行编译以上传到 LEGO Mindstorms NXT 机器人。

虽然该应用程序很早,但用户很难安装它。

现在 Windows 用户必须:

  • 下载并安装 Java 开发工具包
  • 下载并安装 LeJOS(NXT 的一个 java 库)
  • 可能调整环境变量
  • 然后他们可以下载、安装和运行 Enchanting 本身

如果我可以提供一个包含 JDK 和 LeJOS 的安装程序,我可以在运行时找出环境变量,并且过程变为:

  • 下载、安装和运行 Enchanting

有没有办法重新分发 JDK?

(顺便说一句,Processing(一种简化的基于文本的编程环境)似乎提供了一个随 JDK 一起提供的版本,因此似乎有一种合法的方式可以这样做)。

附录:我希望没有安装 java 的 Windows 用户能够运行单个 .exe 文件来安装 JDK、LeJOS 和 Enchanting。