Comments (7)
Could you provide a sample script illustrating your issue ?
from pyvisa-sim.
Not sure what @yn4k4nishi means, but I also observe weird problems running pytest tests with pyvisa-sim backed fixture objects, in that replies remain in a read buffer despite the objects + resource managers being destroyed:
>>> import pyvisa
>>> rm = pyvisa.ResourceManager(visa_library='@sim')
>>> instr = rm.open_resource('ASRL2::INSTR')
>>> instr.write('*IDN?')
7
>>> instr.read()
'SCPI,MOCK,VERSION_1.0\n' # OK, that's what I expect
>>> instr.write('*IDN?') # we don't fetch that response from the instrument
7
>>> id(instr)
140011221241280
>>> del instr # Kill the instrument
>>> del rm
>>> rm = pyvisa.ResourceManager(visa_library='@sim')
>>> instr = rm.open_resource('ASRL2::INSTR')
>>> instr.read() # Why is this response in this different instrument object?
'SCPI,MOCK,VERSION_1.0\n'
>>> id(instr)
140011221241472 # the IDs of the instr objects are different, so it's not somehow the same
Is that expected?
from pyvisa-sim.
Here you are assuming that when you delete the instr and the resource manager they instantaneously go away. This may not be true because the rm and the library object are in a reference cycle and the gc may dispose of them only later on. Could you run the same code but explicitly closing the instr and rm rather than relying on __del__
being invoked.
from pyvisa-sim.
Ah, you are right. instr.close()
is neither sufficient nor necessary, rm.close()
does the trick. Thanks!
Argh, Python's behaviour around __del__
is annoying at times.
from pyvisa-sim.
The fact that closing the instrument does not solve the issue still says that something is off. Instruments do not share outgoing buffers between connections and we should mimic that.
from pyvisa-sim.
The fact that closing the instrument does not solve the issue still says that something is off. Instruments do not share outgoing buffers between connections and we should mimic that.
@MatthieuDartiailh is that something that still should be followed up separately? (to avoid this disappearing in a closed issue comment)
from pyvisa-sim.
It would make sense yes
from pyvisa-sim.
Related Issues (20)
- PyVISA has moved
- Timeout when response termination character is None
- Write function should return a status code
- Instruments archive
- Random values as response HOT 1
- How to work with multi-element properties? HOT 1
- pyvisa doesn't found pyvisa-sim with pyvisa 1.11.0 HOT 5
- Invalid link on readthedocs HOT 2
- PyVISA 1.12.0 and GPIB Secondary Addresses HOT 1
- How to simulate binary write and query
- Conda installs version 0.3 -- Get no package pyvisa_sim found. HOT 5
- Feature suggestion: Connecting instruments HOT 1
- Multiple getters and setters for a property? HOT 1
- Debug logging spits out each character individually HOT 3
- `main` branch no longer allows dialog-without-response HOT 1
- Bug in `iter_bytes` HOT 3
- ResourceManager needs to be closed to clear instrument buffer
- Is there a "reset instrument to defaults from yaml file" function or similar? HOT 5
- New tag? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyvisa-sim.