2016-04-05 7 views
0

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‘

Antwort

0

Intersting Projekt :)

ich würde sagen, dass das Problem ist, dass es ein Plugin ist. Ein Plugin läuft auf dem Server und nicht auf der Client-Seite. Sie müssten also das Arduino mit dem Server verbinden. Wenn du ein Arduino aus Minecraft steuern willst, brauchst du einen Mod (der auf Client-Seite läuft) für Minecraft.

IDK wenn das funktionieren würde.

Eine andere Möglichkeit könnte sein, das Arduino mit dem Internet zu verbinden (Shield oder mit einem Raspberry Pi) und dann das Plugin (das auf dem Server läuft) eine Nachricht an dieses shield/pi über das Internet senden.

sry für schlechtes Englisch :(

Ich hoffe, das hilft :)

+0

Ok, aber im Versuch, es erste Arbeit nur auf einem lokalen Server zu machen – ToxicMushroom

+0

dann könnte es funktionieren, aber das ist nicht so, wie es sein sollte. –

Verwandte Themen