Ich versuche, von minecraft mit dem Befehl/arduino eine Nachricht über COM4 (der Port, wo mein arduino ist) zu senden die Nachricht sein muss "allesfade" Ich habe es funktioniert mit nur Java, aber nicht in Minecraft.Minecraft-Plugin zu Arduino über eine serielle Verbindung
Hier ist mein Code (nicht funktioniert)
package me.PixelHamster.idk;
import java.io.IOException;
import java.io.PrintWriter;
import javax.comm.SerialPort;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
static SerialPort basispoort;
public void onEnable() {
System.out.println("suc6vol aangezet :3");
}
public void onDisable() {
System.out.println("sec6vol afgezet :3");
}
public boolean onCommand(CommandSender zender, Command cmd, String label, String[] argument) {
if (cmd.getName().equalsIgnoreCase("arduino")) {
try {
PrintWriter output = new PrintWriter(basispoort.getOutputStream());
output.print("allesfade");
output.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
return true;
}
}
hier ist der Code nur in Java, die ich schrieb, die funktioniert.
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.fazecast.jSerialComm.SerialPort;
public class Main {
static SerialPort chosenPort;
public static void main(String[] args) {
JFrame window = new JFrame();
window.setTitle("Arduino Kleurenzender");
window.setSize(600, 75);
window.setLayout(new BorderLayout());
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Sound.HAM.play();
JComboBox <String> portList = new JComboBox <String>();
JComboBox <String> kleurselector = new JComboBox <String>();
JComboBox <String> wat = new JComboBox <String>();
JButton connectButton = new JButton("aan");
JPanel topPanel = new JPanel();
topPanel.add(portList);
topPanel.add(kleurselector);
topPanel.add(wat);
topPanel.add(connectButton);
window.add(topPanel, BorderLayout.NORTH);
SerialPort[] portNames = SerialPort.getCommPorts();
for (int i = 0; i < portNames.length; i++)
portList.addItem(portNames[i].getSystemPortName());
kleurselector.addItem("groen");
kleurselector.addItem("geel");
kleurselector.addItem("rood");
kleurselector.addItem("blauw");
kleurselector.addItem("alles");
wat.addItem("aan");
wat.addItem("flikkeren");
wat.addItem("fade");
connectButton.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent arg0) {
if (connectButton.getText().equals("aan")) {
chosenPort = SerialPort.getCommPort(portList.getSelectedItem().toString());
chosenPort.setComPortTimeouts(SerialPort.TIMEOUT_SCANNER, 0, 0);
if (chosenPort.openPort()) {
connectButton.setText("uit");
portList.setEnabled(false);
Thread thread = new Thread() {
@Override public void run() {
try {
Thread.sleep(100);
} catch (Exception e) {}
PrintWriter output = new PrintWriter(chosenPort.getOutputStream());
while (true) {
output.print(kleurselector.getSelectedItem() + "" + wat.getSelectedItem());
output.flush();
try {
Thread.sleep(2000);
} catch (Exception e) {}
}
}
};
thread.start();
}
} else {
chosenPort.closePort();
portList.setEnabled(true);
connectButton.setText("aan");
}
}
});
window.setVisible(true);
}
}
der Fehler in der Konsole
‚2016.04.04 21.19.49 [INFO] PixelHamsters ausgegeben Serverbefehl:/arduino
2016.04.04 21: 19.49 [ERROR] null
4/04/2016 21:19:49 org.bukkit.command.CommandException: Unbehandelte Ausnahme Ausführen Befehl 'arduino' Arduino v1.0.0 in Plugin
04.04.2016 21:19:49 bei org.bukkit.command.PluginCommand.execute (PluginCommand.java:46) ~ [Zapfen 1.9.jar: git-Spigot-7d15d07-c194444]
4/04/2016 21:19:49 bei org.bukkit.command.SimpleCommandMap.dispatch (SimpleCommandMap.java:141) ~ [Zapfen-1.9.jar: git-Spigot-7d15d07-c194444]
04.04.2016 21 : 19: 49 at org.bukkit.craftbukkit.v1_9_R1.CraftServer.dispatchCommand (CraftServer.java:645) ~ [spigot-1.9.jar: git-Spigot-7d15d07-c194444]
04.04.2016 21: 19:49 at net.minecraft.server.v1_9_R1.PlayerConnection.handleCommand (PlayerConnection.java:1302) [spigot-1.9.jar: git-Spigot-7d15d07-c194444]
4/04/2016 21:19:49 bei net.minecraft.server.v1_9_R1.PlayerConnection.a (PlayerConnection.java:1137) [zapfen 1.9.jar: GIT-zapfen 7d15d07-c194444]
2016.04.04 21.19.49 bei net.minecraft.server.v1_9_R1.PacketPlayInChat.a (PacketPlayInChat.java:45) [zapfen 1.9.jar: GIT-zapfen 7d15d07-c194444]
4/04/2016 21.19.49 bei net.minecraft.server.v1_9_R1.PacketPlayInChat.a (PacketPlayInChat.java:1) [zapfen 1.9.jar: git-Spigot-7d15d07-c194444]
4/04/2016 21:19:49 at net.minecraft.server.v1_9_R1.PlayerConnectionUtils $ 1.run (Quelldatei: 13) [spigot-1.9.jar: git-Spigot-7d15d07-c194444]
4/04/2016 21:19:49 bei java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) [: 1.8.0_31]
4/04/2016 21 : 19: 49 bei java.util.concurrent.FutureTask.run (FutureTask.java:266) [? 1.8.0_31]
4/04/2016 21:19:49 bei net.minecraft.server.v1_9_R1 .SystemUtils.a (Quelldatei: 45) [Spigot-1.9.jar: git-Spigot-7d15d07-c194444]
04.04.2016 21:19:49 bei net.minecraft.server.v1_9_R1.MinecraftServer.D (MinecraftServer.java:716) [spigot-1.9.jar: git-Spigot-7d15d07-c194444]
04.04.2016 21:19:49 bei net.minecraft.server.v1_9_R1.DedicatedServer.D (DedicatedServer.java: 400) [spigot-1.9.jar: git-Spigot-7d15d07-c194444]
04.04.2016 21:19:49 bei net.minecraft.server.v1_9_R1.MinecraftServer.C (MinecraftServer.java: 655) [zapfen 1.9.jar: GIT-zapfen 7d15d07-c194444]
4/04/2016 21:19:49 bei net.minecraft.server.v1_9_R1.MinecraftServer.run (MinecraftServer.java:554) [spigot-1.9.jar: git-Spigot-7d15d07-c194444]
04.04.2016 21:19:49 bei java.lang.Thread.run (Thread.java:745) [?: 1.8.0_31 ]
04.04.2016 21:19:49 verursacht durch: java.lang.NullPointerException
4/04/2016 21:19:49 bei me.PixelHamster.idk.Main.onCommand (Main.java:34) ~ [:?]
4/04/2016 21:19:49 bei org.bukkit.command.PluginCommand.execute (PluginCommand.java:44) ~ [spigot-1.9.jar: git-Spigot-7d15d07-c194444]
04.04.2016 21:19:49 ... 15 weitere‘
Ok, aber im Versuch, es erste Arbeit nur auf einem lokalen Server zu machen – ToxicMushroom
dann könnte es funktionieren, aber das ist nicht so, wie es sein sollte. –