Откройте устройство FTDI и получите сообщение об ошибке ftStatus: INVALID_HANDLE - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь связаться с релейной платой Denkovi (FTDI) с Mac.Если я пытаюсь открыть FTDevice, я получаю исключение:

com.ftdi.FTD2XXException: D2XX error, ftStatus:INVALID_HANDLE

Я установил новейшие драйверы FTDI.

Я нашел этот пост: Использование Java для доступа к SainSmart 4 Relay в Mac OS 10.8.5 не работает

Пишут, что проблема в 64-битной JVM,Но это было 4 года назад.Есть ли решение сейчас?

С оригинальным программным обеспечением Denkovi (тоже на Java) я могу общаться с платой.Но у меня есть только банка, поэтому я не мог увидеть код, как они это делают.

Мой код:

         public static void main(String[] args) {
    FTDevice usb16Relay;
    List<FTDevice> fTDevices;


   byte[] command = new byte[5];
    try {
            fTDevices = FTDevice.getDevices();
            usb16Relay = fTDevices.get(0);  

            System.out.println(usb16Relay.getDevDescription());
            System.out.println(usb16Relay.getDevID());
            System.out.println(usb16Relay.getDevSerialNumber());

            usb16Relay.open();
            usb16Relay.setBaudRate(9600);
            usb16Relay.setDataCharacteristics(WordLength.BITS_8, StopBits.STOP_BITS_1, Parity.PARITY_NONE);

            command[0]='x';
            command[1]=1;
            command[2]=0;
            command[3]='/';
            command[4]='/';

            usb16Relay.write(command);
            usb16Relay.close();
    } catch (FTD2XXException ex) {
       ex.printStackTrace();
    }
}
...