aboutsummaryrefslogtreecommitdiff
path: root/qolab/hardware/scope/sds2304x.py
blob: fc9b129aca7f9ac9ca45eac9c363c6360b66f5b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"""
by Rob Behary and Eugeniy Mikhailov 2024/06/17
"""

from qolab.hardware.scope import SDS1104X
from qolab.hardware.basic import BasicInstrument

import re

class SDS2304X(SDS1104X):
    """ Siglent SDS2354x scope """
    vertDivOnScreen = 8 # unlike SDS1104X, number of divisions matches what is seen on the screen
    horizDivOnScreen = 10
    def __init__(self, resource, *args, **kwds):
        super().__init__(resource, *args, **kwds)
        self.config['Device model'] = 'SDS2304X'
        self.resource.read_termination='\n'
        self.numberOfChannels = 4
        self.maxRequiredPoints = 1000; # desired number of points per channel, can return twice more


    @BasicInstrument.tsdb_append
    def getTimePerDiv(self):
        qstr = 'TDIV?'
        rstr = self.query(qstr)
        # Siglent claims that this model should have same commands as SDS1104X
        # however response is different, for example we got '2.00E-08S' instead 'TDIV 2.00E-08S'
        # expected reply to query: '2.00E-08S' 
        spltStr=re.split('S', rstr)
        numberString = spltStr[0]
        #prefix, numberString, unit = response2numStr(rstr, firstSeparator=None, unit='S')
        return(float(numberString))