File: lv_control.py

package info (click to toggle)
uhd 3.13.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 207,120 kB
  • sloc: cpp: 167,245; ansic: 86,841; vhdl: 53,420; python: 40,839; xml: 13,167; tcl: 5,688; makefile: 2,167; sh: 1,719; pascal: 230; csh: 94; asm: 20; perl: 11
file content (87 lines) | stat: -rw-r--r-- 2,658 bytes parent folder | download | duplicates (2)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env python
from labview_automation.client import LabVIEWClient

class vst_siggen:
    def __init__(self,host,vi_base_path,rio_device):
        self._host = host
        self._path = vi_base_path
        self._rio = rio_device
        self._caller = lv_caller(host,2552,vi_base_path)

    def __del__(self):
        self.disconnect()

    def set_freq(self, freq):
        self._caller.vst_set_freq(self._rio,freq)

    def disconnect(self):
        try:
            self._caller.vst_disconnect(self._rio)
        except:
            pass


class executive_switch:
    def __init__(self,host,vi_base_path,device_name):
        self._host = host
        self._path = vi_base_path
        self._device = device_name
        self._caller = lv_caller(host,2552,vi_base_path)

    def __del__(self):
        self.disconnect_all()

    def connect_ports(self, port0, port1):
        self._caller.switch_connect_ports(self._device,port0,port1)

    def disconnect_all(self):
        try:
            self._caller.switch_disconnect_all(self._device)
        except:
            pass



class lv_caller:
    def __init__(self, host, port, vi_base_path):
        self._host = host
        self._port = port
        self._client = LabVIEWClient(host, port)
        self._path = vi_base_path

    def vst_disconnect(self, rio_device):
        with self._client as c:
            control_values = {
                    "rio_device": rio_device,
            }
            result = c.run_vi_synchronous("".join([self._path,"vst_disconnect.vi"]),control_values)
        return result
    
    def vst_set_freq(self, rio_device, freq):
        with self._client as c:
            control_values = {
                    "rio_device": rio_device,
                    "cw_freq": freq,
                    "power": 0,
            }
            result = c.run_vi_synchronous("".join([self._path,"vst_set_freq.vi"]),control_values)
        return result
    
    def switch_connect_ports(self, switch_device, port0, port1):
        with self._client as c:
            control_values = {
                    "virtual_switch": switch_device,
                    "chan0": port0,
                    "chan1": port1,
            }
            result = c.run_vi_synchronous("".join([self._path,"switch_connect_ports.vi"]),control_values)
        return result
    
    
    def switch_disconnect_all(self, switch_device):
        with self._client as c:
            control_values = {
                    "virtual_switch": switch_device,
            }
            result = c.run_vi_synchronous("".join([self._path,"switch_disconnect.vi"]),control_values)
        return result