# python_module_demo **Repository Path**: quincyzh/python_module_demo ## Basic Information - **Project Name**: python_module_demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-13 - **Last Updated**: 2026-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 智能仪器仪表接口 ``` python # import instrument import pyvisa import time def pretty_idn(idn: str) -> str: sp = idn.split(",") vendor = sp[0].strip() if len(sp) > 0 else "Unknown" model = sp[1].strip() if len(sp) > 1 else "Unknown" model = model.replace("MODEL ", "").strip() vendor_items = vendor.split(" ") if len(vendor_items) > 1: vendor = vendor_items[0] return f"{vendor}::{model}" rm = pyvisa.ResourceManager() for r in rm.list_resources(): print(f"Found resource: {r}") ## 信号发生器 res_signal_generator = rm.open_resource("USB0::0x0957::0x2807::MY62000107::INSTR") idn = res_signal_generator.query("*IDN?") idn_pretty = pretty_idn(idn) print(f"IDN: {idn_pretty}") vol = 2.5 offset = vol / 2 signal_generator = instrument.make_source(idn_pretty) print(signal_generator.supported()) rc = signal_generator.setup( res_signal_generator, channel=1, beep=True, params={"wave": "SIN", "amplitude": vol, "offset": offset, "key": "frequency"}, ) if rc: f = 1000 while f <= 4000: rc = signal_generator.set_output(f) print(f"Set frequency {f} => {rc}") f += 1000 time.sleep(5) signal_generator.stop() print("Done") else: print("Setup failed") ## 数字电源 res_power_supply = rm.open_resource("ASRL18::INSTR") idn = res_power_supply.query("*IDN?") idn_pretty = pretty_idn(idn) print(f"IDN: {idn_pretty}") vol = 2.5 offset = vol / 2 power_supply = instrument.make_source(idn_pretty) print(power_supply.supported()) rc = power_supply.setup(res_power_supply, channel=1, beep=True, init_val=vol) if rc: while vol < 5.0: rc = power_supply.set_output(vol) print(f"Set voltage {vol} => {rc}") vol += 0.5 time.sleep(5) power_supply.stop() print("Done") else: print("Setup failed") ## 数字万用表 res_dmm = rm.open_resource("USB0::0x05E6::0x6500::04645572::INSTR") idn = res_dmm.query("*IDN?") idn_pretty = pretty_idn(idn) print(f"IDN: {idn_pretty}") dmm = instrument.make_measure(idn_pretty) print(dmm.supported()) rc = dmm.setup(res_dmm, "resistance", channel=1) for _ in range(5): t = time.time() rc = dmm.read() t = time.time() - t print(f"Read: {rc}, {t:0.1f}") time.sleep(3) dmm.stop() ```