Невозможно открыть порт, вызвав собственный метод из ITLSSPProc.dll
Это нативный метод из ITLSSPProc.dll
NOMANGLE int CCONV OpenSSPComPort (SSP_COMMAND * cmd);
Здесь SSP_COMMAND - это структура в ITLSSPProc.dll, которая находится на языке C ++.
struct SSP_COMMAND
{
unsigned long BaudRate;
unsigned char PortNumber;
};
Итак, я должен получить доступ к OpenSSPComPort (SSP_COMMAND * cmd) в Java с помощью JNI. Вот код, который я написал,
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
Номер порта COM7, над которым мы работаем. Таким образом, когда я запускаю это приложение и когда я передаю скорость передачи в бодах так же, как вручную, как указано в руководстве пользователя, и если номер порта правильный, он должен напечатать "связано" на консоли. Итак, кто-нибудь знает, где я иду не так, я не понимаю, где актуальная проблема ..