Matlab i JDDE
Aktualizacja: Problem został rozwiązany przy pomocy MathWorks. Opublikowałem odpowiedź poniżej.
Muszę sterować programem (Zemax) z Matlaba. Niestety, Zemax obsługuje tylko DDE dla takiej kontroli, której Matlab już nie obsługuje. Działa, ale przestaje działać na platformie 64-bitowej po kilku (przypuszczalnie 63) wywołaniach DDE.
Zastanawiam się, czy istnieją działające rozwiązania. Prawdopodobnie mógłbym zaprogramować bibliotekę DLL z poprawną obsługą DDE, a następnie użyć DDE w Matlab za pośrednictwem tej biblioteki DLL. To dla mnie duży wysiłek. Bardziej odpowiednim rozwiązaniem byłoby użycie metod Java DDE. Następującyinny post tutaj odkryłem bibliotekę JDDE. Jednak nie mogę tego zrobić: nawet jeśli jestem w katalogu z plikami DLL i JAR, uruchamiam
import pretty-tools.JDDE-2.0.3.*
działa dobrze, ale dzwoni
a = com.pretty_tools.dde.client.DDEClientConversation()
potem (jak zrobionotutaj) prowadzi do
Undefined variable "com" or class "com.pretty_tools.dde.client.DDEClientConversation".
Mam bardzo ograniczone uprawnienia do pisania na moim komputerze, więc dodałemjavaclasspath.txt
plik z lokalizacją jar / dll do katalogu wskazanego przezprefdir
. Plik wygląda tak:
C:\Users\xxxxxxxx\Documents\matlab toolbox\jdde\pretty-tools-JDDE-2.0.3.jar
Powołaniejavaclasspath
pokazuje długą listę z ostatnimi liniami:
...
C:\Program Files\MATLAB\R2012b\java\jarext\webservices\ws_client_core\mw-service-client-core.jar
C:\Users\kkarapet\Documents\matlab toolbox\jdde\pretty-tools-JDDE-2.0.3.jar
DYNAMIC JAVA PATH
<empty>
Więc ścieżka wydaje się być poprawnie ustawiona. Co ja robię źle?