gpt4 book ai didi

java - “java.lang.UnsupportedOperationException: Not supported yet.”

转载 作者:行者123 更新时间:2023-12-03 13:09:24 24 4
gpt4 key购买 nike

我正在用Java做一个TCP项目。
我想用来自微 Controller 的串行通讯在Java中建立TCP连接。
我想用多线程来做到这一点。

但是,当我运行服务器和客户端时,我从客户端向服务器发送了一条消息。然后我在TCPserver中出现以下错误:

"Exception in thread "Thread-0" java.lang.UnsupportedOperationException: Not supported yet.
at serialPort.openPort(serialPort.java:30)
at Client.run(TCPserver.java:63)"

这是我的TCPservercode:
import java.io.*;
import java.net.*;
import java.io.IOException;
import jssc.SerialPort;
import jssc.SerialPortException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import jssc.SerialPortList;
import jssc.*;
import jssc.SerialPort;
import jssc.SerialPortException;

class TCPServer
{
public static void main(String argv[]) throws Exception
{
ServerSocket welcomeSocket = new ServerSocket(6789);
SerialPort serialPort = new SerialPort("COM3");

while(true)
{
Socket connectionSocket = welcomeSocket.accept();
if (connectionSocket != null)
{
Client client = new Client(connectionSocket);
client.start();
}
}
}
}

class Client extends Thread
{
private Socket connectionSocket;
private String clientSentence;
private String capitalizedSentence;
private BufferedReader inFromClient;
private DataOutputStream outToClient;

public Client(Socket c) throws IOException
{
connectionSocket = c;
}

public void run()
{
try
{
inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
outToClient = new DataOutputStream(connectionSocket.getOutputStream());
clientSentence = inFromClient.readLine();
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
serialPort.openPort();//Open serial port

serialPort.setParams(SerialPort.BAUDRATE_115200,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
System.out.println("Received: " + clientSentence);
serialPort.writeString( clientSentence + "\r\n");
//Thread.sleep(1000);
String buffer = serialPort.readString();//Read 10 bytes from seri
// Thread.sleep(1000);

outToClient.writeBytes(buffer);
System.out.println(buffer);
serialPort.closePort();
connectionSocket.close();

} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}

}

}

和我的TCPclient代码:
import java.io.*;
import java.net.*;

class TCPClient
{
public static void main(String argv[]) throws Exception
{
while(true){
String sentence;
String modifiedSentence;

Socket clientSocket = new Socket("localhost", 6789);

BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));

sentence = inFromUser.readLine();
outToServer.writeBytes(sentence + '\n');
modifiedSentence = inFromServer.readLine();
System.out.println("FROM SERVER: " + modifiedSentence);

clientSocket.close();
}
}
}

我原来的串行通讯代码:
package sensornode_Jens;

import java.io.IOException;
import jssc.SerialPort;
import jssc.SerialPortException;
import java.util.Scanner;
import jssc.SerialPortList;
import jssc.*;
import jssc.SerialPort; import jssc.SerialPortException;


public class Main {

public static void main(String[] args) {

// getting serial ports list into the array
String[] portNames = SerialPortList.getPortNames();

if (portNames.length == 0) {
System.out.println("There are no serial-ports :( You can use an emulator, such ad VSPE, to create a virtual serial port.");
System.out.println("Press Enter to exit...");
try {
System.in.read();
} catch (IOException e) {
e.printStackTrace();
}
return;
}

for (int i = 0; i < portNames.length; i++){
System.out.println(portNames[i]);
////

SerialPort serialPort = new SerialPort("/dev/ttyACM0");
try {
serialPort.openPort();//Open serial port
serialPort.setParams(SerialPort.BAUDRATE_115200,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);//Set params. Also you can set params by this string: serialPort.setParams(9600, 8, 1, 0);
Scanner input = new Scanner(System.in);
String scommand = input.nextLine();

serialPort.writeString( scommand + "\r\n");

String buffer = serialPort.readString();//Read 10 bytes from serial port

System.out.println(buffer);

serialPort.closePort();

}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
}
}

有谁能够帮我?

最佳答案

https://code.google.com/archive/p/java-simple-serial-connector/上浏览jssc的Google代码页面

在查看示例时,他们使用:

SerialPort serialPort = new SerialPort("COM1");

我看到在TCPServer类中设置了,但在Client类中没有设置
serialPort.openPort();

叫做。

因此,在调用openPort之前,可能需要在Client类而不是TCPServer类中初始化serialPort。

我找不到对引发UnsupportedOperationException的openPort方法的引用。

关于java - “java.lang.UnsupportedOperationException: Not supported yet.”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40282436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com