Commit Graph

209 Commits

Author SHA1 Message Date
01e919dad8 novatech409b: log sim commands, style 2016-03-10 16:50:18 +01:00
aa50c5b4d9 pdq2.mediator: minor tweaks 2016-02-24 18:11:05 +01:00
f2acf95f98 pdq2.mediator: err on short segments 2016-02-24 18:11:05 +01:00
269e9c600c pdq2.mediator: use channel numbers from subdevices, track segment duration 2016-02-22 15:29:27 +01:00
b327c50f14 pdq2: do not emit frame-initial trigger line (segments are triggered) 2016-02-22 15:29:27 +01:00
1b410abc2c pdq2: move initialization and park/unpark to driver 2016-02-22 15:29:27 +01:00
7c246b3559 pdq2: redo program serialization, cleanup 2016-02-21 17:34:18 +01:00
294eac19fe pdq2.mediator: cleanup/style 2016-02-21 17:33:45 +01:00
fef72506e4 ctlmgr/gui/master: start subprocesses in new pgroup
This only makes a difference on POSIX. It prevents subprocesses
from receiving the signals that the parent receives. For ctlmgr
and master is cuts down on spam on the console (KeyboardInterrupt
tracebacks from all controllers) and enforces that proper
termination is followed.

This does not help if the parent gets SIGKILL (subprocesses
may linger).
2016-02-18 23:51:12 +01:00
155c2ec2ef ctlmgr,worker: set PYTHONUNBUFFERED for subprocesses 2016-02-18 12:41:08 +01:00
ab81dbbd19 Merge remote-tracking branch 'm-labs/master' into subprocess-termination
* m-labs/master:
  remove pxi6733 support (now lives at https://github.com/m-labs/aq_ni6733
  setup.py: remove stale import
  remove stale dependency on pyelftools
2016-02-02 23:34:37 -07:00
7636952496 ctlmgr: fix import 2016-02-02 15:32:39 -07:00
55006119c8 subprocesses: unify termination logic 2016-02-02 15:32:36 -07:00
b7de92e96c remove pxi6733 support (now lives at https://github.com/m-labs/aq_ni6733 2016-02-02 18:41:57 +01:00
17ac64a65e ctlmgr: fix the fix (107e2fe) 2016-01-29 17:52:12 -07:00
107e2fedf4 ctlmgr: reinstate lost changes 2016-01-29 17:20:07 -07:00
1b7020dff3 hardware_testbench: run Crontrollers loop in thread, not the test 2016-01-27 18:45:08 -07:00
f78eecb81b hardware_testbench: run controllers 2016-01-27 14:24:32 -07:00
cda4a0765d artiq_ctlmgr: refactor into artiq.devices.ctlmgr 2016-01-26 15:24:29 -07:00
641ef57458 pdq2/mediator: raise instances, not classes 2016-01-19 20:16:27 -07:00
f0860beffd pdq2: wire up more of the pipeline 2016-01-19 20:09:10 -07:00
e1e082e2ec devices/thorlabs_tcube: minor cleanup 2015-11-25 21:43:22 +08:00
178f3cd815 devices/thorlabs_tcube: improve debug logging 2015-11-25 15:28:34 +08:00
bda11149df devices/thorlabs_tcube: fix more style issues 2015-11-24 17:10:31 +08:00
76eadc0a61 devices/thorlabs_tcube: remove unnecessary {read,write}_exactly functions 2015-11-24 16:55:18 +08:00
2503dcd837 devices/thorlabs_tcube: remove unnecessary attribute 2015-11-24 15:51:55 +08:00
d708002fb9 devices/pdq2: add RPC getter functions 2015-10-28 09:46:17 +08:00
36c3f022aa devices/novatech409b: remove unwanted calls to set_simultaneous_update 2015-10-12 16:15:04 +08:00
Joe Britton
b5cc680fdb devices/novatech409b: improve simultaneous update API 2015-10-12 16:13:51 +08:00
01416bb0be copyright: claim contributions
These are contributions of >= 30% or >= 20 lines (half-automated).

I hereby resubmit all my previous contributions to the ARTIQ project
under the following terms:

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Closes #130

Signed-off-by: Robert Jordens <jordens@gmail.com>
2015-09-06 16:08:57 -06:00
2921bd6501 pxi6733: minor mediator fixes 2015-09-04 18:53:50 -06:00
Yann Sionneau
63d4907c65 pxi6733: replace print by logger.debug 2015-09-05 01:22:57 +02:00
Yann Sionneau
7dfd11e2f0 pxi6733: try to fix ping method 2015-09-05 00:07:58 +02:00
Joe Britton
b790fb093d add ping() to novatech driver 2015-08-26 12:05:10 +08:00
Yann Sionneau
da1398b183 pxi6733: fix crash when samples are all the same
When samples are all the same, min = max, which PyDAQmx does not like.
This avoids the following crash reported by Kathie:

C:\Users\rabi\artiq\artiq\frontend [master]> python .\artiq_rpctool.py ::1 3256
call load_sample_values 100000 'np.array([0.0,0.0],dtype=float)'
Traceback (most recent call last):
  File ".\artiq_rpctool.py", line 112, in <module>
    main()
  File ".\artiq_rpctool.py", line 107, in main
    call_method(remote, args.method, args.args)
  File ".\artiq_rpctool.py", line 79, in call_method
    ret = method(*[eval(arg) for arg in args])
  File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 142, in proxy
    return self.__do_rpc(name, args, kwargs)
  File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 134, in __do_rpc
    return self.__do_action(obj)
  File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 128, in __do_action
    raise RemoteError(obj["message"])
artiq.protocols.pc_rpc.RemoteError: Traceback (most recent call last):
  File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\protocols\pc_rpc.py", line 476, in _handle_connection_cr

    ret = method(*obj["args"], **obj["kwargs"])
  File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\artiq-
0.0+dev-py3.4.egg\artiq\devices\pxi6733\driver.py", line 117, in load_sample_val
ues
    byref(num_samps_written), None)
  File "<string>", line 3, in WriteAnalogF64
  File "<string>", line 2, in function
  File "C:\Users\rabi\AppData\Local\Continuum\Anaconda3\lib\site-packages\pydaqm
x-1.3.1-py3.4.egg\PyDAQmx\DAQmxFunctions.py", line 28, in mafunction
    raise DAQError(error,errBuff.value.decode("utf-8"), f.__name__)
PyDAQmx.DAQmxFunctions.DAQError: Minimum is greater than or equal to the maximum
. Ensure the maximum value is greater than the minimum value. If using a custom
scale, ensure that the scaled maximum is greater than the scaled minimum.
Property: DAQmx_AO_Min
Corresponding Value:  0.0

Property: DAQmx_AO_Max
Corresponding Value:  0.0

Channel Name: Dev1/ao1

Task Name: _unnamedTask<4>

Status Code: -200082
 in function DAQmxWriteAnalogF64
2015-08-19 12:49:33 +02:00
Yann Sionneau
966d0ee3f2 pxi6733: fix verification of the number of buffered sample values 2015-08-14 10:36:03 +02:00
479175870f pdq2/driver: implement ping 2015-08-09 17:30:01 +08:00
32d141f5ac refactor ddb/pdb/rdb 2015-07-13 22:21:32 +02:00
Yann Sionneau
706bf2b4b4 pxi6733: allow usage of 2-dimensional arrays. close #66 2015-07-07 15:42:08 +02:00
Yann Sionneau
df232f5405 lda driver: add error message when no device found 2015-07-07 15:18:28 +02:00
f9d878119a pxi6733: add mediator 2015-07-05 19:07:57 +02:00
2bc8286f3f pdq2/mediator: fix arm 2015-07-05 19:07:31 +02:00
2eeaa3b9be pxi6733: clean up docstring 2015-07-05 18:50:16 +02:00
abd58667b9 pxi6733: small cleanup 2015-07-04 18:49:09 +02:00
504576de58 remove unneeded import 2015-07-04 18:43:07 +02:00
9d6287a6a3 expose machine units to user 2015-07-01 22:22:53 +02:00
c71fe29792 simplify unit system and use floats by default 2015-06-26 16:34:37 +02:00
Joe Britton
f850336537 novatech409b: cleanup 2015-06-19 15:58:25 -06:00
Yann Sionneau
988ec5c7e2 tdc/tpz driver: fix missing close method in simulated device 2015-06-19 10:40:49 +02:00
Yann Sionneau
4d077f50c6 thorlabs tdc driver: all moves are now blocking and wait for move to end or be stopped 2015-06-19 01:02:12 +02:00