mirror of
https://github.com/jankae/LibreVNA.git
synced 2026-01-20 23:50:20 +01:00
57 lines
2.3 KiB
Python
57 lines
2.3 KiB
Python
import re
|
|
from tests.TestBase import TestBase
|
|
|
|
|
|
class TestStatusRegisters(TestBase):
|
|
def query_stb(self):
|
|
resp = self.vna.query("*STB?")
|
|
self.assertTrue(re.match(r"^\d+$", resp))
|
|
value = int(resp)
|
|
self.assertTrue(value >= 0 and value <= 255)
|
|
return value
|
|
|
|
def test_invalid_command(self):
|
|
status = self.vna.get_status()
|
|
self.assertEqual(status, 0)
|
|
self.vna.default_check_cmds = False
|
|
self.vna.cmd("INVALID:COMMAND")
|
|
status = self.vna.get_status()
|
|
self.assertEqual(status & 0x3C, 0x20)
|
|
status = self.vna.get_status()
|
|
self.assertEqual(status, 0)
|
|
|
|
def test_invalid_query(self):
|
|
status = self.vna.get_status()
|
|
self.assertEqual(status, 0)
|
|
self.vna.default_check_cmds = False
|
|
self.vna.cmd("INVALID:QUERY?") # send as cmd to avoid timeout
|
|
status = self.vna.get_status()
|
|
self.assertTrue(status & 0x20) # expect CME
|
|
status = self.vna.get_status()
|
|
self.assertEqual(status, 0)
|
|
|
|
def test_stb(self):
|
|
self.vna.default_check_cmds = False
|
|
self.vna.cmd("*SRE 0")
|
|
status = self.vna.get_status()
|
|
if status & 0x20:
|
|
self.skipTest("Skipping test: *SRE, *SRE?, *STB? not implemented")
|
|
self.vna.cmd("*RST")
|
|
self.vna.cmd("VNA:ACQ:SINGLE TRUE")
|
|
self.vna.cmd("*WAI")
|
|
status = self.vna.get_status()
|
|
self.assertEqual(status, 0)
|
|
self.vna.cmd("OPC") # should set OPC
|
|
self.vna.cmd(f"*ESE {0x21:d}") # mask is CME|OPC
|
|
self.assertEqual(self.query_stb() & 0x60, 0x20) # expect !MSS, ESB
|
|
self.assertEqual(self.query_stb() & 0x60, 0x20) # shouldn't clear
|
|
self.vna.cmd(f"*SRE {0x20:d}") # unmask ESB
|
|
self.assertEqual(self.query_stb() & 0x60, 0x60) # expect MSS, ESB
|
|
self.vna.cmd(f"*ESE {0x20:d}") # mask is CME only
|
|
self.assertEqual(self.query_stb() & 0x60, 0) # expect !MSS, !ESB
|
|
self.vna.cmd("INVALID:COMMAND") # should set CME
|
|
self.assertEqual(self.query_stb() & 0x60, 0x60) # expect MSS, ESB
|
|
status = self.get_status()
|
|
self.assertEqual(status, 0x21) # expect CMD|OPC, clears
|
|
self.assertEqual(self.query_stb() & 0x60, 0) # expect !MSS, !ESB
|