From c678026ac8b382babc77aa25ea22bd09fdd7f4b1 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Feb 2015 20:18:34 -0600 Subject: [PATCH 01/10] Add ability to refresh the Matlab UI --- messenger/src/messenger.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/messenger/src/messenger.c b/messenger/src/messenger.c index 8056bb1..bbd7b78 100644 --- a/messenger/src/messenger.c +++ b/messenger/src/messenger.c @@ -1,5 +1,6 @@ #include #include +#include #include "mex.h" #include "zmq.h" @@ -33,7 +34,7 @@ int listen_zmq(char *buffer, int buflen) { mexErrMsgTxt("Error: ZMQ session not initialized"); } - return zmq_recv(socket_ptr, buffer, buflen, 0); + return zmq_recv(socket_ptr, buffer, buflen, ZMQ_NOBLOCK); } /* Sending out a message */ @@ -108,6 +109,11 @@ void mexFunction(int nlhs, mxArray *plhs[], int byte_recvd = listen_zmq(recv_buffer, BUFLEN); + while (byte_recvd == -1 && errno == EAGAIN) { + byte_recvd = listen_zmq(recv_buffer, BUFLEN); + mexCallMATLAB(0, NULL, 0, NULL, "drawnow"); + } + /* Check if the received data is complete and correct */ if ((byte_recvd > -1) && (byte_recvd <= BUFLEN)) { plhs[0] = mxCreateString(recv_buffer); From 3df6371a600aa3b625de6d32a0ba834022f764e6 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Feb 2015 20:19:08 -0600 Subject: [PATCH 02/10] Recompile linux binaries --- messenger/mexa64/messenger.mex | Bin 21133 -> 21147 bytes messenger/mexa64/messenger.mexa64 | Bin 13090 -> 13208 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/messenger/mexa64/messenger.mex b/messenger/mexa64/messenger.mex index 2114d622b245ca93c04ea26fe35ccfcbe571c473..7afdeea066dee45216a6466cdc312239db758e01 100755 GIT binary patch delta 7380 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 INp0i*1H1cbAOHXW delta 7405 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 Date: Wed, 18 Feb 2015 20:19:56 -0600 Subject: [PATCH 03/10] Only close invisible figures --- pymatbridge/matlab/util/make_figs.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pymatbridge/matlab/util/make_figs.m b/pymatbridge/matlab/util/make_figs.m index 239110e..94c32ba 100644 --- a/pymatbridge/matlab/util/make_figs.m +++ b/pymatbridge/matlab/util/make_figs.m @@ -14,7 +14,9 @@ saveas(h, [filename, '.png']); % Once you've saved it, close it, so it doesn't get dragged into the % scope of other cells - close(h); + if (strcmp(get(h, 'visible'), 'off')) + close(h); + end fig_files{fig} = [filename '.png']; end From 83262f218c6a32fd6d197f107a10d399775f0f3a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Feb 2015 20:47:37 -0600 Subject: [PATCH 04/10] Add ability to toggle figure visibility --- pymatbridge/matlab_magic.py | 7 ++++++- pymatbridge/pymatbridge.py | 23 +++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/pymatbridge/matlab_magic.py b/pymatbridge/matlab_magic.py index 17debc8..acbb239 100644 --- a/pymatbridge/matlab_magic.py +++ b/pymatbridge/matlab_magic.py @@ -130,6 +130,11 @@ def set_matlab_var(self, name, value): help='Pixel size of plots, "width,height.' ) + @argument( + '-g', '--gui', action='store_true', + help='Show plots in a graphical user interface' + ) + @argument( 'code', nargs='*', @@ -148,7 +153,7 @@ def matlab(self, line, cell=None, local_ns=None): local_ns = {} width, height = args.size.split(',') - self.Matlab.set_default_plot_size(width, height) + self.Matlab.set_plot_settings(width, height, not args.gui) if args.input: for input in ','.join(args.input).split(','): diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index ea2da87..7fd4e67 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -212,7 +212,7 @@ def start(self): # Test if connection is established if self.is_connected(): print("%s started and connected!" % self._program_name()) - self.set_default_plot_size() + self.set_plot_settings() return True else: print("%s failed to start" % self._program_name()) @@ -318,12 +318,16 @@ def set_variable(self, varname, value): return self._set_sparse_variable(varname, value) return self.run_func('assignin', 'base', varname, value, nargout=0) - def set_default_plot_size(self, width=512, height=384): - code = "set(0, 'defaultfigurepaperunits', 'inches');\n" - code += "set(0, 'defaultfigureunits', 'inches');\n" - size = "set(0, 'defaultfigurepaperposition', [0 0 %s %s])\n;" - code += size % (int(width) / 150., int(height) / 150.) - self.run_code(code) + def set_plot_settings(self, width=512, height=384, inline=True): + if inline: + code = ["set(0, 'defaultfigurevisible', 'off')"] + else: + code = ["set(0, 'defaultfigurevisible', 'on')"] + size = "set(0, 'defaultfigurepaperposition', [0 0 %s %s])" + code += ["set(0, 'defaultfigurepaperunits', 'inches')", + "set(0, 'defaultfigureunits', 'inches')", + size % (int(width) / 150., int(height) / 150.)] + self.run_code(';'.join(code)) def _set_sparse_variable(self, varname, value): value = value.todok() @@ -436,9 +440,9 @@ def __init__(self, executable='matlab', socket_addr=None, platform = sys.platform if startup_options is None: if platform == 'win32': - startup_options = ' -automation -noFigureWindows' + startup_options = ' -automation' else: - startup_options = ' -nodesktop -nodisplay' + startup_options = ' -nodesktop' if log: startup_options += ' -logfile ./pymatbridge/logs/matlablog_%s.txt' % id super(Matlab, self).__init__(executable, socket_addr, id, log, maxtime, @@ -499,7 +503,6 @@ def _preamble_code(self): code = super(Octave, self)._preamble_code() if self.log: code.append("diary('./pymatbridge/logs/octavelog_%s.txt')" % self.id) - code.append("set(0, 'defaultfigurevisible', 'off');") code.append("graphics_toolkit('gnuplot')") return code From fa4ba519fb2da50f675ceaaf35192b606682005a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Feb 2015 21:40:00 -0600 Subject: [PATCH 05/10] Prevent "clear all" from killing the server --- messenger/src/messenger.c | 1 + 1 file changed, 1 insertion(+) diff --git a/messenger/src/messenger.c b/messenger/src/messenger.c index bbd7b78..c8b0de9 100644 --- a/messenger/src/messenger.c +++ b/messenger/src/messenger.c @@ -13,6 +13,7 @@ static int initialized = 0; /* Initialize a ZMQ server */ int initialize(char *socket_addr) { int rc; + mexLock(); ctx = zmq_ctx_new(); socket_ptr = zmq_socket(ctx, ZMQ_REP); rc = zmq_bind(socket_ptr, socket_addr); From 0d0f93e20e318c7e0876e5a483f4ce47c416b41b Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Feb 2015 21:40:29 -0600 Subject: [PATCH 06/10] Rebuild the binaries on Linux --- messenger/mexa64/messenger.mex | Bin 21147 -> 21878 bytes messenger/mexa64/messenger.mexa64 | Bin 13208 -> 13248 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/messenger/mexa64/messenger.mex b/messenger/mexa64/messenger.mex index 7afdeea066dee45216a6466cdc312239db758e01..847b34734290d348f72aaddb3a05e482f6f7a687 100755 GIT binary patch literal 21878 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 literal 21147 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 T`5Tx2CYc#(dRAhQn-f0((|=k< From 86b61cd480324a6331c0088d03faa411e1e0b41b Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 18 Feb 2015 21:58:47 -0600 Subject: [PATCH 07/10] Add numpy to requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 02ec117..ae3bcc7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ pyzmq +numpy>=1.7 From 276100f6fd9115ea4479e418f35efe15f70673bb Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 19 Feb 2015 06:18:24 -0600 Subject: [PATCH 08/10] Prevent zmq errors on Octave --- messenger/src/messenger.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/messenger/src/messenger.c b/messenger/src/messenger.c index c8b0de9..4be1b71 100644 --- a/messenger/src/messenger.c +++ b/messenger/src/messenger.c @@ -111,8 +111,8 @@ void mexFunction(int nlhs, mxArray *plhs[], int byte_recvd = listen_zmq(recv_buffer, BUFLEN); while (byte_recvd == -1 && errno == EAGAIN) { - byte_recvd = listen_zmq(recv_buffer, BUFLEN); mexCallMATLAB(0, NULL, 0, NULL, "drawnow"); + byte_recvd = listen_zmq(recv_buffer, BUFLEN); } /* Check if the received data is complete and correct */ @@ -121,7 +121,8 @@ void mexFunction(int nlhs, mxArray *plhs[], } else if (byte_recvd > BUFLEN){ mexErrMsgTxt("Receiver buffer overflow. Message truncated"); } else { - mexErrMsgTxt("Failed to receive a message due to ZMQ error"); + sprintf(recv_buffer, "Failed to receive a message due to ZMQ error %s", strerror(errno)); + mexErrMsgTxt(recv_buffer); } return; From f67fa57f45c52fda634461d2f6a4ce731b8a05cc Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 19 Feb 2015 06:18:37 -0600 Subject: [PATCH 09/10] Recompile --- messenger/mexa64/messenger.mex | Bin 21878 -> 22519 bytes messenger/mexa64/messenger.mexa64 | Bin 13248 -> 13361 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/messenger/mexa64/messenger.mex b/messenger/mexa64/messenger.mex index 847b34734290d348f72aaddb3a05e482f6f7a687..3a55f816a88baff693bb4826a03b6ebbf4336b38 100755 GIT binary patch literal 22519 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 diff --git a/messenger/mexa64/messenger.mexa64 b/messenger/mexa64/messenger.mexa64 index 54472c5113391c4f3a15df2ae1f74e195e18c972..9ff2538e4fb0af9af43e8bea75a0788a908430e5 100755 GIT binary patch delta 3411 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 QNOQNq`fuuHuA3|V57@AkSpWb4 From 2274c79ca9b1a05f8bcfcc291652a0edd4eaeb26 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 19 Feb 2015 06:19:22 -0600 Subject: [PATCH 10/10] Close figures before eval to avoid Octave plots resurrecting --- pymatbridge/matlab/util/pymat_eval.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pymatbridge/matlab/util/pymat_eval.m b/pymatbridge/matlab/util/pymat_eval.m index 60912b2..192670e 100644 --- a/pymatbridge/matlab/util/pymat_eval.m +++ b/pymatbridge/matlab/util/pymat_eval.m @@ -15,6 +15,8 @@ response.content = ''; response.result = ''; +close all hidden; + try % tempname is less likely to get bonked by another process. diary_file = [tempname() '_diary.txt'];