Nie można otworzyć portu, wywołując metodę Native z ITLSSPProc.dll
To jest natywna metoda z ITLSSPProc.dll
NOMANGLE int CCONV OpenSSPComPort (SSP_COMMAND * cmd);
Tutaj SSP_COMMAND jest strukturą w ITLSSPProc.dll, która jest w języku C ++.
struct SSP_COMMAND
{
unsigned long BaudRate;
unsigned char PortNumber;
};
Więc muszę uzyskać dostęp do OpenSSPComPort (SSP_COMMAND * cmd) w java przy użyciu JNI. Oto kod, który napisałem
public class Main {
public interface ITLSSPProc extends Library {
ITLSSPProc INSTANCE = (ITLSSPProc) Native.loadLibrary(
(Platform.isWindows() ? "ITLSSPProc" : "simpleDLLWindowsPort"), ITLSSPProc.class);
int OpenSSPComPort(Pointer param);
int CloseSSPComPort();
}
public static void main(String[] args)throws IOException {
ITLSSPProc sdll = ITLSSPProc.INSTANCE;
Memory intMem = new Memory(10); // allocating space
intMem.setLong(0,9600);
intMem.setString(1,"com7");
if(sdll.OpenSSPComPort(intMem)==1)
{// calling function with int parameter&result
System.out.println("connected");
}
else
{
System.out.println("failed");
}
}
}
Output : failed
Numer portu to COM7, na którym pracujemy. Tak więc, kiedy uruchamiam tę aplikację i przekazuję prędkość transmisji ręcznie, jak podano w instrukcji obsługi i jeśli numer portu jest poprawny, należy wydrukować „podłączony” na konsoli. Więc każdy wie, gdzie się mylę, nie rozumiem, gdzie jest rzeczywisty problem ..